Fix flaky NPCM7xx timer test and enable PR CI#17
Conversation
clock_step_next() advances to the next timer in the whole machine. An unrelated timer can therefore stop the clock before the NPCM7xx timer expires, leaving TISR clear and the IRQ deasserted. Advance the virtual clock by the configured NPCM7xx timer period in both periodic tests so each iteration reaches the expiration being checked. Signed-off-by: Chao Liu <chao.liu@processmission.com>
131ea9f to
310079d
Compare
The workflow currently only listens for push events. Pull requests from forks therefore are not tested in processmission/qemu before merge. Run CI for pull requests targeting devel and keep push coverage on devel. Compute checkpatch ranges directly from the event metadata so the job cannot silently skip. Pass --no-strict explicitly so warnings remain informational while errors still fail the job. Signed-off-by: Chao Liu <chao.liu@processmission.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f0f2a2c937
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Restricting push events to devel prevents p-b-o/qemu-ci from running build and checkpatch jobs for mailing-list series branches. Restore the original all-branch push coverage while keeping pull request runs limited to changes targeting devel. Signed-off-by: Chao Liu <chao.liu@processmission.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e01ecceedc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
GitHub reports forty zeroes as the before SHA when a push creates a branch. Passing that sentinel to git merge-base makes checkpatch fail before it can inspect the series. Fetch the repository default branch and use its merge base with the new branch tip for that event. Keep the existing before-to-after range for ordinary pushes. Signed-off-by: Chao Liu <chao.liu@processmission.com>
Several build jobs enable documentation implicitly when the container provides Sphinx. These duplicate builds add no compiler or target coverage and have repeatedly failed when Sphinx parallel workers exit with EOFError. Disable documentation through one shared option for every ordinary build. Keep documentation enabled in build-misc, run its Sphinx target first, and force Python to report one CPU so its -j auto mode stays serial. Signed-off-by: Chao Liu <chao.liu@processmission.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f941a61294
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The VNC listen-change test allocates all three ports before launching QEMU. Ports.find_free_ports() only probes and releases each port, so the unused ports can be claimed while the initial VNC listener starts. Allocate only the initial listener port up front. Select the replacement ports after QEMU is running and use them immediately for display-update, which keeps the unreserved-port window short. Signed-off-by: Chao Liu <chao.liu@processmission.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7eb2a6c062
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| fi | ||
|
|
||
| git fetch --no-tags origin "$DEFAULT_BRANCH" | ||
| base="$(git merge-base "origin/$DEFAULT_BRANCH" "$CURRENT_SHA")" |
There was a problem hiding this comment.
Skip checkpatch for an empty new-branch range
When a branch is first pushed at exactly the default branch tip, PUSH_BEFORE_SHA is zero and this merge base equals CURRENT_SHA, producing a range such as abc..abc. scripts/checkpatch.pl rejects that empty revision list with “no revisions returned” and exits 255, so merely creating a branch causes the checkpatch job to fail despite there being no patch to inspect. The fresh sentinel-handling path therefore needs to detect and skip an empty range.
Useful? React with 👍 / 👎.
Summary
develand pushes todevelRoot cause
clock_step_next()advances to the earliest pending timer in the whole machine. An unrelated timer can therefore stop virtual time before the NPCM7xx timer under test expires, leaving TISR clear and the IRQ deasserted.The Actions workflow also listened only for
push, so fork pull requests were not tested inprocessmission/qemubefore merge. Its checkpatch job could write an empty range and silently skip when no same-repository PR was found.CI behavior
Pull requests targeting
develnow use the PR base and head metadata to compute an exact checkpatch range. Pushes todeveluse the before/current SHA range. Missing metadata fails the range step instead of skipping checkpatch.Checkpatch runs with explicit
--no-strict: warning-only results return success, while errors remain fatal.Testing
qemu-system-armandtests/qtest/npcm7xx_timer-testqemu:qtest-arm/npcm7xx_timer-test: 180 subtests passedscripts/checkpatch.pl --no-strict origin/devel..HEAD: cleanactionlint -shellcheck=: cleangit diff --check: clean