Merge serialization changes to 2.0.0 - #20530
Conversation
|
Per my offline conversation with @mmitche Portable runs can be ignored as they should've not run. |
|
@stephentoub, could you please take another look? I've had some merge conflicts when cherry picking Viktor's PR. Conflicting files:
I took master changes in all 3 cases since that looked correct. It seems they were all related to UAP (ifdefs, test disable etc.). Is that ok or do we need to pick changes more granularily? CI is expected to fail now without CoreCLR changes |
95c8758 to
f639e79
Compare
|
BinarySerializer change is in. Now we need an offline validation if tests are not working as expected in the release/2.0 branch. |
|
@danmosemsft - local run with coreclr pending changes is passing all tests - once coreclr is merged and this PR can pick up the official coreclr bits this PR is expected to pass |
Can you please clarify this? There shouldn't be any legs in the CI that should be ignored here. Those look like correct failures that need to be understood. Perhaps those failures are because they need the corresponding coreclr changes. |
|
@weshaggard @mmitche said offline that those legs were not supposed to be run at all and that happened likely because I've opened this PR against master and closed it and then reopened another one against rel/2.0.0 with the same commit hash |
|
Looking at the CI legs that kicked off they are the expected set for release/2.0.0 branch (at least for now until we move the CI changes to the release branch). Please don't ignore the results for these CI legs make sure they are understood. |
|
@weshaggard I think current set looks good, previously it was trying to merge this PR with master branch causing merge conflicts |
|
@krwq I was looking for the ones that said "Portable Linux x64 Debug Build"/"Portable Windows x64 Debug Build" etc. that happened to run on that one PR. Beyond that, everything else here should pass |
|
Waiting on #20595 to reset CI here. |
Fixes tests that depend on types in System.Private.CoreLib being serializable that won't be serializable soon.
* Changes to throw PlatformNotSupportedException from ISerializable.GetObjectData and serialization constructors on non-serializable types. Also removes private serialization constructors and some unneeded code that was used to support serializing non-serializable types. A few tests testing GetObjectData implementations are also removed. * Address code review comments. * Change exceptions' GetObjectData to just call base rather than throw. This makes them behave consistently with exceptions that didn't override GetObjectData.
Adds serialization support to BigInteger and Complex, which were inadvetently dropped in the previous cleanup. Also renames the private fields of Complex to match NetFX so that it will be serialization compatible.
Removes a couple more tests that depend on ISerializable implementations and fixes a diagnosability issue in DataContractSerializer tests
… types that are no longer serializable. (dotnet#20384)
Disable lazy serialization tests on netcoreapp
Add tests for reflection based serialization of coretypes
949d810 to
4dc0237
Compare
TODO: