Skip to content

馃悰 fix(ci): mark real-shell activation tests as slow - #3243

Merged
gaborbernat merged 1 commit into
mainfrom
graalpy-skip-slow-activation
Sep 17, 2026
Merged

gaborbernat merged 1 commit into
mainfrom
graalpy-skip-slow-activation

Conversation

@gaborbernat

Copy link
Copy Markdown
Contributor

The graalpy CI leg that #3240 just fixed for reliability still takes 32-38 minutes, and half of that time goes to test_bash, test_csh, test_fish, and test_nushell. Measured on the merged run: 16.3 of 32.4 minutes on Ubuntu, 6.5 of 15.9 on macOS, each test spawning a real shell per prompt/tcl/env combination to verify the generated activation script works.

That verification doesn't depend on which interpreter created the virtualenv. The activation scripts are plain Python string templates, and CPython CI legs already run the same shell x prompt x tcl x env matrix in a fraction of the time, since GraalPy's per-process subprocess and JIT overhead is what pushes each of these tests to 18-25 seconds instead of well under one. Re-running that shell-integration matrix under GraalPy costs wall-clock time without adding coverage specific to GraalPy.

test_powershell already carries @pytest.mark.slow for this exact reason; these four never got it, which reads as an oversight rather than a deliberate choice given the existing precedent. Since graalpy is the only tox environment that passes --skip-slow, other interpreters' CI legs keep full activation coverage unchanged.

The graalpy CI leg spends about half its runtime (roughly 16 of 32
minutes on Ubuntu, 6.5 of 16 on macOS) in test_bash, test_csh,
test_fish, and test_nushell, each spawning a real shell per
parametrization to verify activation scripts work.

That verification is interpreter-independent: the scripts are pure
Python string templates, and every CPython CI leg already exercises
the same shell x prompt x tcl x env matrix in a fraction of the time.
GraalPy re-running it adds wall-clock without adding coverage.

test_powershell already carries @pytest.mark.slow for the same
reason; these four just never got it. graalpy is the only env that
passes --skip-slow, so nothing changes for any other interpreter.
@gaborbernat
gaborbernat merged commit 7c1991e into main Sep 17, 2026
62 checks passed
@gaborbernat
gaborbernat deleted the graalpy-skip-slow-activation branch September 17, 2026 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant