Refactor AcBinary streaming: multi-message protocol - Renamed framing flags to multiMessage for clarity in AsyncPipeReaderInput/AsyncPipeWriterOutput. - Multi-message mode ([202]=end-of-message) now auto-resets input for reuse; session end is explicit. - Updated framing state machine, buffer cycling, and sentinel logic. - Revised all serializer/deserializer entry points and tests for new protocol. - Expanded docs and XML comments to detail wire format and protocol constraints. - Updated benchmarks and tests for new streaming API and multi-message behavior. - Documented protocol limits and added security issue/TODO for type-name deserialization in SignalR binary protocol. |
||
|---|---|---|
| .. | ||
| AcBinaryDateTimeSerializationTests.cs | ||
| AcBinarySerializerBasicTests.cs | ||
| AcBinarySerializerBenchmarkTests.cs | ||
| AcBinarySerializerChainReferenceTests.cs | ||
| AcBinarySerializerChainTests.cs | ||
| AcBinarySerializerCircularReferenceTests.cs | ||
| AcBinarySerializerDateTimeTests.cs | ||
| AcBinarySerializerDiagnosticTests.cs | ||
| AcBinarySerializerGenericTypeTests.cs | ||
| AcBinarySerializerIIdReferenceTests.cs | ||
| AcBinarySerializerNamedPipeTests.cs | ||
| AcBinarySerializerNavigationPropertyTests.cs | ||
| AcBinarySerializerNullableTests.cs | ||
| AcBinarySerializerObjectTests.cs | ||
| AcBinarySerializerPipeParallelTests.cs | ||
| AcBinarySerializerStringInterningTests.cs | ||
| AcExpressionNodeSerializationTests.cs | ||
| AcJsonSerializerChainTests.cs | ||
| AcJsonSerializerIIdReferenceTests.cs | ||
| AcSerializerTestHelper.cs | ||
| ChainReferenceDebugTest.cs | ||
| GeneratedSerializerIntegrationTests.cs | ||
| QuickBenchmark.cs | ||
| README.md | ||
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.