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

google / openhtf / 38512417139
65%
master: 65%

Build:
Build:
LAST BUILD BRANCH: test_1014171171
DEFAULT BRANCH: master
Ran 14 Oct 2026 04:39AM UTC
Jobs 2
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

14 Oct 2026 04:38AM UTC coverage: 65.024% (+1.4%) from 63.674%
38512417139

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 edges 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).

FUTURE_COPYBARA_INTEGRATE_REVIEW=https://github.com/google/openhtf/pull/1340 from google:glados-verma-contrib 45bf71e16
PiperOrigin-RevId: 999072646
Pull Request #1344: Support PhaseSequence, PhaseGroup, and nested PhaseGraph as PhaseGraph nodes.

374 of 402 new or added lines in 8 files covered. (93.03%)

6 existing lines in 3 files now uncovered.

5187 of 7977 relevant lines covered (65.02%)

1.3 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
93.56
-2.69% openhtf/core/test_executor.py
7
92.89
0.94% openhtf/core/test_state.py
3
71.03
-0.11% openhtf/util/threads.py
1
97.74
1.57% openhtf/core/phase_executor.py
1
99.26
openhtf/core/phase_graph.py

Coverage Regressions

Lines Coverage ∆ File
4
92.89
0.94% openhtf/core/test_state.py
1
88.73
0.0% openhtf/util/test.py
1
71.03
-0.11% openhtf/util/threads.py
Jobs
ID Job ID Ran Files Coverage
1 python-3.14 - 38512417139.1 14 Oct 2026 04:39AM UTC 66
65.0
GitHub Action Run
2 python-3.12 - 38512417139.2 14 Oct 2026 04:39AM UTC 66
64.99
GitHub Action Run
Source Files on build 38512417139
  • Tree
  • List 66
  • Changed 9
  • Source Changed 8
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38512417139
  • Pull Request #1344
  • PR Base - master (#38477591183)
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