• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

google / openhtf / 39710696219
65%
master: 65%

Build:
Build:
LAST BUILD BRANCH: test_1014171171
DEFAULT BRANCH: master
Ran 22 Oct 2026 02:20AM UTC
Jobs 4
Files 66
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Oct 2026 02:18AM UTC coverage: 65.125% (+0.5%) from 64.625%
39710696219

Pull #1344

github

copybara-github
Support PhaseSequence, PhaseGroup, and nested PhaseGraph as PhaseGraph nodes.

Lets a PhaseGraph express independent lanes, e.g. two PhaseSequences that run concurrently after a fork, or a PhaseGroup lane whose teardown is guaranteed even when a sibling lane fails.

- Widen PhaseGraph nodes from PhaseDescriptor to any PhaseNode. Collection nodes must be named (UnnamedNodeError) because prerequisites are keyed by node name.
- Dispatch graph nodes through _execute_node() so sequences, groups, and nested graphs run with their usual semantics on the worker thread.
- Scope cancellation to the graph: when a node is terminal (outside teardown) the graph's cancellation event is set, unstarted nodes are cancelled, and running phases are killed, but the stop state is reset immediately so PhaseGroup nodes still unwinding on worker threads run their teardown phases. _execute_abortable_sequence() and _execute_phase() consult the per-thread cancellation scopes (alongside the test abort flag) so cancelled lanes do not start further non-teardown phases.
- Replace the teardown RLock with a counter-based _TeardownGuard so teardown sequences may run concurrently on worker threads (an RLock held by the scheduling thread would deadlock a PhaseGroup node's teardown inside a teardown graph); aborts still never cancel in-progress teardown phases.
- Add unit tests for collection nodes in the data model (naming, copies, nesting, transforms, filter_by_type) and in the executor (fork/join with sequence and group lanes, nested graphs, group teardown surviving sibling failure and abort, a sequence lane stopping after sibling failure, and a group node inside a teardown graph).

PiperOrigin-RevId: 999072646
Pull Request #1344: Support PhaseSequence, PhaseGroup, and nested PhaseGraph as PhaseGraph nodes.

148 of 158 new or added lines in 2 files covered. (93.67%)

40 existing lines in 3 files now uncovered.

5195 of 7977 relevant lines covered (65.12%)

2.6 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
94.87
-1.38% openhtf/core/test_executor.py

Coverage Regressions

Lines Coverage ∆ File
21
94.87
-1.38% openhtf/core/test_executor.py
16
88.84
0.0% openhtf/util/test.py
3
96.38
0.0% openhtf/core/phase_executor.py
Jobs
ID Job ID Ran Files Coverage
1 python-3.14 - 39710696219.1 22 Oct 2026 02:20AM UTC 66
65.07
GitHub Action Run
2 python-3.13 - 39710696219.2 22 Oct 2026 02:20AM UTC 66
65.07
GitHub Action Run
3 python-3.11 - 39710696219.3 22 Oct 2026 02:20AM UTC 66
65.12
GitHub Action Run
4 python-3.12 - 39710696219.4 22 Oct 2026 02:20AM UTC 66
65.07
GitHub Action Run
Source Files on build 39710696219
  • Tree
  • List 66
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39710696219
  • Pull Request #1344
  • PR Base - master (#39699461638)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc