mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 07:13:23 +01:00
Merge pull request #110198 from primeos/chromium-vm-test
nixos/tests/chromium: Add ungoogled-chromium and Google Chrome
This commit is contained in:
commit
88637a1c33
2 changed files with 45 additions and 6 deletions
|
@ -1,10 +1,14 @@
|
||||||
{ system ? builtins.currentSystem
|
{ system ? builtins.currentSystem
|
||||||
, config ? {}
|
, config ? {}
|
||||||
, pkgs ? import ../.. { inherit system config; }
|
, pkgs ? import ../.. { inherit system config; }
|
||||||
, channelMap ? {
|
, channelMap ? { # Maps "channels" to packages
|
||||||
stable = pkgs.chromium;
|
stable = pkgs.chromium;
|
||||||
beta = pkgs.chromiumBeta;
|
beta = pkgs.chromiumBeta;
|
||||||
dev = pkgs.chromiumDev;
|
dev = pkgs.chromiumDev;
|
||||||
|
ungoogled = pkgs.ungoogled-chromium;
|
||||||
|
chrome-stable = pkgs.google-chrome;
|
||||||
|
chrome-beta = pkgs.google-chrome-beta;
|
||||||
|
chrome-dev = pkgs.google-chrome-dev;
|
||||||
}
|
}
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -14,7 +18,7 @@ with pkgs.lib;
|
||||||
mapAttrs (channel: chromiumPkg: makeTest rec {
|
mapAttrs (channel: chromiumPkg: makeTest rec {
|
||||||
name = "chromium-${channel}";
|
name = "chromium-${channel}";
|
||||||
meta = {
|
meta = {
|
||||||
maintainers = with maintainers; [ aszlig ];
|
maintainers = with maintainers; [ aszlig primeos ];
|
||||||
# https://github.com/NixOS/hydra/issues/591#issuecomment-435125621
|
# https://github.com/NixOS/hydra/issues/591#issuecomment-435125621
|
||||||
inherit (chromiumPkg.meta) timeout;
|
inherit (chromiumPkg.meta) timeout;
|
||||||
};
|
};
|
||||||
|
@ -58,6 +62,19 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
|
||||||
return "su - ${user} -c " + shlex.quote(cmd)
|
return "su - ${user} -c " + shlex.quote(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
def get_browser_binary():
|
||||||
|
"""Returns the name of the browser binary."""
|
||||||
|
pname = "${getName chromiumPkg.name}"
|
||||||
|
if pname.find("chromium") != -1:
|
||||||
|
return "chromium" # Same name for all channels and ungoogled-chromium
|
||||||
|
if pname == "google-chrome":
|
||||||
|
return "google-chrome-stable"
|
||||||
|
if pname == "google-chrome-dev":
|
||||||
|
return "google-chrome-unstable"
|
||||||
|
# For google-chrome-beta and as fallback:
|
||||||
|
return pname
|
||||||
|
|
||||||
|
|
||||||
def create_new_win():
|
def create_new_win():
|
||||||
with machine.nested("Creating a new Chromium window"):
|
with machine.nested("Creating a new Chromium window"):
|
||||||
machine.execute(
|
machine.execute(
|
||||||
|
@ -153,7 +170,14 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
|
||||||
machine.wait_for_x()
|
machine.wait_for_x()
|
||||||
|
|
||||||
url = "file://${startupHTML}"
|
url = "file://${startupHTML}"
|
||||||
machine.succeed(ru(f'ulimit -c unlimited; chromium "{url}" & disown'))
|
machine.succeed(ru(f'ulimit -c unlimited; "{get_browser_binary()}" "{url}" & disown'))
|
||||||
|
|
||||||
|
if get_browser_binary().startswith("google-chrome"):
|
||||||
|
# Need to click away the first window:
|
||||||
|
machine.wait_for_text("Make Google Chrome the default browser")
|
||||||
|
machine.screenshot("google_chrome_default_browser_prompt")
|
||||||
|
machine.send_key("ret")
|
||||||
|
|
||||||
machine.wait_for_text("startup done")
|
machine.wait_for_text("startup done")
|
||||||
machine.wait_until_succeeds(
|
machine.wait_until_succeeds(
|
||||||
ru(
|
ru(
|
||||||
|
|
|
@ -36,6 +36,21 @@ update `upstream-info.json`. After updates it is important to test at least
|
||||||
`nixosTests.chromium` (or basic manual testing) and `google-chrome` (which
|
`nixosTests.chromium` (or basic manual testing) and `google-chrome` (which
|
||||||
reuses `upstream-info.json`).
|
reuses `upstream-info.json`).
|
||||||
|
|
||||||
|
To run all automated NixOS VM tests for Chromium, ungoogled-chromium,
|
||||||
|
and Google Chrome (not recommended, currently 6x tests!):
|
||||||
|
```
|
||||||
|
nix-build nixos/tests/chromium.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
A single test can be selected, e.g. to test `ungoogled-chromium` (see
|
||||||
|
`channelMap` in `nixos/tests/chromium.nix` for all available options):
|
||||||
|
```
|
||||||
|
nix-build nixos/tests/chromium.nix -A ungoogled
|
||||||
|
```
|
||||||
|
(Note: Testing Google Chrome requires `export NIXPKGS_ALLOW_UNFREE=1`.)
|
||||||
|
|
||||||
|
For custom builds it's possible to "override" `channelMap`.
|
||||||
|
|
||||||
## Backports
|
## Backports
|
||||||
|
|
||||||
All updates are considered security critical and should be ported to the stable
|
All updates are considered security critical and should be ported to the stable
|
||||||
|
|
Loading…
Reference in a new issue