New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nixos: tests: firefox: make more comprehensive #23924
Conversation
Certainly 👍 for the xterm change to unblock channel for now. It would be nice if we could somehow detect the process dying instead of blocking on The space key is meant to test scrolling, or am I missing something? It seems this small page is likely to fit into the window. |
No. The browser asks whether to make it the default browser with probability around 90%, the default option — we do not care which one — should not crash, and we need to close this window to be able to send events to the real browser window. If by any chance the browser does not ask to make itself the default — then space is probably interpreted as scrolling, no harm done. When we see the situation where both guesses are wrong and something bad happens, we investigate it… |
Oh, I forgot that thing :-) I didn't get what "default browser window" meant (parenthesized the other way). |
@vcunat by the way, the channel is blocked until you merge at least the |
6a62966
to
14a3412
Compare
Added a more detailed comment. The test is a scarily good model of user behaviour in this place! |
I know that, but just patching ICU is a nontrivial rebuild by itself AFAIK. |
Run Firefox inside an XTerm, it doesn't crash mysteriously this way. Also try opening developer tools and checking that Firefox doesn't crash in the process.
Ah you are right, the test is fast to run and there will be a lot of other contenders for build slots. |
Oh, no. trunk-combined eval is repeatedly throwing
and consequently hasn't had a successful evaluation for two days. EDIT: at least plain trunk jobset evaluated now, after a few attempts... |
Oh, ICU update means Freetype rebuild, right. |
No, freetype has the same derivation hash. |
It seems especially big on Darwin. |
... which is because their stdenv depends on it (news for me). |
$machine->waitForWindow(qr/Valgrind/); | ||
$machine->sleep(40); # wait until Firefox has finished loading the page | ||
$machine->execute("xdotool key space"); # do I want to make Firefox the | ||
# default browser? I just want to close the dialog |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just an off-topic question, how do you debug the test driver? I tried to unbrick gdm test, but I have no idea in what state the desktop is.
Just an off-topic question, how do you debug the test driver?
By randomly issuing arbitrary commands, of course!
Well, you set HOME to something you don't care much about and run the
script `nixos-test-driver` and then feed it the contents of
`test-script` line-by-line manually. If the test-script is too long, you
can probably use `expect`.
I don't use the mainline NixOS, and I don't usually touch its tests,
it's just this time that a test was relevant to a problem I also had, so
I am probably missing a much better solution somewhere.
|
OK, no negative feedback and a hope to unblock the channel. I merge. |
|
nixos: tests: firefox: make more comprehensive (cherry picked from commit f9fb38f) The test will block the channel without the xterm change.
`trunk-combined` still can't be evaluated by Hydra, so this won't be enough, I'm afraid.
Well, you are right, of course.
I think this change does nothing for evaluation but increases the
chances of build success after the evaluation is fixed. As I don't use
channels I won't notice the moment when this PR becomes immediately
relevant, so I merge it now.
|
The test is still failing: |
The log... I wondered why logs disappeared from hydra.nixos.org - but I can't determine how to read the log URL you provided. It's not plaintext and I can't detect any common compression. |
And content type is |
That's some other problem:
|
@vcunat breaks in firefox, works in chromium 🤷♂️ |
It also works in firefox on 17.03 (it includes this PR). |
Fails in chromium on Edited to add: |
OK, let my try to bisect this on i3wm (it's lighter). It will take some time, as Hydra evaluations were blocked for several days and the potential interval is long. |
The culprit is 0c262a6; discussion: #23890 (comment) |
Run Firefox inside an XTerm, it doesn't crash mysteriously this way.
Also try opening developer tools and checking that Firefox doesn't
crash in the process.
Motivation for this change
In #23917 there is a Firefox crash that happens all the time but cannot be reproduced manually. The workaround for this crash makes the build that crashes on every keypress pass the test, so I added a check that developer tools can be opened.
Things done
(nix.useSandbox on NixOS,
or option
build-use-sandbox
innix.conf
on non-NixOS)