- Fix SGen collection/dictionary null-handling: always emit PropertySkip for nulls, preventing NREs regardless of nullable annotation. - Add micro-opt CV threshold (1.5%) to benchmark output for finer-grained result flagging; update reporting and context. - Benchmark loop: add inter-sample settle delay, trimmed median, and branchless progress for more reliable measurements. - Add regression tests for SGen null-handling (complex, collection, dictionary; null/non-null; SGen/reflection; FastMode/Default). - Update docs: clarify SGen null-check contract, add AQN binder security plan, and cross-reference related issues. - Misc: code cleanups, improved comments, and minor doc clarifications. |
||
|---|---|---|
| .. | ||
| AcBinaryDateTimeSerializationTests.cs | ||
| AcBinarySerializerBasicTests.cs | ||
| AcBinarySerializerBenchmarkTests.cs | ||
| AcBinarySerializerChainReferenceTests.cs | ||
| AcBinarySerializerChainTests.cs | ||
| AcBinarySerializerCircularReferenceTests.cs | ||
| AcBinarySerializerDateTimeTests.cs | ||
| AcBinarySerializerDiagnosticTests.cs | ||
| AcBinarySerializerGenericTypeTests.cs | ||
| AcBinarySerializerIIdReferenceTests.cs | ||
| AcBinarySerializerMaxDepthTruncateTests.cs | ||
| AcBinarySerializerNamedPipeTests.cs | ||
| AcBinarySerializerNavigationPropertyTests.cs | ||
| AcBinarySerializerNullableTests.cs | ||
| AcBinarySerializerObjectTests.cs | ||
| AcBinarySerializerPipeParallelTests.cs | ||
| AcBinarySerializerSGenNullComplexPropertyTests.cs | ||
| AcBinarySerializerSGenRuntimeCompatibilityTests.cs | ||
| AcBinarySerializerStringInterningTests.cs | ||
| AcExpressionNodeSerializationTests.cs | ||
| AcJsonSerializerChainTests.cs | ||
| AcJsonSerializerIIdReferenceTests.cs | ||
| AcSerializerTestHelper.cs | ||
| AsyncPipeReaderInputExtensions.cs | ||
| ChainReferenceDebugTest.cs | ||
| GeneratedSerializerIntegrationTests.cs | ||
| QuickBenchmark.cs | ||
| README.md | ||
| Utf8TranscoderTests.cs | ||
README.md
Serialization Tests
Comprehensive test suite for binary and JSON serialization: round-trips, reference handling, chains, and source generator integration.
Key Files
Basic Types
AcBinarySerializerBasicTests.cs— Primitives: int, double, string, bool, DateTime, Guid.AcBinarySerializerDateTimeTests.cs— DateTime handling and type mismatch detection.AcBinarySerializerNullableTests.cs— Nullable types: int?, long?, etc.
Complex Objects
AcBinarySerializerObjectTests.cs— Nested objects and hierarchies.AcBinarySerializerNavigationPropertyTests.cs— EF-style navigation properties.AcBinarySerializerGenericTypeTests.cs— Generic type parameters.
Reference Handling
AcBinarySerializerChainTests.cs— Binary Chain API (CreateDeserializeChain, ThenDeserialize).AcBinarySerializerChainReferenceTests.cs— Chain with $id/$ref references.AcBinarySerializerCircularReferenceTests.cs— Circular/bidirectional references.AcBinarySerializerIIdReferenceTests.cs— IId interface-based reference tracking.AcBinarySerializerStringInterningTests.cs— String deduplication via [AcStringIntern].
JSON
AcJsonSerializerChainTests.cs— JSON chain operations.AcJsonSerializerIIdReferenceTests.cs— JSON $id/$ref handling.AcExpressionNodeSerializationTests.cs— Expression tree serialization.
Source Generator & Performance
GeneratedSerializerIntegrationTests.cs— Verifies generated writer types implement IGeneratedBinaryWriter.QuickBenchmark.cs— Performance comparison: AcBinary vs MessagePack.AcSerializerTestHelper.cs— Factory methods for test data.