AyCode.Core/AyCode.Core.Tests/Serialization
Loretta f051f32bfa Refactor MaxDepth handling: explicit Throw/Truncate/Disable
- Introduce `MaxDepthBehavior` option (`Throw`, `Truncate`, `Disable`) for explicit depth-limit handling in AcBinarySerializer and SGen.
- Default is now `Throw` (fail-fast); `ShallowCopy` preset uses `Truncate` for shallow-copy semantics.
- Refactor runtime and SGen paths to use unified `TryEnterRecursion`/`ExitRecursion` for correct wire output and inc/dec symmetry.
- Add focused tests to diagnose SGen+Truncate wire-misalignment bug (see `BINARY_ISSUES.md#accore-bin-i-t7k3`).
- Update docs and comments to clarify new behavior and document Toon serializer's current lack of `MaxDepthBehavior` support.
- Adjust tests and usages for new semantics and improved safety.
2026-05-14 14:13:48 +02:00
..
AcBinaryDateTimeSerializationTests.cs Refactor: Add high-perf JSON serializer & merge support 2025-12-14 19:34:49 +01:00
AcBinarySerializerBasicTests.cs Polymorphic serialization: slot-based prefix system overhaul 2026-03-09 15:04:46 +01:00
AcBinarySerializerBenchmarkTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerChainReferenceTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerChainTests.cs Zero-copy SignalR: direct object response, no SignalData 2026-04-06 22:45:00 +02:00
AcBinarySerializerCircularReferenceTests.cs Update serializer tests for param options; swap option defaults 2026-02-25 09:43:55 +01:00
AcBinarySerializerDateTimeTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcBinarySerializerDiagnosticTests.cs Refactor SGen: property/object marker bridges, FixObj support 2026-03-10 17:32:00 +01:00
AcBinarySerializerGenericTypeTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcBinarySerializerIIdReferenceTests.cs Refactor MaxDepth handling: explicit Throw/Truncate/Disable 2026-05-14 14:13:48 +02:00
AcBinarySerializerMaxDepthTruncateTests.cs Refactor MaxDepth handling: explicit Throw/Truncate/Disable 2026-05-14 14:13:48 +02:00
AcBinarySerializerNamedPipeTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerNavigationPropertyTests.cs Refactor: unify reference handling, footer string interning, benchmarks 2026-01-23 10:50:19 +01:00
AcBinarySerializerNullableTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcBinarySerializerObjectTests.cs Update enum values, PropertySkip code, and add int tests 2026-01-05 09:44:02 +01:00
AcBinarySerializerPipeParallelTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerSGenRuntimeCompatibilityTests.cs Refactor benchmark infra: generic, multi-variant test data 2026-05-13 13:54:53 +02:00
AcBinarySerializerStringInterningTests.cs Refactor string interning to use enum and attribute 2026-01-26 11:04:25 +01:00
AcExpressionNodeSerializationTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcJsonSerializerChainTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcJsonSerializerIIdReferenceTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcSerializerTestHelper.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AsyncPipeReaderInputExtensions.cs [LOADED_DOCS: 3 files, no new loads] 2026-05-02 15:51:07 +02:00
ChainReferenceDebugTest.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
GeneratedSerializerIntegrationTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
QuickBenchmark.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
README.md Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Utf8TranscoderTests.cs [LOADED_DOCS: 3 files, no new loads] 2026-05-06 13:52:35 +02:00

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.