Commit bb440f9
test(gfql): seven test files that ran in NO CI lane at all now run (CA4 / #1795)
`bin/test-polars.sh` is the single source of truth for the polars lane's file
list. A file absent from it was only ever collected by `test-gfql-core` — which
installs the `test` extra and therefore has NO polars — so a module-level
`pytest.importorskip("polars")` skipped the whole file there too. Both lanes
green, file executed zero times.
Added (the three named in the audit):
test_engine_polars_call_modality.py 12
test_viz_pipeline_conformance.py 7
test_engine_polars_gpu.py 5 (self-skips without a GPU; see below)
and four more found by the same query rather than by name:
test_engine_polars_narrow_combine.py 120
test_engine_polars_semi_key_dedup.py 36 (#1784's ONLY test file, for a
polars-ONLY change)
index/test_indexed_bindings.py 87 (on the polars lane)
test_reentry_caller_graph_immutability.py 18 (#1793's suite; no module-level
importorskip, so nothing flagged
that its polars params ran nowhere)
`test_engine_polars_gpu.py` is listed deliberately even though it self-skips
without a GPU: absent from the list it is not even IMPORTED, so a broken import
or a renamed helper in it goes unnoticed until someone runs it by hand.
WHAT IT SURFACED — one CI-red test, one pre-existing fabricated-failure trap, and
NO product failures:
1. `test_indexed_bindings.py::test_explicit_polars_gpu_declines_indexed_helper_and_falls_back`
had NO GPU guard. Building the polars frames does not need the RAPIDS stack,
so the graph constructed fine and the run died later inside `.gfql()` with
`ImportError: GFQL engine='polars-gpu' requires the RAPIDS cudf_polars
stack`. Listing the file would have turned the lane RED. `_native_frames`
now `importorskip`s `cudf_polars` for that engine.
2. `index/test_index.py` — ALREADY in the lane — built its engine list by
appending `"polars-gpu"` when **`cudf`** imported. polars-gpu is the
`cudf_polars` collect target and raises without it, so any box with cuDF and
no `cudf_polars` (a real configuration) got 20 FABRICATED failures,
indistinguishable from product breakage. CI never saw it because its polars
lane installs neither. The gate now tests `cudf_polars`.
3. No product failures. Green in both configurations that matter:
* cuDF absent (the CI polars lane's own configuration): the FULL lane is
2658 passed / 58 skipped / 0 failed in 160s, plus the appended cypher
lowering pass at 49 passed. The lane's timeout is 10 min and it runs
twice (plain + coverage); the seven files add ~15s per run.
* dgx GB10, `graphistry/test-rapids-official:26.02-gfql-polars`,
`docker run --gpus all`, cuDF 26.02.01 / polars 1.35.2 — every cuDF and
polars-gpu parameter LIVE: 394 passed, 0 failed, 0 skipped.
The 37 failures these files show on a developer box with `cudf` importable but
`libnvrtc.so.12` missing are that environment, not the product: they reproduce
nowhere with a working CUDA runtime. Re-running on real hardware before
reporting them is the whole reason this PR claims "no product failures" rather
than filing seven issues.
Per-file coverage baselines are FLOORS (`min_coverage_percent`), so adding
tests can only move the audit in the passing direction.
RUNTIME DELTA: zero. No production line changed — the diff is the lane's file
list, two test-file guards and the CHANGELOG — so no pyg-bench lane run is
required (CB5), and that claim is checkable from the diff.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015YsqAZQLbqjSDrYSFz2GoB1 parent 233b64c commit bb440f9
4 files changed
Lines changed: 38 additions & 1 deletion
File tree
- bin
- graphistry/tests/compute/gfql/index
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
38 | 60 | | |
39 | 61 | | |
40 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
33 | 39 | | |
34 | 40 | | |
35 | 41 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
75 | 83 | | |
76 | 84 | | |
77 | 85 | | |
| |||
0 commit comments