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
169 lines
2.2 KiB
JSON
169 lines
2.2 KiB
JSON
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"p0": {
|
|
"type": "string"
|
|
},
|
|
"p1": {
|
|
"type": "string"
|
|
},
|
|
"p2": {
|
|
"type": "string"
|
|
},
|
|
"p3": {
|
|
"type": "string"
|
|
},
|
|
"p4": {
|
|
"type": "string"
|
|
},
|
|
"p5": {
|
|
"type": "string"
|
|
},
|
|
"p6": {
|
|
"type": "string"
|
|
},
|
|
"p7": {
|
|
"type": "string"
|
|
},
|
|
"p8": {
|
|
"type": "string"
|
|
},
|
|
"p9": {
|
|
"type": "string"
|
|
},
|
|
"p10": {
|
|
"type": "string"
|
|
},
|
|
"p11": {
|
|
"type": "string"
|
|
},
|
|
"p12": {
|
|
"type": "string"
|
|
},
|
|
"p13": {
|
|
"type": "string"
|
|
},
|
|
"p14": {
|
|
"type": "string"
|
|
},
|
|
"p15": {
|
|
"type": "string"
|
|
},
|
|
"p16": {
|
|
"type": "string"
|
|
},
|
|
"p17": {
|
|
"type": "string"
|
|
},
|
|
"p18": {
|
|
"type": "string"
|
|
},
|
|
"p19": {
|
|
"type": "string"
|
|
},
|
|
"p20": {
|
|
"type": "string"
|
|
},
|
|
"p21": {
|
|
"type": "string"
|
|
},
|
|
"p22": {
|
|
"type": "string"
|
|
},
|
|
"p23": {
|
|
"type": "string"
|
|
},
|
|
"p24": {
|
|
"type": "string"
|
|
},
|
|
"p25": {
|
|
"type": "string"
|
|
},
|
|
"p26": {
|
|
"type": "string"
|
|
},
|
|
"p27": {
|
|
"type": "string"
|
|
},
|
|
"p28": {
|
|
"type": "string"
|
|
},
|
|
"p29": {
|
|
"type": "string"
|
|
},
|
|
"p30": {
|
|
"type": "string"
|
|
},
|
|
"p31": {
|
|
"type": "string"
|
|
},
|
|
"p32": {
|
|
"type": "string"
|
|
},
|
|
"p33": {
|
|
"type": "string"
|
|
},
|
|
"p34": {
|
|
"type": "string"
|
|
},
|
|
"p35": {
|
|
"type": "string"
|
|
},
|
|
"p36": {
|
|
"type": "string"
|
|
},
|
|
"p37": {
|
|
"type": "string"
|
|
},
|
|
"p38": {
|
|
"type": "string"
|
|
},
|
|
"p39": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"p0",
|
|
"p1",
|
|
"p2",
|
|
"p3",
|
|
"p4",
|
|
"p5",
|
|
"p6",
|
|
"p7",
|
|
"p8",
|
|
"p9",
|
|
"p10",
|
|
"p11",
|
|
"p12",
|
|
"p13",
|
|
"p14",
|
|
"p15",
|
|
"p16",
|
|
"p17",
|
|
"p18",
|
|
"p19",
|
|
"p20",
|
|
"p21",
|
|
"p22",
|
|
"p23",
|
|
"p24",
|
|
"p25",
|
|
"p26",
|
|
"p27",
|
|
"p28",
|
|
"p29",
|
|
"p30",
|
|
"p31",
|
|
"p32",
|
|
"p33",
|
|
"p34",
|
|
"p35",
|
|
"p36",
|
|
"p37",
|
|
"p38",
|
|
"p39"
|
|
]
|
|
}
|