Skip to content

fix(ci): give project-tests' unittest step a stall dump under its own cap (#2164) - #2184

Merged
JarryShaw merged 1 commit into
mainfrom
fix/2164-project-tests-stall-dump
Oct 25, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
fix/2164-project-tests-stall-dump

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • fix — corrects a defect

Description

Closes #2164.

  • Defect: util/run_unittest_leg.py's default stall dump, 1080s, is sized for unittest-ordering's 20-minute step. The project-tests step "Run tests/project and the root-level modules under plain unittest" is capped at 15 minutes and passed nothing, so a hang there is killed before the dump fires.
  • Fix: that step passes --stall-dump 840. The script's docstring says a step with a shorter cap passes its own; its code is unchanged.
  • Test: TestEveryStepDumpsBeforeItsCap in tests/project/test_run_unittest_leg_stall_dump.py. For every workflow step that runs the script, it resolves the dump the script would use (flag, then env at step/job/workflow level, then default) and asserts it is above 0 and below the step's or job's timeout-minutes. On main it fails with 1080.0 not less than 900.0.
  • Checks: actionlint 1.7.12 is clean on unit-tests.yml. The tests/project files that name the workflow or script pass (807).
  • Overlap: docs(repo): fifth whole-repo pass over the repository files (#1103) #2158 rewords another part of the same docstring. Whichever merges second needs a docstring-only rebase.

@JarryShaw JarryShaw added bug Issues reporting a defect (set by the bug report template; a default, not an assessment) ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: running A cross-review is in flight against the current head - no verdict yet labels Oct 25, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 25, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

Review: GOOD TO GO at 0f231fa26 (Sonnet): the step's 15-minute cap and the 1080s default are as described, the flag beats env and default in the script's argparse, the new test covers both steps that run the script and fails on main with 1080.0 not less than 900.0, and actionlint is clean.

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 25, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

Ready to merge at 0f231fa26. Merging closes #2164.

  • Review: Sonnet GOOD TO GO.
  • CI: Required checks passed SUCCESS, 0 failed. Still open: the board's Sync Status.
  • KTLO: 12 legs, no warnings.
  • Ordering: project leg merged into main: 2289 tests, 0 failures.
  • Overlap: docs(repo): fifth whole-repo pass over the repository files (#1103) #2158 rewords another hunk of the same util/run_unittest_leg.py docstring. Whichever merges second gets a docstring-only rebase.

@github-actions

Copy link
Copy Markdown
Contributor

Coverage: 91.55% (unit tier, Python 3.15, 0f231fa26, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 19599 880 2618 866 92.12%
pcapkit/corekit 2589 75 816 37 96.48%
pcapkit/dumpkit 282 3 102 3 98.44%
pcapkit/foundation 2971 23 1036 25 98.80%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 17418 219 4574 185 98.14%
pcapkit/toolkit 869 36 298 10 95.20%
pcapkit/utilities 504 7 146 5 98.15%
pcapkit/vendor 4432 1988 1018 167 51.87%

Per-file detail: the coverage-html artifact of this run.

… cap (#2164)

Problem: util/run_unittest_leg.py's default stall dump (1080s) is sized for
unittest-ordering's 20-minute step cap. project-tests' step "Run tests/project
and the root-level modules under plain unittest" is capped at 15 minutes, so
a hang there was killed before the dump naming where it stopped could fire.

Fix: that step passes --stall-dump 840, a minute under its cap; the script's
docstring says a step with a shorter cap passes its own.

Test: TestEveryStepDumpsBeforeItsCap reads every workflow step running the
script and checks its effective dump (flag, env, else default) is below its
timeout-minutes. It fails on origin/main with 1080 not less than 900.
@JarryShaw

Copy link
Copy Markdown
Owner Author

Rebased onto main after #2158 merged: 0f231fa26 → badfc34fd.

The patch changed only in a docstring line, but CI must re-run on the new head. A delta check follows.

@JarryShaw
JarryShaw force-pushed the fix/2164-project-tests-stall-dump branch from 0f231fa to badfc34 Compare October 25, 2026 14:24
@JarryShaw JarryShaw added review: running A cross-review is in flight against the current head - no verdict yet and removed review: good-to-go Cross-review at the current head says ready; CI state is separate labels Oct 25, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

Review: GOOD TO GO at badfc34fd (Sonnet delta): after the rebase only the docstring hunk differs, it still matches the 20-minute step cap, and the stall-dump test plus actionlint both pass.

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 25, 2026
@JarryShaw
JarryShaw merged commit b095426 into main Oct 25, 2026
57 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Oct 25, 2026
@JarryShaw
JarryShaw deleted the fix/2164-project-tests-stall-dump branch October 25, 2026 14:44
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 25, 2026
@JarryShaw JarryShaw added this to the PyPCAPKit v1.5 milestone Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Issues reporting a defect (set by the bug report template; a default, not an assessment) ci Pull requests that change CI or workflow configuration (ci: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

fix(ci): project-tests' 15-minute cap kills run_unittest_leg.py before its 1080 s stall dump can fire

1 participant