nixosTests: fix eval

+15 -5
nixos/tests/all-tests.nix
···
pyload = runTest ./pyload.nix;
oci-containers = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./oci-containers.nix { };
odoo = runTest ./odoo.nix;
-
odoo17 = handleTest ./odoo.nix { package = pkgs.odoo17; };
-
odoo16 = handleTest ./odoo.nix { package = pkgs.odoo16; };
oncall = runTest ./web-apps/oncall.nix;
# 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but
···
systemd-initrd-btrfs-raid = runTest ./systemd-initrd-btrfs-raid.nix;
systemd-initrd-luks-fido2 = runTest ./systemd-initrd-luks-fido2.nix;
systemd-initrd-luks-keyfile = runTest ./systemd-initrd-luks-keyfile.nix;
-
systemd-initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix {
-
systemdStage1 = true;
};
systemd-initrd-luks-password = runTest ./systemd-initrd-luks-password.nix;
systemd-initrd-luks-tpm2 = runTest ./systemd-initrd-luks-tpm2.nix;
···
"x86_64-linux"
"i686-linux"
] ./initrd-network-openvpn { systemdStage1 = true; };
-
systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
systemd-initrd-simple = runTest ./systemd-initrd-simple.nix;
systemd-initrd-swraid = runTest ./systemd-initrd-swraid.nix;
systemd-initrd-vconsole = runTest ./systemd-initrd-vconsole.nix;
···
pyload = runTest ./pyload.nix;
oci-containers = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./oci-containers.nix { };
odoo = runTest ./odoo.nix;
+
odoo17 = runTest {
+
imports = [ ./odoo.nix ];
+
_module.args.package = pkgs.odoo17;
+
};
+
odoo16 = runTest {
+
imports = [ ./odoo.nix ];
+
_module.args.package = pkgs.odoo16;
+
};
oncall = runTest ./web-apps/oncall.nix;
# 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but
···
systemd-initrd-btrfs-raid = runTest ./systemd-initrd-btrfs-raid.nix;
systemd-initrd-luks-fido2 = runTest ./systemd-initrd-luks-fido2.nix;
systemd-initrd-luks-keyfile = runTest ./systemd-initrd-luks-keyfile.nix;
+
systemd-initrd-luks-empty-passphrase = runTest {
+
imports = [ ./initrd-luks-empty-passphrase.nix ];
+
_module.args.systemdStage1 = true;
};
systemd-initrd-luks-password = runTest ./systemd-initrd-luks-password.nix;
systemd-initrd-luks-tpm2 = runTest ./systemd-initrd-luks-tpm2.nix;
···
"x86_64-linux"
"i686-linux"
] ./initrd-network-openvpn { systemdStage1 = true; };
+
systemd-initrd-shutdown = runTest {
+
imports = [ ./systemd-shutdown.nix ];
+
_module.args.systemdStage1 = true;
+
};
systemd-initrd-simple = runTest ./systemd-initrd-simple.nix;
systemd-initrd-swraid = runTest ./systemd-initrd-swraid.nix;
systemd-initrd-vconsole = runTest ./systemd-initrd-vconsole.nix;
+2
nixos/tests/breitbandmessung.nix
···
name = "breitbandmessung";
meta.maintainers = with lib.maintainers; [ b4dm4n ];
nodes.machine =
{ pkgs, ... }:
{
···
name = "breitbandmessung";
meta.maintainers = with lib.maintainers; [ b4dm4n ];
+
node.pkgsReadOnly = false;
+
nodes.machine =
{ pkgs, ... }:
{
+18 -22
nixos/tests/brscan5.nix
···
# integration tests for brscan5 sane driver
-
#
-
-
{ pkgs, ... }:
{
name = "brscan5";
-
meta = with pkgs.lib.maintainers; {
-
maintainers = [ mattchrist ];
-
};
-
nodes.machine =
-
{ pkgs, ... }:
-
{
-
nixpkgs.config.allowUnfree = true;
-
hardware.sane = {
enable = true;
-
brscan5 = {
-
enable = true;
-
netDevices = {
-
"a" = {
-
model = "ADS-1200";
-
nodename = "BRW0080927AFBCE";
-
};
-
"b" = {
-
model = "ADS-1200";
-
ip = "192.168.1.2";
-
};
};
};
};
};
testScript = ''
import re
···
# integration tests for brscan5 sane driver
+
{ lib, ... }:
{
name = "brscan5";
+
meta.maintainers = with lib.maintainers; [ mattchrist ];
+
node.pkgsReadOnly = false;
+
+
nodes.machine = {
+
nixpkgs.config.allowUnfree = true;
+
hardware.sane = {
+
enable = true;
+
brscan5 = {
enable = true;
+
netDevices = {
+
"a" = {
+
model = "ADS-1200";
+
nodename = "BRW0080927AFBCE";
+
};
+
"b" = {
+
model = "ADS-1200";
+
ip = "192.168.1.2";
};
};
};
};
+
};
testScript = ''
import re
+3 -1
nixos/tests/consul.nix
···
-
{ pkgs, lib, ... }:
let
# Settings for both servers and agents
···
in
{
name = "consul";
nodes = {
server1 = server 0;
···
+
{ lib, ... }:
let
# Settings for both servers and agents
···
in
{
name = "consul";
+
+
node.pkgsReadOnly = false;
nodes = {
server1 = server 0;
+13 -18
nixos/tests/deconz.nix
···
-
{ pkgs, lib, ... }:
let
httpPort = 800;
in
···
bjornfor
];
-
nodes.machine =
-
{
-
config,
-
pkgs,
-
lib,
-
...
-
}:
-
{
-
nixpkgs.config.allowUnfree = true;
-
services.deconz = {
-
enable = true;
-
inherit httpPort;
-
extraArgs = [
-
"--dbg-err=2"
-
"--dbg-info=2"
-
];
-
};
};
testScript = ''
machine.wait_for_unit("deconz.service")
···
+
{ lib, ... }:
let
httpPort = 800;
in
···
bjornfor
];
+
node.pkgsReadOnly = false;
+
+
nodes.machine = {
+
nixpkgs.config.allowUnfree = true;
+
services.deconz = {
+
enable = true;
+
inherit httpPort;
+
extraArgs = [
+
"--dbg-err=2"
+
"--dbg-info=2"
+
];
};
+
};
testScript = ''
machine.wait_for_unit("deconz.service")
+5 -5
nixos/tests/discourse.nix
···
# 3. replying to that message via email.
{
pkgs,
lib,
-
package ? pkgs.discourse,
...
}:
let
···
in
{
name = "discourse";
-
meta = with pkgs.lib.maintainers; {
-
maintainers = [ talyz ];
-
};
nodes.discourse =
{ nodes, ... }:
···
services.discourse = {
enable = true;
-
inherit admin package;
hostname = discourseDomain;
sslCertificate = "${certs.${discourseDomain}.cert}";
sslCertificateKey = "${certs.${discourseDomain}.key}";
···
# 3. replying to that message via email.
{
+
package,
pkgs,
lib,
...
}:
let
···
in
{
name = "discourse";
+
meta.maintainers = with lib.maintainers; [ talyz ];
+
+
_module.args.package = lib.mkDefault pkgs.discourse;
nodes.discourse =
{ nodes, ... }:
···
services.discourse = {
enable = true;
+
inherit admin;
hostname = discourseDomain;
sslCertificate = "${certs.${discourseDomain}.cert}";
sslCertificateKey = "${certs.${discourseDomain}.key}";
+8 -21
nixos/tests/fanout.nix
···
-
{
-
system ? builtins.currentSystem,
-
config ? { },
-
pkgs ? import ../.. { inherit system config; },
-
}:
-
{ lib, pkgs, ... }:
{
name = "fanout";
-
meta.maintainers = [ lib.maintainers.therishidesai ];
-
nodes =
-
let
-
cfg =
-
{ ... }:
-
{
-
services.fanout = {
-
enable = true;
-
fanoutDevices = 2;
-
bufferSize = 8192;
-
};
-
};
-
in
-
{
-
machine = cfg;
};
testScript = ''
start_all()
···
+
{ lib, ... }:
{
name = "fanout";
+
meta.maintainers = with lib.maintainers; [ therishidesai ];
+
nodes.machine = {
+
services.fanout = {
+
enable = true;
+
fanoutDevices = 2;
+
bufferSize = 8192;
};
+
};
testScript = ''
start_all()
+10 -10
nixos/tests/gnome-extensions.nix
···
name = "gnome-extensions";
meta.maintainers = [ ];
nodes.machine =
{ pkgs, ... }:
{
···
# Configure GDM
services.xserver.enable = true;
-
services.xserver.displayManager = {
-
gdm = {
-
enable = true;
-
debug = true;
-
wayland = true;
-
};
-
autoLogin = {
-
enable = true;
-
user = "alice";
-
};
};
# Configure Gnome
···
name = "gnome-extensions";
meta.maintainers = [ ];
+
node.pkgsReadOnly = false;
+
nodes.machine =
{ pkgs, ... }:
{
···
# Configure GDM
services.xserver.enable = true;
+
services.xserver.displayManager.gdm = {
+
enable = true;
+
debug = true;
+
wayland = true;
+
};
+
services.displayManager.autoLogin = {
+
enable = true;
+
user = "alice";
};
# Configure Gnome
+6 -7
nixos/tests/initrd-luks-empty-passphrase.nix
···
{
-
system ? builtins.currentSystem,
-
config ? { },
-
pkgs ? import ../.. { inherit system config; },
-
systemdStage1 ? false,
}:
-
{ lib, pkgs, ... }:
let
-
keyfile = pkgs.writeText "luks-keyfile" ''
MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2
gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6
FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC
'';
-
in
{
name = "initrd-luks-empty-passphrase";
nodes.machine =
{ pkgs, ... }:
···
{
+
systemdStage1,
+
lib,
+
pkgs,
+
...
}:
let
keyfile = pkgs.writeText "luks-keyfile" ''
MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2
gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6
FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC
'';
in
{
name = "initrd-luks-empty-passphrase";
+
+
_module.args.systemdStage1 = lib.mkDefault false;
nodes.machine =
{ pkgs, ... }:
+4 -4
nixos/tests/minecraft-server.nix
···
rcon-pass = "foobar";
rcon-port = 43000;
in
-
{ pkgs, ... }:
{
name = "minecraft-server";
-
meta = with pkgs.lib.maintainers; {
-
maintainers = [ nequissimus ];
-
};
nodes.server =
{ ... }:
···
rcon-pass = "foobar";
rcon-port = 43000;
in
+
{ lib, pkgs, ... }:
{
name = "minecraft-server";
+
meta.maintainers = with lib.maintainers; [ nequissimus ];
+
+
node.pkgsReadOnly = false;
nodes.server =
{ ... }:
+21 -25
nixos/tests/odoo.nix
···
{
-
pkgs,
lib,
-
package ? pkgs.odoo,
...
}:
{
name = "odoo";
meta.maintainers = with lib.maintainers; [ mkg20001 ];
-
nodes = {
-
server =
-
{ ... }:
-
{
-
services.nginx = {
-
enable = true;
-
recommendedProxySettings = true;
-
};
-
services.odoo = {
-
enable = true;
-
package = package;
-
autoInit = true;
-
autoInitExtraFlags = [ "--without-demo=all" ];
-
domain = "localhost";
-
};
-
};
};
-
testScript =
-
{ nodes, ... }:
-
''
-
server.wait_for_unit("odoo.service")
-
server.wait_until_succeeds("curl -s http://localhost:8069/web/database/selector | grep '<title>Odoo</title>'")
-
server.succeed("curl -s http://localhost/web/database/selector | grep '<title>Odoo</title>'")
-
'';
}
···
{
+
package,
lib,
+
pkgs,
...
}:
{
name = "odoo";
meta.maintainers = with lib.maintainers; [ mkg20001 ];
+
_module.args.package = lib.mkDefault pkgs.odoo;
+
nodes.server = {
+
services.nginx = {
+
enable = true;
+
recommendedProxySettings = true;
+
};
+
+
services.odoo = {
+
enable = true;
+
package = package;
+
autoInit = true;
+
autoInitExtraFlags = [ "--without-demo=all" ];
+
domain = "localhost";
+
};
};
+
testScript = ''
+
server.wait_for_unit("odoo.service")
+
server.wait_until_succeeds("curl -s http://localhost:8069/web/database/selector | grep '<title>Odoo</title>'")
+
server.succeed("curl -s http://localhost/web/database/selector | grep '<title>Odoo</title>'")
+
'';
}
+4 -1
nixos/tests/openldap.nix
···
name = "openldap";
nodes.machine =
-
{ pkgs, ... }:
{
environment.etc."openldap/root_password".text = "notapassword";
···
configuration =
{ ... }:
{
users.ldap = ldapClientConfig;
services.openldap = {
enable = true;
···
};
};
};
testScript =
{ nodes, ... }:
let
···
name = "openldap";
nodes.machine =
+
{ config, pkgs, ... }:
{
environment.etc."openldap/root_password".text = "notapassword";
···
configuration =
{ ... }:
{
+
nixpkgs.hostPlatform = config.nixpkgs.hostPlatform;
+
users.ldap = ldapClientConfig;
services.openldap = {
enable = true;
···
};
};
};
+
testScript =
{ nodes, ... }:
let
+20 -20
nixos/tests/outline.nix
···
meta.maintainers = lib.teams.cyberus.members;
-
nodes = {
-
outline =
-
{ pkgs, config, ... }:
-
{
-
nixpkgs.config.allowUnfree = true;
-
environment.systemPackages = [ pkgs.minio-client ];
-
services.outline = {
-
enable = true;
-
forceHttps = false;
-
storage = {
-
inherit accessKey secretKeyFile;
-
uploadBucketUrl = "http://localhost:9000";
-
uploadBucketName = "outline";
-
region = config.services.minio.region;
-
};
-
};
-
services.minio = {
-
enable = true;
-
inherit rootCredentialsFile;
};
};
-
};
testScript = ''
machine.wait_for_unit("minio.service")
···
meta.maintainers = lib.teams.cyberus.members;
+
node.pkgsReadOnly = false;
+
+
nodes.outline =
+
{ pkgs, config, ... }:
+
{
+
nixpkgs.config.allowUnfree = true;
+
environment.systemPackages = [ pkgs.minio-client ];
+
services.outline = {
+
enable = true;
+
forceHttps = false;
+
storage = {
+
inherit accessKey secretKeyFile;
+
uploadBucketUrl = "http://localhost:9000";
+
uploadBucketName = "outline";
+
region = config.services.minio.region;
};
};
+
services.minio = {
+
enable = true;
+
inherit rootCredentialsFile;
+
};
+
};
testScript = ''
machine.wait_for_unit("minio.service")
+5 -12
nixos/tests/quake3.nix
···
-
{ pkgs, lib, ... }:
-
let
-
# Build Quake with coverage instrumentation.
overrides = pkgs: {
quake3game = pkgs.quake3game.override (args: {
···
client =
{ pkgs, ... }:
-
{
imports = [ ./common/x11.nix ];
hardware.graphics.enable = true;
···
nixpkgs.config.packageOverrides = overrides;
nixpkgs.config.allowUnfreePredicate = unfreePredicate;
};
-
in
-
rec {
-
name = "quake3";
-
meta = with lib.maintainers; {
-
maintainers = [ domenkozar ];
-
};
# TODO: lcov doesn't work atm
#makeCoverageReport = true;
···
nodes = {
server =
{ pkgs, ... }:
-
{
systemd.services.quake3-server = {
wantedBy = [ "multi-user.target" ];
···
client2.shutdown()
server.stop_job("quake3-server")
'';
-
}
···
+
{ lib, ... }:
let
# Build Quake with coverage instrumentation.
overrides = pkgs: {
quake3game = pkgs.quake3game.override (args: {
···
client =
{ pkgs, ... }:
{
imports = [ ./common/x11.nix ];
hardware.graphics.enable = true;
···
nixpkgs.config.packageOverrides = overrides;
nixpkgs.config.allowUnfreePredicate = unfreePredicate;
};
in
+
{
+
name = "quake3";
+
meta.maintainers = with lib.maintainers; [ domenkozar ];
+
node.pkgsReadOnly = false;
# TODO: lcov doesn't work atm
#makeCoverageReport = true;
···
nodes = {
server =
{ pkgs, ... }:
{
systemd.services.quake3-server = {
wantedBy = [ "multi-user.target" ];
···
client2.shutdown()
server.stop_job("quake3-server")
'';
}
+5 -5
nixos/tests/sabnzbd.nix
···
-
{ pkgs, lib, ... }:
{
name = "sabnzbd";
-
meta = with pkgs.lib; {
-
maintainers = with maintainers; [ jojosch ];
-
};
nodes.machine =
-
{ pkgs, ... }:
{
services.sabnzbd = {
enable = true;
···
+
{ lib, ... }:
{
name = "sabnzbd";
+
meta.maintainers = with lib.maintainers; [ jojosch ];
+
+
node.pkgsReadOnly = false;
nodes.machine =
+
{ lib, ... }:
{
services.sabnzbd = {
enable = true;
+3 -3
nixos/tests/squid.nix
···
in
{
name = "squid";
-
meta = with pkgs.lib.maintainers; {
-
maintainers = [ cobalt ];
-
};
nodes = {
client =
···
in
{
name = "squid";
+
meta.maintainers = with lib.maintainers; [ cobalt ];
+
+
node.pkgsReadOnly = false;
nodes = {
client =
+5 -5
nixos/tests/systemd-analyze.nix
···
{
-
pkgs,
-
latestKernel ? false,
...
}:
{
name = "systemd-analyze";
-
meta = with pkgs.lib.maintainers; {
-
maintainers = [ raskin ];
-
};
nodes.machine =
{ pkgs, lib, ... }:
···
{
+
latestKernel,
+
lib,
...
}:
{
name = "systemd-analyze";
+
meta.maintainers = with lib.maintainers; [ raskin ];
+
+
_module.args.latestKernel = lib.mkDefault false;
nodes.machine =
{ pkgs, lib, ... }:
+5 -4
nixos/tests/systemd-shutdown.nix
···
{
pkgs,
-
systemdStage1 ? false,
...
}:
let
···
in
{
name = "systemd-shutdown";
-
meta = with pkgs.lib.maintainers; {
-
maintainers = [ das_j ];
-
};
nodes.machine = {
imports = [ ../modules/profiles/minimal.nix ];
···
{
+
systemdStage1,
+
lib,
pkgs,
...
}:
let
···
in
{
name = "systemd-shutdown";
+
meta.maintainers = with lib.maintainers; [ das_j ];
+
+
_module.args.systemdStage1 = lib.mkDefault false;
nodes.machine = {
imports = [ ../modules/profiles/minimal.nix ];
+14 -11
nixos/tests/web-apps/netbox-upgrade.nix
···
(lib.take 2)
(lib.concatStringsSep ".")
];
-
oldApiVersion = apiVersion pkgs."${oldNetbox}".version;
-
newApiVersion = apiVersion pkgs."${newNetbox}".version;
in
{
name = "netbox-upgrade";
-
meta = with lib.maintainers; {
-
maintainers = [
-
minijackson
-
raitobezarius
-
];
-
};
nodes.machine =
{ config, pkgs, ... }:
{
virtualisation.memorySize = 2048;
···
enable = true;
# Pick the NetBox package from this config's "pkgs" argument,
# so that `nixpkgs.config.permittedInsecurePackages` works
-
package = pkgs."${oldNetbox}";
secretKeyFile = pkgs.writeText "secret" ''
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
'';
···
networking.firewall.allowedTCPPorts = [ 80 ];
-
nixpkgs.config.permittedInsecurePackages = [ pkgs."${oldNetbox}".name ];
-
specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs."${newNetbox}";
};
testScript =
···
(lib.take 2)
(lib.concatStringsSep ".")
];
+
oldApiVersion = apiVersion pkgs.${oldNetbox}.version;
+
newApiVersion = apiVersion pkgs.${newNetbox}.version;
in
{
name = "netbox-upgrade";
+
meta.maintainers = with lib.maintainers; [
+
minijackson
+
raitobezarius
+
];
+
+
node.pkgsReadOnly = false;
nodes.machine =
+
let
+
pkgs' = pkgs;
+
in
{ config, pkgs, ... }:
{
virtualisation.memorySize = 2048;
···
enable = true;
# Pick the NetBox package from this config's "pkgs" argument,
# so that `nixpkgs.config.permittedInsecurePackages` works
+
package = pkgs.${oldNetbox};
secretKeyFile = pkgs.writeText "secret" ''
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
'';
···
networking.firewall.allowedTCPPorts = [ 80 ];
+
nixpkgs.config.permittedInsecurePackages = [ pkgs'.${oldNetbox}.name ];
+
specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs.${newNetbox};
};
testScript =
+21 -23
nixos/tests/without-nix.nix
···
{ lib, ... }:
{
name = "without-nix";
-
meta = with lib.maintainers; {
-
maintainers = [ ericson2314 ];
-
};
-
nodes.machine =
-
{ ... }:
-
{
-
nix.enable = false;
-
nixpkgs.overlays = [
-
(self: super: {
-
nix = throw "don't want to use pkgs.nix";
-
nixVersions = lib.mapAttrs (k: throw "don't want to use pkgs.nixVersions.${k}") super.nixVersions;
-
# aliases, some deprecated
-
nix_2_3 = throw "don't want to use pkgs.nix_2_3";
-
nix_2_4 = throw "don't want to use pkgs.nix_2_4";
-
nix_2_5 = throw "don't want to use pkgs.nix_2_5";
-
nix_2_6 = throw "don't want to use pkgs.nix_2_6";
-
nixFlakes = throw "don't want to use pkgs.nixFlakes";
-
nixStable = throw "don't want to use pkgs.nixStable";
-
nixUnstable = throw "don't want to use pkgs.nixUnstable";
-
nixStatic = throw "don't want to use pkgs.nixStatic";
-
})
-
];
-
};
testScript = ''
start_all()
···
{ lib, ... }:
{
name = "without-nix";
+
meta.maintainers = with lib.maintainers; [ ericson2314 ];
+
node.pkgsReadOnly = false;
+
+
nodes.machine = {
+
nix.enable = false;
+
nixpkgs.overlays = [
+
(self: super: {
+
nix = throw "don't want to use pkgs.nix";
+
nixVersions = lib.mapAttrs (k: throw "don't want to use pkgs.nixVersions.${k}") super.nixVersions;
+
# aliases, some deprecated
+
nix_2_3 = throw "don't want to use pkgs.nix_2_3";
+
nix_2_4 = throw "don't want to use pkgs.nix_2_4";
+
nix_2_5 = throw "don't want to use pkgs.nix_2_5";
+
nix_2_6 = throw "don't want to use pkgs.nix_2_6";
+
nixFlakes = throw "don't want to use pkgs.nixFlakes";
+
nixStable = throw "don't want to use pkgs.nixStable";
+
nixUnstable = throw "don't want to use pkgs.nixUnstable";
+
nixStatic = throw "don't want to use pkgs.nixStatic";
+
})
+
];
+
};
testScript = ''
start_all()