From d708126ae5c567d418ca4b683e980b6cd8d8822d Mon Sep 17 00:00:00 2001 From: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Date: Sun, 4 Oct 2026 22:12:32 -0400 Subject: [PATCH] fix(ci): run every documented example falsifier in smoke Example READMEs documented falsifiers that no job ran. Only one flag per row was in the catalog, and the weekly sweep reads only showcase/. Any of those checks could stop failing unnoticed. Add the 19 remaining non-render falsifiers to their catalog rows: - cross-version-property-delete --unset-instead (7) - gn-zone-iterate --no-offset (4), --unpair-foreach (5), --foreach-main (5) - gn-sim-fountain --euler (4), --prebake-trap (5), --calc-to-frame (6) - gn-bundle-roundtrip --mismatch (3), --bypass (4), --mismatch-mark (5) - exit-pre-sidecar --no-handler, --silent-handler, --wrong-text, --write-in-main (sidecar must fail) - ngon-triangulate --skip-triangulate (4), unapplied-scale-gltf --bake (4), coincident-vert-weld --weld (4) - usd-export-evaluation-mode --evaluation-mode VIEWPORT (4) - gn-modifier-inputs --api dict (5, from 5.2; exits 0 on 5.1) They run on every smoke leg, so they run at least weekly. The READMEs' "Smoke does not pass" sentences now list them as catalog falsifiers, which check_smoke_catalog enforces. The ROADMAP item that deferred this is removed. Render-path diagnostics (--falsify, --close-camera, --probe) and mode switches (--force-run, --obj) stay out of smoke. Closes #362 Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 --- ROADMAP.md | 1 - .../cross-version-property-delete/index.html | 2 +- docs/gallery/gn-modifier-inputs/index.html | 2 +- docs/gallery/gn-sim-fountain/index.html | 2 +- docs/gallery/gn-zone-iterate/index.html | 2 +- .../usd-export-evaluation-mode/index.html | 2 +- examples/coincident-vert-weld/README.md | 2 +- .../cross-version-property-delete/README.md | 2 +- examples/exit-pre-sidecar/README.md | 4 +++- examples/gn-bundle-roundtrip/README.md | 5 +++-- examples/gn-modifier-inputs/README.md | 2 +- examples/gn-sim-fountain/README.md | 2 +- examples/gn-zone-iterate/README.md | 2 +- examples/ngon-triangulate/README.md | 2 +- examples/unapplied-scale-gltf/README.md | 2 +- examples/usd-export-evaluation-mode/README.md | 2 +- tests/smoke/catalog.json | 20 +++++++++---------- 17 files changed, 29 insertions(+), 27 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 7c23c1ac..07923610 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -169,7 +169,6 @@ Not committed; open subjects only. Remove a subject when it ships (CLAUDE.md § - Tighten inverted smoke canaries: assert the expected `[FAIL]` marker text (`skipped on ... should run` / `missing post-exit sidecar`) alongside wrapper exit 1, so a canary that dies for the wrong reason does not satisfy the gate - Overlapping / mirrored UV islands as a *shipped* pathology (not lightmap `--falsify`): SAT hits matching a constructed overlap, then glTF TEXCOORD survival. Deferred — `lightmap-uv-channel` already owns the zero-overlap gate. - Vendor CC0 asset fixtures (Kenney, Quaternius, ambientCG only — no aggregators) as `.glb` not `.blend`, with per-fixture provenance records mirroring the Free-Game-Dev-Assets frontmatter schema. Permitted only where the assertion is an invariant over the fixture rather than a measurement of it. Deferred pending a decision on repo weight and CI fetch policy. -- Falsification flags on shipped examples (Phases 6–8 `--skip-delete` / `--unpair-*` / `--bypass`, Phase 9 `--silent-handler` / `--wrong-text`, Phase 10 `--no-dissolve` / `--identity` / `--no-duplicate`) were proven local-Windows only — chat and `.scratch`, not CI history. Decide later whether a cron should exercise them or whether flags in the scripts are sufficient record. - `modal-operators` skill -- `invoke` returning `RUNNING_MODAL`, the `modal()` event handler, modal cancellation patterns - `usd-pipelines` skill -- USD export options, `evaluation_mode`, instancing, the USD vs glTF tradeoffs - `mathutils-patterns` skill -- `mathutils.Vector`, `Matrix`, `Quaternion`, common transforms, the `@` operator diff --git a/docs/gallery/cross-version-property-delete/index.html b/docs/gallery/cross-version-property-delete/index.html index cf612a7a..d245817d 100644 --- a/docs/gallery/cross-version-property-delete/index.html +++ b/docs/gallery/cross-version-property-delete/index.html @@ -79,7 +79,7 @@

Run

Exit codes#

Per-script sequential checks. 9 is a valid check code; there is no rule against it. 10 is the shared framing helper.

CodeMeaning
0Success
1Uncaught exception (FATAL wrapper)
2argparse / usage; also an active object existed after the data-API build
3Custom ID property did not land
4property_unset on a custom ID key did not TypeError, or it deleted the key
5del did not report removal
6Keep lamp lost the ID property
7Clear lamp still has the ID property (--skip-delete / --unset-instead land here)
8Registered-prop contract broke: attribute/property_unset failed, the prop sits on the wrong side of the 5.0 ID-property split, or scene["name"] raised KeyError (--subscript-registered on 5.0+; exits 0 on 4.5, where subscript access still works)
10Gallery framing violation
12--output produced no file
-

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output or --unset-instead. Its catalog falsifiers are --skip-delete (expects exit 7); --subscript-registered (expects exit 8; 5.0+ only; SKIP on older Blender).

+

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output. Its catalog falsifiers are --skip-delete (expects exit 7); --unset-instead (expects exit 7); --subscript-registered (expects exit 8; 5.0+ only; SKIP on older Blender).

Source

diff --git a/docs/gallery/gn-modifier-inputs/index.html b/docs/gallery/gn-modifier-inputs/index.html index 153209fe..c4696771 100644 --- a/docs/gallery/gn-modifier-inputs/index.html +++ b/docs/gallery/gn-modifier-inputs/index.html @@ -84,7 +84,7 @@

Run

Exit codes#

Per-script sequential checks. 9 is a valid check code; there is no rule against it. 10 is the shared framing helper.

CodeMeaning
0Success
1Uncaught exception (FATAL wrapper)
2argparse / usage
3Height input identifier missing on the tree interface
4Modifiers do not share one node_group
5Version-path write raised (--api dict on 5.2, --api rna on 4.5)
6Version-path read raised
7Readback ≠ intended height (--same-height lands here)
8Evaluated Z-extent ≠ intended height
9Evaluated mesh not sitting on z=0
10Gallery framing violation
11Evaluated extents not distinct
12--output produced no file
-

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output or --api dict/rna. Its catalog falsifier is --same-height (expects exit 7).

+

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output. Forcing the RNA path is not smoke-tested (it raises on 4.5 and is the default on 5.2). Its catalog falsifiers are --same-height (expects exit 7) and --api dict (expects exit 5; 5.2+ only, where the dict write raises; SKIP on older Blender, where it exits 0).

Falsification#

ProbeBinaryResult
--api dict5.2.1 LTSexit 5, TypeError: id properties not supported for this type
--api rna4.5.11 LTSexit 5, AttributeError: 'NodesModifier' object has no attribute 'properties'
--api dict5.1.2exit 0 (5.1 still takes the dict form)
--api rna5.1.2exit 5, AttributeError: 'NodesModifier' object has no attribute 'properties'
--same-height5.2.1, 5.1.2, 4.5.11exit 7, readback 1.0 != written 2.0 on SpiralStair.H2
RAIL_H = -0.5 (treads climb past the post)5.2.1, 4.5.11exit 8, evaluated Z-extent 1.934334 != height 1.0
--api auto5.2.1, 5.1.2, 4.5.11exit 0, extents 1.000 / 2.000 / 3.000
diff --git a/docs/gallery/gn-sim-fountain/index.html b/docs/gallery/gn-sim-fountain/index.html index 15c5aa1a..2f28b277 100644 --- a/docs/gallery/gn-sim-fountain/index.html +++ b/docs/gallery/gn-sim-fountain/index.html @@ -84,7 +84,7 @@

FalsifiersExit codes#

Per-script sequential checks. 10 is the shared framing helper.

CodeMeaning
0Success
1Uncaught exception (FATAL wrapper)
2argparse / usage
3Point count or frame-start state off the launch data
4Stepped frames off the closed-form arc (position or velocity)
5Direct jump did not reproduce the one-step trap
6After the cache fill, random-access frames off the arc (or fill not FINISHED)
10Gallery framing violation
12--output produced no file
-

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output or any falsifier.

+

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output. Its catalog falsifiers are the three in the table above: --euler (expects exit 4), --prebake-trap (expects exit 5) and --calc-to-frame (expects exit 6).

Source

diff --git a/docs/gallery/gn-zone-iterate/index.html b/docs/gallery/gn-zone-iterate/index.html index f2b6ec6d..ac1ead1e 100644 --- a/docs/gallery/gn-zone-iterate/index.html +++ b/docs/gallery/gn-zone-iterate/index.html @@ -77,7 +77,7 @@

Run

Exit codes#

Per-script sequential checks. 9 is a valid check code; there is no rule against it. 10 is the shared framing helper.

CodeMeaning
0Success
1Uncaught exception (FATAL wrapper)
2argparse / usage; also carrier mesh was rewritten
3Repeat evaluated vert/face count off closed form
4Repeat X-centers off closed form
5For Each evaluated vert/face count off closed form
6For Each Z-centers off closed form
10Gallery framing violation
12--output produced no file
-

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output, --no-offset, or --unpair-foreach. Its catalog falsifier is --unpair-repeat (expects exit 3).

+

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output. Its catalog falsifiers are --unpair-repeat (expects exit 3), --no-offset (expects exit 4), --unpair-foreach and --foreach-main (each expects exit 5).

Source

diff --git a/docs/gallery/usd-export-evaluation-mode/index.html b/docs/gallery/usd-export-evaluation-mode/index.html index 280341fe..cbf4501d 100644 --- a/docs/gallery/usd-export-evaluation-mode/index.html +++ b/docs/gallery/usd-export-evaluation-mode/index.html @@ -74,7 +74,7 @@

Run

Exit codes#

Per-script sequential checks. 9 is a valid check code; there is no rule against it. 10 is the shared framing helper.

CodeMeaning
0Success
1Uncaught exception (FATAL wrapper)
2argparse / usage; also base cube verts ≠ 8
3VIEWPORT TESSELLATE point/face count off closed form
4RENDER TESSELLATE point/face count or scheme off closed form
5BEST_MATCH cage point count or scheme off
6RENDER and VIEWPORT USDA point counts are identical (check), or the re-imported RENDER goblet is not denser than the VIEWPORT one (--output)
10Gallery framing violation
12--output produced no file
-

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output or --evaluation-mode. Its catalog falsifier is --subdivision BEST_MATCH (expects exit 4).

+

The blender-smoke workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch). Smoke does not pass --output. Its catalog falsifiers are --subdivision BEST_MATCH (expects exit 4) and --evaluation-mode VIEWPORT (expects exit 4).

Source

diff --git a/examples/coincident-vert-weld/README.md b/examples/coincident-vert-weld/README.md index c417560d..8eca3cb4 100644 --- a/examples/coincident-vert-weld/README.md +++ b/examples/coincident-vert-weld/README.md @@ -88,4 +88,4 @@ against it. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--weld`. Its catalog falsifier is `--no-duplicate` (expects exit 3). +Its catalog falsifiers are `--no-duplicate` (expects exit 3) and `--weld` (expects exit 4). diff --git a/examples/cross-version-property-delete/README.md b/examples/cross-version-property-delete/README.md index 2335c7cb..e33ac6e0 100644 --- a/examples/cross-version-property-delete/README.md +++ b/examples/cross-version-property-delete/README.md @@ -90,4 +90,4 @@ against it. `10` is the shared framing helper. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--output` or `--unset-instead`. Its catalog falsifiers are `--skip-delete` (expects exit 7); `--subscript-registered` (expects exit 8; 5.0+ only; SKIP on older Blender). +Smoke does not pass `--output`. Its catalog falsifiers are `--skip-delete` (expects exit 7); `--unset-instead` (expects exit 7); `--subscript-registered` (expects exit 8; 5.0+ only; SKIP on older Blender). diff --git a/examples/exit-pre-sidecar/README.md b/examples/exit-pre-sidecar/README.md index 486b3bab..07b50876 100644 --- a/examples/exit-pre-sidecar/README.md +++ b/examples/exit-pre-sidecar/README.md @@ -96,4 +96,6 @@ against it. `77` is the smoke skip protocol, not a product check. The `blender-smoke` workflow runs the check on Blender 5.2 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch) and skips on 4.5 -LTS. Smoke does not pass the falsifier flags. +LTS. Every falsifier in the table above is a catalog falsifier: the harness +must fail the sidecar for `--atexit-instead`, `--no-handler`, `--silent-handler`, +`--wrong-text` and `--write-in-main`. Smoke does not pass `--force-run`. diff --git a/examples/gn-bundle-roundtrip/README.md b/examples/gn-bundle-roundtrip/README.md index 5bacf994..fa6bd5f7 100644 --- a/examples/gn-bundle-roundtrip/README.md +++ b/examples/gn-bundle-roundtrip/README.md @@ -102,5 +102,6 @@ Measured on 4.5.11 / 5.0.1 / 5.1.2 / 5.2.1: The `blender-smoke` workflow runs the check on Blender 5.2 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch) and skips on 4.5 -LTS. Its catalog falsifier is `--legacy-rna` (expects exit 7). Smoke does -not pass `--bypass`, `--mismatch`, `--mismatch-mark`, or `--force-run`. +LTS. Its catalog falsifiers are `--legacy-rna` (expects exit 7), `--mismatch` +(expects exit 3), `--bypass` (expects exit 4) and `--mismatch-mark` (expects +exit 5). Smoke does not pass `--force-run`. diff --git a/examples/gn-modifier-inputs/README.md b/examples/gn-modifier-inputs/README.md index 324803bf..921532a4 100644 --- a/examples/gn-modifier-inputs/README.md +++ b/examples/gn-modifier-inputs/README.md @@ -75,7 +75,7 @@ against it. `10` is the shared framing helper. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--output` or `--api dict`/`rna`. Its catalog falsifier is `--same-height` (expects exit 7). +Smoke does not pass `--output`. Forcing the RNA path is not smoke-tested (it raises on 4.5 and is the default on 5.2). Its catalog falsifiers are `--same-height` (expects exit 7) and `--api dict` (expects exit 5; 5.2+ only, where the dict write raises; SKIP on older Blender, where it exits 0). ## Falsification diff --git a/examples/gn-sim-fountain/README.md b/examples/gn-sim-fountain/README.md index 5b3f2b9a..b9d329a3 100644 --- a/examples/gn-sim-fountain/README.md +++ b/examples/gn-sim-fountain/README.md @@ -106,4 +106,4 @@ Per-script sequential checks. `10` is the shared framing helper. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--output` or any falsifier. +Smoke does not pass `--output`. Its catalog falsifiers are the three in the table above: `--euler` (expects exit 4), `--prebake-trap` (expects exit 5) and `--calc-to-frame` (expects exit 6). diff --git a/examples/gn-zone-iterate/README.md b/examples/gn-zone-iterate/README.md index 308f1d77..4289cfb4 100644 --- a/examples/gn-zone-iterate/README.md +++ b/examples/gn-zone-iterate/README.md @@ -69,4 +69,4 @@ against it. `10` is the shared framing helper. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--output`, `--no-offset`, or `--unpair-foreach`. Its catalog falsifier is `--unpair-repeat` (expects exit 3). +Smoke does not pass `--output`. Its catalog falsifiers are `--unpair-repeat` (expects exit 3), `--no-offset` (expects exit 4), `--unpair-foreach` and `--foreach-main` (each expects exit 5). diff --git a/examples/ngon-triangulate/README.md b/examples/ngon-triangulate/README.md index 37520ee4..800e2f57 100644 --- a/examples/ngon-triangulate/README.md +++ b/examples/ngon-triangulate/README.md @@ -110,4 +110,4 @@ against it. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--skip-triangulate`. Its catalog falsifier is `--no-dissolve` (expects exit 3). +Its catalog falsifiers are `--no-dissolve` (expects exit 3) and `--skip-triangulate` (expects exit 4). diff --git a/examples/unapplied-scale-gltf/README.md b/examples/unapplied-scale-gltf/README.md index f1557686..327ef111 100644 --- a/examples/unapplied-scale-gltf/README.md +++ b/examples/unapplied-scale-gltf/README.md @@ -92,4 +92,4 @@ against it. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--bake`. Its catalog falsifier is `--identity` (expects exit 3). +Its catalog falsifiers are `--identity` (expects exit 3) and `--bake` (expects exit 4). diff --git a/examples/usd-export-evaluation-mode/README.md b/examples/usd-export-evaluation-mode/README.md index ef426bf5..0bbf0ba6 100644 --- a/examples/usd-export-evaluation-mode/README.md +++ b/examples/usd-export-evaluation-mode/README.md @@ -71,4 +71,4 @@ against it. `10` is the shared framing helper. The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch). -Smoke does not pass `--output` or `--evaluation-mode`. Its catalog falsifier is `--subdivision BEST_MATCH` (expects exit 4). +Smoke does not pass `--output`. Its catalog falsifiers are `--subdivision BEST_MATCH` (expects exit 4) and `--evaluation-mode VIEWPORT` (expects exit 4). diff --git a/tests/smoke/catalog.json b/tests/smoke/catalog.json index 5d2b2df2..45884786 100644 --- a/tests/smoke/catalog.json +++ b/tests/smoke/catalog.json @@ -15,7 +15,7 @@ {"name": "shader-node-group", "script": "examples/shader-node-group/shader_node_group.py", "falsifiers": [{"args": ["--same-tint"], "expect_exit": 6}]}, {"name": "temp-override-join", "script": "examples/temp-override-join/temp_override_join.py", "falsifiers": [{"args": ["--no-override"], "expect_exit": 3}]}, {"name": "gn-instance-grid", "script": "examples/gn-instance-grid/gn_instance_grid.py", "falsifiers": [{"args": ["--one-cell"], "expect_exit": 4}]}, - {"name": "gn-modifier-inputs", "script": "examples/gn-modifier-inputs/gn_modifier_inputs.py", "falsifiers": [{"args": ["--same-height"], "expect_exit": 7}]}, + {"name": "gn-modifier-inputs", "script": "examples/gn-modifier-inputs/gn_modifier_inputs.py", "falsifiers": [{"args": ["--same-height"], "expect_exit": 7}, {"args": ["--api", "dict"], "expect_exit": 5, "min_version": "5.2"}]}, {"name": "shape-key-blend", "script": "examples/shape-key-blend/shape_key_blend.py", "falsifiers": [{"args": ["--zero-blend"], "expect_exit": 5}]}, {"name": "curve-bevel-arc", "script": "examples/curve-bevel-arc/curve_bevel_arc.py", "falsifiers": [{"args": ["--no-caps"], "expect_exit": 6}]}, {"name": "compositor-glare", "script": "examples/compositor-glare/compositor_glare.py", "falsifiers": [{"args": ["--threshold-high"], "expect_exit": 3}]}, @@ -57,15 +57,15 @@ {"name": "lightmap-uv-channel", "script": "examples/lightmap-uv-channel/lightmap_uv_channel.py", "falsifiers": [{"args": ["--overlap-islands"], "expect_exit": 7}]}, {"name": "socket-attach-points", "script": "examples/socket-attach-points/socket_attach_points.py", "falsifiers": [{"args": ["--skip-mpi"], "expect_exit": 3}]}, {"name": "vertex-color-ao", "script": "examples/vertex-color-ao/vertex_color_ao.py", "falsifiers": [{"args": ["--uniform-hemisphere"], "expect_exit": 3}]}, - {"name": "cross-version-property-delete", "script": "examples/cross-version-property-delete/cross_version_property_delete.py", "falsifiers": [{"args": ["--skip-delete"], "expect_exit": 7}, {"args": ["--subscript-registered"], "expect_exit": 8, "min_version": "5.0"}]}, - {"name": "usd-export-evaluation-mode", "script": "examples/usd-export-evaluation-mode/usd_export_evaluation_mode.py", "falsifiers": [{"args": ["--subdivision", "BEST_MATCH"], "expect_exit": 4}]}, - {"name": "gn-zone-iterate", "script": "examples/gn-zone-iterate/gn_zone_iterate.py", "falsifiers": [{"args": ["--unpair-repeat"], "expect_exit": 3}]}, - {"name": "gn-sim-fountain", "script": "examples/gn-sim-fountain/gn_sim_fountain.py", "falsifiers": [{"args": ["--unpair"], "expect_exit": 3}]}, + {"name": "cross-version-property-delete", "script": "examples/cross-version-property-delete/cross_version_property_delete.py", "falsifiers": [{"args": ["--skip-delete"], "expect_exit": 7}, {"args": ["--subscript-registered"], "expect_exit": 8, "min_version": "5.0"}, {"args": ["--unset-instead"], "expect_exit": 7}]}, + {"name": "usd-export-evaluation-mode", "script": "examples/usd-export-evaluation-mode/usd_export_evaluation_mode.py", "falsifiers": [{"args": ["--subdivision", "BEST_MATCH"], "expect_exit": 4}, {"args": ["--evaluation-mode", "VIEWPORT"], "expect_exit": 4}]}, + {"name": "gn-zone-iterate", "script": "examples/gn-zone-iterate/gn_zone_iterate.py", "falsifiers": [{"args": ["--unpair-repeat"], "expect_exit": 3}, {"args": ["--no-offset"], "expect_exit": 4}, {"args": ["--unpair-foreach"], "expect_exit": 5}, {"args": ["--foreach-main"], "expect_exit": 5}]}, + {"name": "gn-sim-fountain", "script": "examples/gn-sim-fountain/gn_sim_fountain.py", "falsifiers": [{"args": ["--unpair"], "expect_exit": 3}, {"args": ["--euler"], "expect_exit": 4}, {"args": ["--prebake-trap"], "expect_exit": 5}, {"args": ["--calc-to-frame"], "expect_exit": 6}]}, { "name": "gn-bundle-roundtrip", "script": "examples/gn-bundle-roundtrip/gn_bundle_roundtrip.py", "min_version": "5.0", - "falsifiers": [{"args": ["--legacy-rna"], "expect_exit": 7}] + "falsifiers": [{"args": ["--legacy-rna"], "expect_exit": 7}, {"args": ["--mismatch"], "expect_exit": 3}, {"args": ["--bypass"], "expect_exit": 4}, {"args": ["--mismatch-mark"], "expect_exit": 5}] }, { "name": "exit-pre-sidecar", @@ -73,11 +73,11 @@ "min_version": "5.1", "expect_sidecar": "$OUT/exit-pre-sidecar.sidecar", "sidecar_contains": "exit_pre-ok", - "falsifiers": [{"args": ["--atexit-instead"], "expect_sidecar_fail": true}] + "falsifiers": [{"args": ["--atexit-instead"], "expect_sidecar_fail": true}, {"args": ["--no-handler"], "expect_sidecar_fail": true}, {"args": ["--silent-handler"], "expect_sidecar_fail": true}, {"args": ["--wrong-text"], "expect_sidecar_fail": true}, {"args": ["--write-in-main"], "expect_sidecar_fail": true}] }, - {"name": "ngon-triangulate", "script": "examples/ngon-triangulate/ngon_triangulate.py", "falsifiers": [{"args": ["--no-dissolve"], "expect_exit": 3}]}, - {"name": "unapplied-scale-gltf", "script": "examples/unapplied-scale-gltf/unapplied_scale_gltf.py", "falsifiers": [{"args": ["--identity"], "expect_exit": 3}]}, - {"name": "coincident-vert-weld", "script": "examples/coincident-vert-weld/coincident_vert_weld.py", "falsifiers": [{"args": ["--no-duplicate"], "expect_exit": 3}]}, + {"name": "ngon-triangulate", "script": "examples/ngon-triangulate/ngon_triangulate.py", "falsifiers": [{"args": ["--no-dissolve"], "expect_exit": 3}, {"args": ["--skip-triangulate"], "expect_exit": 4}]}, + {"name": "unapplied-scale-gltf", "script": "examples/unapplied-scale-gltf/unapplied_scale_gltf.py", "falsifiers": [{"args": ["--identity"], "expect_exit": 3}, {"args": ["--bake"], "expect_exit": 4}]}, + {"name": "coincident-vert-weld", "script": "examples/coincident-vert-weld/coincident_vert_weld.py", "falsifiers": [{"args": ["--no-duplicate"], "expect_exit": 3}, {"args": ["--weld"], "expect_exit": 4}]}, {"name": "bake-normal-high-to-low", "script": "examples/bake-normal-high-to-low/bake_normal_high_to_low.py", "falsifiers": [{"args": ["--flat-source"], "expect_exit": 5}]}, {"name": "vse-linear-modifiers", "script": "examples/vse-linear-modifiers/vse_linear_modifiers.py", "falsifiers": [{"args": ["--assume-present"], "expect_exit": 4, "min_version": "5.2"}]}, {"name": "gn-socket-rename", "script": "examples/gn-socket-rename/gn_socket_rename.py", "falsifiers": [{"args": ["--legacy-ids"], "expect_exit": 5, "min_version": "5.2"}]},