FIX: Let the browser test result reach the job on ARM64 Linux - #592
Conversation
A failing dotnet test returns non-zero, and PowerShell carries on, so the Selenium step could fail every case and the job was still reported as a success. On the ARM64 Linux job it did exactly that, with nine failures in the log and a green tick on the run. The exit code is now checked and the step stops. SELENIUM_TESTS_REF picks a branch of the shared browser suite, defaulting to main, so a change there can be tried here before it is merged.
Points the browser suite at the branch carrying the ARM64 fix and trims the matrix to the ARM64 Linux job, so one dispatched run shows whether the browser tests really run there.
This reverts the temporary pin and matrix trim used for run 35198427368, which proved the browser tests really run on the ARM64 Linux job. The matrix is back to the full list and the suite is read from main again.
Real run on the current headRun 35272958512, dispatched on
Two things are proven by that. The branch selection works and defaults to Still a draft, and what clears itThis stays a draft. It goes green once selenium-api-tests#11 has merged to that repository's The conflict with 589 is resolved#589 now has this branch merged into it, at |
What was wrong
On the
Ubuntu_ARM_Java_17job the shared browser suite failed every test andthe job was still reported as a success. Run
35190312090,
job
Build and Test - 0 - Ubuntu_ARM_Java_17, says:and the run above it has a green tick. Two separate faults sat behind that.
The first is in the shared suite, where the helper Selenium ships to fetch a
driver had no ARM64 Linux build, so no browser was ever launched. That is fixed
in selenium-api-tests#11.
The second is here.
dotnet testreturns non-zero when tests fail, andPowerShell carries straight on past a native command that returns non-zero
unless it is told not to. So the nine failures never reached the job result, and
nobody saw them for as long as nobody opened the log.
What changed
ci/run-integration-tests.ps1, two things.dotnet testis checked, and the step stops with a messagewhen it is not zero. Failing in a
trymeans the existingcatchstillprints the example application's output first, which is what a reader needs.
SELENIUM_TESTS_REFpicks a branch of the shared suite, defaulting tomain,so a change there can be tried here before it is merged. The branch it clones
is printed, so a run says which suite it tested.
How this was checked
Run 35198427368,
dispatched on this branch with
dryrun=true, with the suite temporarily pinnedto the branch carrying its fix and the matrix temporarily trimmed to the ARM64
Linux job. Both of those were reverted in the commit after, so this branch
carries only the two changes above. That run says:
Nine tests that used to die in about 155 milliseconds without starting a browser
now run a real browser for forty seconds and pass, on the same ARM64 Linux
image.
Still outstanding
$status = $LASTEXITCODEon line 75 captures the result of the Maven examplerun and is never read again, so a Maven failure is swallowed in the same way the
browser failures were. It is left alone here because fixing it could turn jobs
red for reasons that have nothing to do with the browser tests, and it deserves
its own change and its own look at what those reasons are.
This pull request should only be merged after
selenium-api-tests#11,
because until the suite is fixed on
mainthis change would turn the ARM64Linux job red rather than green. That is the right way round, and it is the
point of the change, but it should land in the right order.
State on 17 September 2026, and why this is still a draft
Two things stand between this branch and a green run.
First, the evidence above is not on the head. Run
35198427368
ran on
cf39ce8, the temporary proof commit that pinned the suite to its fixbranch and trimmed the matrix to the single ARM64 Linux job, so it reports four
jobs rather than twenty. The next commit,
4c54153, reverts that, and the head4c54153has had no full run.Second, a full run on the head would be red, and that is the change working as
intended. The shared suite's fix is in
selenium-api-tests#11,
which is still an open draft, so
mainof the suite still ships a helper with noARM64 Linux build. Today's run on another branch of this repository,
35190312090,
job
Build and Test - 0 - Ubuntu_ARM_Java_17, shows what happens on the currentsuite:
and that run is still reported as a success, which is exactly the fault this
change fixes. Once the exit code is checked, those nine failures turn the job
red until the suite is fixed on its
main.So this stays a draft until selenium-api-tests#11 has merged, at which point a
dispatched run on
4c54153is the thing to read. Only someone who can merge thatsuite pull request can clear this.
One more thing for whoever merges these. This pull request and
#589 both rewrite
parts of
ci/run-integration-tests.ps1and they conflict with each other, in theSelenium block. Whichever merges second needs
mainmerged into it by hand andthe block resolved, rather than a straight merge.