Repository navigation
Rebase on google/openhtf and serve several executing tests per station - #5
Merged
Merged
Conversation
Coverage Report for CI Build 37591697030Warning No base build found for commit Coverage: 66.318%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats
💛 - Coveralls |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spike for the battery station (P2-functional-tests google#214 discussion): one OpenHTF test per fixture slot, four executing at once in one process, each with its own DUT id and record, all on one GUI.
Rebase
The branch starts at google/openhtf
master(07cfec4, 2026-10-05) and replays the fork's two source changes on top: the phase measurements getter (Show measurements on running and failing tests) and the prompt image sizing (three commits squashed into one). Everything else ourmaster,dev,js/rebaseandjp-pino/upgradebranches carry is built bundles of those two changes, or thedata.pywarning fix that upstream has since made itself (9bfeea8). P2-functional-tests installsjs/rebase, which is the same two changes on upstream from 2025-10-21; upstream has 70 commits since, among them the Angular 22 GUI, tornado 6.5.8 and a teardown deadlock fix.Several executing tests
OpenHTF lets several
Testobjects execute at once (one thread each), but the station server, the GUI and the record log handler only expected one. Five commits change that:_get_executing_tests()returns every executing test; the watcher starts aTestWatcherper test; the pub/sub keeps the last message per test and sends all of them to a new subscriber; a final record is matched to its execution by identity; the phases, plugs and attachments endpoints look the test up by UID;publish()survives a closed subscriber.examples/parallel_tests.pyruns four slots;test/output/servers/station_server_test.pycovers the lookups, record matching, watchers and log separation.openhtf.*log except other tests' record loggers, so "Executing test", "outcome: PASS" and "Tearing down all plugs" went into all records. A thread is now marked as working for a test (threads.set_test_uid):Test.execute()marks the calling thread, the executor its own, andKillableThreadinherits the mark from its creator. Threads outside any test (the server, user threads) behave as before.Verified in the browser with the example: four panels, a serial entered in one panel starts only that test, its prompt and completion logs show in its own panel, it completes to the history with its own DUT id and the slot restarts. The fork's suite: 576 passed;
multicast_testfails on macOS for an IPv6 reason unrelated to this change.On
masterThis PR targets
masterfor review. Ourmastersits on upstream from 2020, so GitHub reports conflicts in the olddist/layout; the cleaner end state is to make this branch the newmaster(force push, or a new default branch) once reviewed.🤖 Generated with Claude Code