schemagen: support objects with >32 properties #9

Merged
andrew merged 2 commits from weaselbot/weaseljson:weaselbot/issue-3 into main 2026-06-18 22:23:53 +00:00
Member

Closes #3

Closes #3
weaselbot marked the pull request as ready for review 2026-06-18 14:31:38 +00:00
andrew requested changes 2026-06-18 20:08:51 +00:00
@@ -59,6 +59,11 @@ jobs:
cd build
ctest --output-on-failure -j "$(nproc)" --timeout 90
- name: Run schemagen tests
Owner

We should register tests using ctest. Rebase onto main and you'll see an example

We should register tests using ctest. Rebase onto main and you'll see an example
weaselbot added 2 commits 2026-06-18 20:33:21 +00:00
Replace the 32-bit `uint32_t seen` bitmask with a `std::vector<uint64_t>`
bitset sized to the actual field count.  `requiredMask` is now a vector of
the same word count, and required-field checks use per-word masking so that
optional fields do not cause false rejections.

Adds big.schema.json + test_big.cpp regression tests covering the issue
reproducer (40 required properties, missing/duplicate at index 32), plus
run_tests.sh to exercise both test_gen.cpp and test_big.cpp.

Fixes #3
ci: register schemagen regression tests with ctest
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-arm64, ubuntu-latest-arm64, true) (pull_request) Successful in 53s
CI / pre-commit (pull_request) Successful in 51s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-arm64, ubuntu-latest-arm64, false) (pull_request) Successful in 51s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-amd64, ubuntu-latest-amd64, true) (pull_request) Successful in 1m30s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-amd64, ubuntu-latest-amd64, false) (pull_request) Successful in 1m24s
2ad15708eb
Remove the standalone "Run schemagen tests" workflow step and instead
add the big-schema regression test to contrib/schemagen/CMakeLists.txt
so ctest picks it up alongside schemagen_example. Update README to
document both `ctest` and the convenience `./run_tests.sh`.

Closes #3
weaselbot force-pushed weaselbot/issue-3 from 3036063861 to 2ad15708eb 2026-06-18 20:33:21 +00:00 Compare
andrew merged commit b641489a59 into main 2026-06-18 22:23:53 +00:00
andrew deleted branch weaselbot/issue-3 2026-06-18 22:23:53 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weaselab/weaseljson#9