Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the flakiness of new BinaryFormatter tests #103476

Merged
merged 6 commits into from
Jun 17, 2024

Conversation

adamsitnik
Copy link
Member

@adamsitnik adamsitnik commented Jun 14, 2024

Recently I've noticed that the new BF tests fail from time to time, claiming that the blobs stored in the tests became outdated.

Sample log entry:

    BinaryFormatTests.FormatterTests.BinaryFormatterTests.ValidateAgainstBlobs(obj: [[1] = Point { X = 1, Y = 1 }, [2] = Point { X = 2, Y = 2 }], blobs: [BinaryFormatTests.TypeSerializableValue, BinaryFormatTests.TypeSerializableValue]) [FAIL]
      The stored blob with index 0 for type System.Collections.Generic.SortedList`2[[System.Int32, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51]] is outdated and needs to be updated.
      
      -------------------- Stored blob ---------------------
      Encoded: AAEAAAD/////AQAAAAAAAAAMAgAAAElTeXN0ZW0sIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5DAMAAABxU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTEMBAAAAFVTeXN0ZW0uQ29sbGVjdGlvbnMsIFZlcnNpb249OS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQEAAACgAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlNvcnRlZExpc3RgMltbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludCwgU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTFdXQcAAAAEa2V5cwZ2YWx1ZXMFX3NpemUHdmVyc2lvbghjb21wYXJlcgdrZXlMaXN0CXZhbHVlTGlzdAcEAAADBAQIKEJpbmFyeUZvcm1hdFRlc3RzLkZvcm1hdHRlclRlc3RzLlBvaW50W10DAAAACAiJAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkdlbmVyaWNDb21wYXJlcmAxW1tTeXN0ZW0uSW50MzIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dqAJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5Tb3J0ZWRMaXN0YDIrS2V5TGlzdFtbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludCwgU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTFdXQQAAACqAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlNvcnRlZExpc3RgMitWYWx1ZUxpc3RbW1N5c3RlbS5JbnQzMiwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbQmluYXJ5Rm9ybWF0VGVzdHMuRm9ybWF0dGVyVGVzdHMuUG9pbnQsIFN5c3RlbS5SZXNvdXJjZXMuRXh0ZW5zaW9ucy5CaW5hcnlGb3JtYXQuVGVzdHMsIFZlcnNpb249OS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jYzdiMTNmZmNkMmRkZDUxXV0EAAAAAgAAAAkFAAAACQYAAAACAAAAAAAAAAkHAAAACgoPBQAAAAIAAAAIAQAAAAIAAAAHBgAAAAABAAAAAgAAAAQmQmluYXJ5Rm9ybWF0VGVzdHMuRm9ybWF0dGVyVGVzdHMuUG9pbnQDAAAACQgAAAAJCQAAAAQHAAAAiQFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5HZW5lcmljQ29tcGFyZXJgMVtbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQAAAAAFCAAAACZCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludAIAAAABWAFZAAAICAMAAAABAAAAAQAAAAEJAAAACAAAAAIAAAACAAAACw==
      Decoded: �����????������������ISystem, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089����qSystem.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null����USystem.Collections, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a�����?�System.Collections.Generic.SortedList`2[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]�����keys�values�_size�version�comparer�keyList	valueList��������(BinaryFormatTests.FormatterTests.Point[]������?�System.Collections.Generic.GenericComparer`1[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089]]?�System.Collections.Generic.SortedList`2+KeyList[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]����?�System.Collections.Generic.SortedList`2+ValueList[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]��������	����	������������	�������������������������������������&BinaryFormatTests.FormatterTests.Point����	����		��������?�System.Collections.Generic.GenericComparer`1[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089]]���������&BinaryFormatTests.FormatterTests.Point�����X�Y�����������������	����������������
      
      --------------- Runtime generated blob ---------------
      Encoded: AAEAAAD/////AQAAAAAAAAAMAgAAAElTeXN0ZW0sIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5DAMAAABxU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTEMBAAAAFVTeXN0ZW0uQ29sbGVjdGlvbnMsIFZlcnNpb249OS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQEAAACgAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlNvcnRlZExpc3RgMltbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludCwgU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTFdXQcAAAAEa2V5cwZ2YWx1ZXMFX3NpemUHdmVyc2lvbghjb21wYXJlcgdrZXlMaXN0CXZhbHVlTGlzdAcEAAADBAQIKEJpbmFyeUZvcm1hdFRlc3RzLkZvcm1hdHRlclRlc3RzLlBvaW50W10DAAAACAiJAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkdlbmVyaWNDb21wYXJlcmAxW1tTeXN0ZW0uSW50MzIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dqAJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5Tb3J0ZWRMaXN0YDIrS2V5TGlzdFtbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludCwgU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTFdXQQAAACqAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlNvcnRlZExpc3RgMitWYWx1ZUxpc3RbW1N5c3RlbS5JbnQzMiwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbQmluYXJ5Rm9ybWF0VGVzdHMuRm9ybWF0dGVyVGVzdHMuUG9pbnQsIFN5c3RlbS5SZXNvdXJjZXMuRXh0ZW5zaW9ucy5CaW5hcnlGb3JtYXQuVGVzdHMsIFZlcnNpb249OS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jYzdiMTNmZmNkMmRkZDUxXV0EAAAAAgAAAAkFAAAACQYAAAACAAAAAAAAAAkHAAAACQgAAAAJCQAAAA8FAAAAAgAAAAgBAAAAAgAAAAcGAAAAAAEAAAACAAAABCZCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludAMAAAAJCgAAAAkLAAAABAcAAACJAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkdlbmVyaWNDb21wYXJlcmAxW1tTeXN0ZW0uSW50MzIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAAAAAAUIAAAAqAJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5Tb3J0ZWRMaXN0YDIrS2V5TGlzdFtbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtCaW5hcnlGb3JtYXRUZXN0cy5Gb3JtYXR0ZXJUZXN0cy5Qb2ludCwgU3lzdGVtLlJlc291cmNlcy5FeHRlbnNpb25zLkJpbmFyeUZvcm1hdC5UZXN0cywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWNjN2IxM2ZmY2QyZGRkNTFdXQEAAAAFX2RpY3QEoAJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5Tb3J0ZWRMaXN0YDJbW1N5c3RlbS5JbnQzMiwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbQmluYXJ5Rm9ybWF0VGVzdHMuRm9ybWF0dGVyVGVzdHMuUG9pbnQsIFN5c3RlbS5SZXNvdXJjZXMuRXh0ZW5zaW9ucy5CaW5hcnlGb3JtYXQuVGVzdHMsIFZlcnNpb249OS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jYzdiMTNmZmNkMmRkZDUxXV0CAAAABAAAAAkBAAAABQkAAACqAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlNvcnRlZExpc3RgMitWYWx1ZUxpc3RbW1N5c3RlbS5JbnQzMiwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbQmluYXJ5Rm9ybWF0VGVzdHMuRm9ybWF0dGVyVGVzdHMuUG9pbnQsIFN5c3RlbS5SZXNvdXJjZXMuRXh0ZW5zaW9ucy5CaW5hcnlGb3JtYXQuVGVzdHMsIFZlcnNpb249OS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jYzdiMTNmZmNkMmRkZDUxXV0BAAAABV9kaWN0BKACU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuU29ydGVkTGlzdGAyW1tTeXN0ZW0uSW50MzIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV0sW0JpbmFyeUZvcm1hdFRlc3RzLkZvcm1hdHRlclRlc3RzLlBvaW50LCBTeXN0ZW0uUmVzb3VyY2VzLkV4dGVuc2lvbnMuQmluYXJ5Rm9ybWF0LlRlc3RzLCBWZXJzaW9uPTkuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Y2M3YjEzZmZjZDJkZGQ1MV1dAgAAAAQAAAAJAQAAAAUKAAAAJkJpbmFyeUZvcm1hdFRlc3RzLkZvcm1hdHRlclRlc3RzLlBvaW50AgAAAAFYAVkAAAgIAwAAAAEAAAABAAAAAQsAAAAKAAAAAgAAAAIAAAAL
      Decoded: �����????������������ISystem, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089����qSystem.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null����USystem.Collections, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a�����?�System.Collections.Generic.SortedList`2[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]�����keys�values�_size�version�comparer�keyList	valueList��������(BinaryFormatTests.FormatterTests.Point[]������?�System.Collections.Generic.GenericComparer`1[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089]]?�System.Collections.Generic.SortedList`2+KeyList[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]����?�System.Collections.Generic.SortedList`2+ValueList[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]��������	����	������������	����	����		������������������������������������&BinaryFormatTests.FormatterTests.Point����	���	���������?�System.Collections.Generic.GenericComparer`1[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089]]���������?�System.Collections.Generic.SortedList`2+KeyList[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]�����_dict�?�System.Collections.Generic.SortedList`2[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]��������	�����	���?�System.Collections.Generic.SortedList`2+ValueList[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]�����_dict�?�System.Collections.Generic.SortedList`2[[System.Int32, mscorlib, Version=0.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561934e089],[BinaryFormatTests.FormatterTests.Point, System.Resources.Extensions.BinaryFormat.Tests, Version=0.0.0.0 Culture=neutral, PublicKeyToken=null]]��������	��������&BinaryFormatTests.FormatterTests.Point�����X�Y���������������������������������
      Stack Trace:
        /_/src/libraries/System.Resources.Extensions/tests/BinaryFormatTests/Legacy/BinaryFormatterTests.cs(256,0): at BinaryFormatTests.FormatterTests.BinaryFormatterTests.SanityCheckBlob(Object obj, TypeSerializableValue[] blobs)
        /_/src/libraries/System.Resources.Extensions/tests/BinaryFormatTests/Legacy/BinaryFormatterTests.cs(53,0): at BinaryFormatTests.FormatterTests.BinaryFormatterTests.ValidateAndRoundtrip(Object obj, TypeSerializableValue[] blobs, Boolean isEqualityComparer)
        /_/src/libraries/System.Resources.Extensions/tests/BinaryFormatTests/Legacy/BinaryFormatterTests.cs(23,0): at BinaryFormatTests.FormatterTests.BinaryFormatterTests.ValidateAgainstBlobs(Object obj, TypeSerializableValue[] blobs)
           at InvokeStub_BinaryFormatterTests.ValidateAgainstBlobs(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

It was very hard to reproduce this problem, so my guess was that it was dependent on test execution order.

I did some debugging and it turned out that EqualityExtensions.CheckEquals enumerates over all properties of given type.
Some of the properties might be lazy evaluated and stored in a field. BF is storing all the fields. It means that serializing given object instance before and after passing it to EqualityExtensions.CheckEquals may produce different blobs!

The fix was to call that method up-front and update the blob and moreover stop caching the test input, as it may clearly get mutated by the tests (this explains why the original BF tests were not flaky).

fixes #103367
fixes #103478

…ont as it enumerates all properties and may change the contents of the fields
…ches to be the same object, as we want to compare exactly the same object on purpose
…uated SortedList<TKey, TValue>.keyList and valueList
…e it which may cause hard to repro failures based on the order of executed tests
@adamsitnik adamsitnik added the binaryformatter-migration Issues related to the removal of BinaryFormatter and migrations away from it label Jun 14, 2024
@adamsitnik adamsitnik added this to the 9.0.0 milestone Jun 14, 2024
@adamsitnik adamsitnik requested a review from JeremyKuhne June 14, 2024 14:16
@adamsitnik adamsitnik self-assigned this Jun 14, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 14, 2024
@adamsitnik adamsitnik added area-System.Resources and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 14, 2024
Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-resources
See info in area-owners.md if you want to be subscribed.

Copy link
Member

@stephentoub stephentoub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We just got "lucky" that we didn't hit this before in existing tests?

@adamsitnik
Copy link
Member Author

We just got "lucky" that we didn't hit this before in existing tests?

These tests were not caching the input for all tests in a static field, so the mutation could not affect other test invocations

@adamsitnik
Copy link
Member Author

I am going to close and re-open the PR hoping that the CI leg that should have been cancelled is going to change the status:

image

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Resources binaryformatter-migration Issues related to the removal of BinaryFormatter and migrations away from it
Projects
None yet
2 participants