This commit is contained in:
2026-08-09 22:47:13 +08:00
parent 1354aa54ba
commit 11407faf86
11 changed files with 85 additions and 143 deletions
+8
View File
@@ -356,6 +356,14 @@ ctest --test-dir build --output-on-failure
Standalone configuration exposes `STRUCTIVE_BUILD_EXAMPLES`, `STRUCTIVE_BUILD_TESTS` and `STRUCTIVE_INSTALL`. Examples default on only when Structive is the top-level project; tests follow `BUILD_TESTING`; standalone install defaults on. Installation exports `structive::property_core` and `structive::property_extensions` through `find_package(Structive CONFIG)`, and the standalone CTest suite verifies an external install consumer.
Tests are divided by contract so the same behavior is not repeated in one catch-all executable:
- `property_core_test.cpp`: schema, attributes, explicit validation, typed access, traversal, computed properties and object copy semantics;
- `runtime_api_test.cpp`: type-erased result codes, callback metadata, the copy-write boundary, managed blocking and the read-only zero-lock path;
- `synchronization_test.cpp`: topology, invalid plans, guard held sets, blocking relationships and stable lock order;
- `compile_fail/`: duplicate keys/storage/single-valued attributes, missing keys and invalid capability/constraint/member contracts;
- standalone public-header and install-consumer tests: include self-sufficiency and exported-package boundaries.
## Documentation
- [Design Philosophy and Principles](docs/DESIGN.md)