test/emit-parser-verify.ts checks that the emitted parser (emitParser, PR #4) is byte-identical to createParser (the oracle) across the tests/cases corpus — but it is not run in CI. So a future change to gen-parser.ts, emit-parser.ts, gen-lexer.ts, or a grammar could silently make the emitted parser diverge from the oracle.
Add it to the CI test job over a stride-sample (a few hundred to a few thousand files, for runtime), so emitted == createParser is enforced on every push.
Optionally: emit the parser from cli.ts and add the emitted artifact to the npm run gen "must be in sync" check, so the committed emitted parser can't drift from the grammar either.
test/emit-parser-verify.tschecks that the emitted parser (emitParser, PR #4) is byte-identical tocreateParser(the oracle) across thetests/casescorpus — but it is not run in CI. So a future change togen-parser.ts,emit-parser.ts,gen-lexer.ts, or a grammar could silently make the emitted parser diverge from the oracle.Add it to the CI test job over a stride-sample (a few hundred to a few thousand files, for runtime), so
emitted == createParseris enforced on every push.Optionally: emit the parser from
cli.tsand add the emitted artifact to thenpm run gen"must be in sync" check, so the committed emitted parser can't drift from the grammar either.