nixosTests: fix eval

This commit is contained in:
Sizhe Zhao 2025-05-28 11:47:24 +08:00
parent 30b71544af
commit fb24b403c1
No known key found for this signature in database
GPG key ID: ED1807251A7DA08F
20 changed files with 187 additions and 202 deletions

View file

@ -616,8 +616,14 @@ in
pyload = runTest ./pyload.nix; pyload = runTest ./pyload.nix;
oci-containers = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./oci-containers.nix { }; oci-containers = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./oci-containers.nix { };
odoo = runTest ./odoo.nix; odoo = runTest ./odoo.nix;
odoo17 = handleTest ./odoo.nix { package = pkgs.odoo17; }; odoo17 = runTest {
odoo16 = handleTest ./odoo.nix { package = pkgs.odoo16; }; imports = [ ./odoo.nix ];
_module.args.package = pkgs.odoo17;
};
odoo16 = runTest {
imports = [ ./odoo.nix ];
_module.args.package = pkgs.odoo16;
};
oncall = runTest ./web-apps/oncall.nix; oncall = runTest ./web-apps/oncall.nix;
# 9pnet_virtio used to mount /nix partition doesn't support # 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but # hibernation. This test happens to work on x86_64-linux but
@ -1297,8 +1303,9 @@ in
systemd-initrd-btrfs-raid = runTest ./systemd-initrd-btrfs-raid.nix; systemd-initrd-btrfs-raid = runTest ./systemd-initrd-btrfs-raid.nix;
systemd-initrd-luks-fido2 = runTest ./systemd-initrd-luks-fido2.nix; systemd-initrd-luks-fido2 = runTest ./systemd-initrd-luks-fido2.nix;
systemd-initrd-luks-keyfile = runTest ./systemd-initrd-luks-keyfile.nix; systemd-initrd-luks-keyfile = runTest ./systemd-initrd-luks-keyfile.nix;
systemd-initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix { systemd-initrd-luks-empty-passphrase = runTest {
systemdStage1 = true; imports = [ ./initrd-luks-empty-passphrase.nix ];
_module.args.systemdStage1 = true;
}; };
systemd-initrd-luks-password = runTest ./systemd-initrd-luks-password.nix; systemd-initrd-luks-password = runTest ./systemd-initrd-luks-password.nix;
systemd-initrd-luks-tpm2 = runTest ./systemd-initrd-luks-tpm2.nix; systemd-initrd-luks-tpm2 = runTest ./systemd-initrd-luks-tpm2.nix;
@ -1310,7 +1317,10 @@ in
"x86_64-linux" "x86_64-linux"
"i686-linux" "i686-linux"
] ./initrd-network-openvpn { systemdStage1 = true; }; ] ./initrd-network-openvpn { systemdStage1 = true; };
systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; }; systemd-initrd-shutdown = runTest {
imports = [ ./systemd-shutdown.nix ];
_module.args.systemdStage1 = true;
};
systemd-initrd-simple = runTest ./systemd-initrd-simple.nix; systemd-initrd-simple = runTest ./systemd-initrd-simple.nix;
systemd-initrd-swraid = runTest ./systemd-initrd-swraid.nix; systemd-initrd-swraid = runTest ./systemd-initrd-swraid.nix;
systemd-initrd-vconsole = runTest ./systemd-initrd-vconsole.nix; systemd-initrd-vconsole = runTest ./systemd-initrd-vconsole.nix;

View file

@ -3,6 +3,8 @@
name = "breitbandmessung"; name = "breitbandmessung";
meta.maintainers = with lib.maintainers; [ b4dm4n ]; meta.maintainers = with lib.maintainers; [ b4dm4n ];
node.pkgsReadOnly = false;
nodes.machine = nodes.machine =
{ pkgs, ... }: { pkgs, ... }:
{ {

View file

@ -1,16 +1,12 @@
# integration tests for brscan5 sane driver # integration tests for brscan5 sane driver
# { lib, ... }:
{ pkgs, ... }:
{ {
name = "brscan5"; name = "brscan5";
meta = with pkgs.lib.maintainers; { meta.maintainers = with lib.maintainers; [ mattchrist ];
maintainers = [ mattchrist ];
};
nodes.machine = node.pkgsReadOnly = false;
{ pkgs, ... }:
{ nodes.machine = {
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
hardware.sane = { hardware.sane = {
enable = true; enable = true;

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { lib, ... }:
let let
# Settings for both servers and agents # Settings for both servers and agents
@ -117,6 +117,8 @@ in
{ {
name = "consul"; name = "consul";
node.pkgsReadOnly = false;
nodes = { nodes = {
server1 = server 0; server1 = server 0;
server2 = server 1; server2 = server 1;

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { lib, ... }:
let let
httpPort = 800; httpPort = 800;
in in
@ -9,14 +9,9 @@ in
bjornfor bjornfor
]; ];
nodes.machine = node.pkgsReadOnly = false;
{
config, nodes.machine = {
pkgs,
lib,
...
}:
{
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
services.deconz = { services.deconz = {
enable = true; enable = true;

View file

@ -4,9 +4,9 @@
# 3. replying to that message via email. # 3. replying to that message via email.
{ {
package,
pkgs, pkgs,
lib, lib,
package ? pkgs.discourse,
... ...
}: }:
let let
@ -24,9 +24,9 @@ let
in in
{ {
name = "discourse"; name = "discourse";
meta = with pkgs.lib.maintainers; { meta.maintainers = with lib.maintainers; [ talyz ];
maintainers = [ talyz ];
}; _module.args.package = lib.mkDefault pkgs.discourse;
nodes.discourse = nodes.discourse =
{ nodes, ... }: { nodes, ... }:
@ -62,7 +62,7 @@ in
services.discourse = { services.discourse = {
enable = true; enable = true;
inherit admin package; inherit admin;
hostname = discourseDomain; hostname = discourseDomain;
sslCertificate = "${certs.${discourseDomain}.cert}"; sslCertificate = "${certs.${discourseDomain}.cert}";
sslCertificateKey = "${certs.${discourseDomain}.key}"; sslCertificateKey = "${certs.${discourseDomain}.key}";

View file

@ -1,28 +1,15 @@
{ { lib, ... }:
system ? builtins.currentSystem,
config ? { },
pkgs ? import ../.. { inherit system config; },
}:
{ lib, pkgs, ... }:
{ {
name = "fanout"; name = "fanout";
meta.maintainers = [ lib.maintainers.therishidesai ]; meta.maintainers = with lib.maintainers; [ therishidesai ];
nodes = nodes.machine = {
let
cfg =
{ ... }:
{
services.fanout = { services.fanout = {
enable = true; enable = true;
fanoutDevices = 2; fanoutDevices = 2;
bufferSize = 8192; bufferSize = 8192;
}; };
}; };
in
{
machine = cfg;
};
testScript = '' testScript = ''
start_all() start_all()

View file

@ -3,6 +3,8 @@
name = "gnome-extensions"; name = "gnome-extensions";
meta.maintainers = [ ]; meta.maintainers = [ ];
node.pkgsReadOnly = false;
nodes.machine = nodes.machine =
{ pkgs, ... }: { pkgs, ... }:
{ {
@ -21,17 +23,15 @@
# Configure GDM # Configure GDM
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager = { services.xserver.displayManager.gdm = {
gdm = {
enable = true; enable = true;
debug = true; debug = true;
wayland = true; wayland = true;
}; };
autoLogin = { services.displayManager.autoLogin = {
enable = true; enable = true;
user = "alice"; user = "alice";
}; };
};
# Configure Gnome # Configure Gnome
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;

View file

@ -1,22 +1,21 @@
{ {
system ? builtins.currentSystem, systemdStage1,
config ? { }, lib,
pkgs ? import ../.. { inherit system config; }, pkgs,
systemdStage1 ? false, ...
}: }:
{ lib, pkgs, ... }:
let let
keyfile = pkgs.writeText "luks-keyfile" '' keyfile = pkgs.writeText "luks-keyfile" ''
MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2 MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2
gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6 gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6
FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC
''; '';
in in
{ {
name = "initrd-luks-empty-passphrase"; name = "initrd-luks-empty-passphrase";
_module.args.systemdStage1 = lib.mkDefault false;
nodes.machine = nodes.machine =
{ pkgs, ... }: { pkgs, ... }:
{ {

View file

@ -3,12 +3,12 @@ let
rcon-pass = "foobar"; rcon-pass = "foobar";
rcon-port = 43000; rcon-port = 43000;
in in
{ pkgs, ... }: { lib, pkgs, ... }:
{ {
name = "minecraft-server"; name = "minecraft-server";
meta = with pkgs.lib.maintainers; { meta.maintainers = with lib.maintainers; [ nequissimus ];
maintainers = [ nequissimus ];
}; node.pkgsReadOnly = false;
nodes.server = nodes.server =
{ ... }: { ... }:

View file

@ -1,17 +1,16 @@
{ {
pkgs, package,
lib, lib,
package ? pkgs.odoo, pkgs,
... ...
}: }:
{ {
name = "odoo"; name = "odoo";
meta.maintainers = with lib.maintainers; [ mkg20001 ]; meta.maintainers = with lib.maintainers; [ mkg20001 ];
nodes = { _module.args.package = lib.mkDefault pkgs.odoo;
server =
{ ... }: nodes.server = {
{
services.nginx = { services.nginx = {
enable = true; enable = true;
recommendedProxySettings = true; recommendedProxySettings = true;
@ -25,11 +24,8 @@
domain = "localhost"; domain = "localhost";
}; };
}; };
};
testScript = testScript = ''
{ nodes, ... }:
''
server.wait_for_unit("odoo.service") server.wait_for_unit("odoo.service")
server.wait_until_succeeds("curl -s http://localhost:8069/web/database/selector | grep '<title>Odoo</title>'") 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>'") server.succeed("curl -s http://localhost/web/database/selector | grep '<title>Odoo</title>'")

View file

@ -54,7 +54,7 @@ in
name = "openldap"; name = "openldap";
nodes.machine = nodes.machine =
{ pkgs, ... }: { config, pkgs, ... }:
{ {
environment.etc."openldap/root_password".text = "notapassword"; environment.etc."openldap/root_password".text = "notapassword";
@ -124,6 +124,8 @@ in
configuration = configuration =
{ ... }: { ... }:
{ {
nixpkgs.hostPlatform = config.nixpkgs.hostPlatform;
users.ldap = ldapClientConfig; users.ldap = ldapClientConfig;
services.openldap = { services.openldap = {
enable = true; enable = true;
@ -133,6 +135,7 @@ in
}; };
}; };
}; };
testScript = testScript =
{ nodes, ... }: { nodes, ... }:
let let

View file

@ -15,8 +15,9 @@ in
meta.maintainers = lib.teams.cyberus.members; meta.maintainers = lib.teams.cyberus.members;
nodes = { node.pkgsReadOnly = false;
outline =
nodes.outline =
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
@ -36,7 +37,6 @@ in
inherit rootCredentialsFile; inherit rootCredentialsFile;
}; };
}; };
};
testScript = '' testScript = ''
machine.wait_for_unit("minio.service") machine.wait_for_unit("minio.service")

View file

@ -1,7 +1,5 @@
{ pkgs, lib, ... }: { lib, ... }:
let let
# Build Quake with coverage instrumentation. # Build Quake with coverage instrumentation.
overrides = pkgs: { overrides = pkgs: {
quake3game = pkgs.quake3game.override (args: { quake3game = pkgs.quake3game.override (args: {
@ -23,7 +21,6 @@ let
client = client =
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ ./common/x11.nix ]; imports = [ ./common/x11.nix ];
hardware.graphics.enable = true; hardware.graphics.enable = true;
@ -31,14 +28,12 @@ let
nixpkgs.config.packageOverrides = overrides; nixpkgs.config.packageOverrides = overrides;
nixpkgs.config.allowUnfreePredicate = unfreePredicate; nixpkgs.config.allowUnfreePredicate = unfreePredicate;
}; };
in in
{
rec {
name = "quake3"; name = "quake3";
meta = with lib.maintainers; { meta.maintainers = with lib.maintainers; [ domenkozar ];
maintainers = [ domenkozar ];
}; node.pkgsReadOnly = false;
# TODO: lcov doesn't work atm # TODO: lcov doesn't work atm
#makeCoverageReport = true; #makeCoverageReport = true;
@ -46,7 +41,6 @@ rec {
nodes = { nodes = {
server = server =
{ pkgs, ... }: { pkgs, ... }:
{ {
systemd.services.quake3-server = { systemd.services.quake3-server = {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
@ -96,5 +90,4 @@ rec {
client2.shutdown() client2.shutdown()
server.stop_job("quake3-server") server.stop_job("quake3-server")
''; '';
} }

View file

@ -1,12 +1,12 @@
{ pkgs, lib, ... }: { lib, ... }:
{ {
name = "sabnzbd"; name = "sabnzbd";
meta = with pkgs.lib; { meta.maintainers = with lib.maintainers; [ jojosch ];
maintainers = with maintainers; [ jojosch ];
}; node.pkgsReadOnly = false;
nodes.machine = nodes.machine =
{ pkgs, ... }: { lib, ... }:
{ {
services.sabnzbd = { services.sabnzbd = {
enable = true; enable = true;

View file

@ -43,9 +43,9 @@ let
in in
{ {
name = "squid"; name = "squid";
meta = with pkgs.lib.maintainers; { meta.maintainers = with lib.maintainers; [ cobalt ];
maintainers = [ cobalt ];
}; node.pkgsReadOnly = false;
nodes = { nodes = {
client = client =

View file

@ -1,14 +1,14 @@
{ {
pkgs, latestKernel,
latestKernel ? false, lib,
... ...
}: }:
{ {
name = "systemd-analyze"; name = "systemd-analyze";
meta = with pkgs.lib.maintainers; { meta.maintainers = with lib.maintainers; [ raskin ];
maintainers = [ raskin ];
}; _module.args.latestKernel = lib.mkDefault false;
nodes.machine = nodes.machine =
{ pkgs, lib, ... }: { pkgs, lib, ... }:

View file

@ -1,6 +1,7 @@
{ {
systemdStage1,
lib,
pkgs, pkgs,
systemdStage1 ? false,
... ...
}: }:
let let
@ -8,9 +9,9 @@ let
in in
{ {
name = "systemd-shutdown"; name = "systemd-shutdown";
meta = with pkgs.lib.maintainers; { meta.maintainers = with lib.maintainers; [ das_j ];
maintainers = [ das_j ];
}; _module.args.systemdStage1 = lib.mkDefault false;
nodes.machine = { nodes.machine = {
imports = [ ../modules/profiles/minimal.nix ]; imports = [ ../modules/profiles/minimal.nix ];

View file

@ -10,20 +10,23 @@ let
(lib.take 2) (lib.take 2)
(lib.concatStringsSep ".") (lib.concatStringsSep ".")
]; ];
oldApiVersion = apiVersion pkgs."${oldNetbox}".version; oldApiVersion = apiVersion pkgs.${oldNetbox}.version;
newApiVersion = apiVersion pkgs."${newNetbox}".version; newApiVersion = apiVersion pkgs.${newNetbox}.version;
in in
{ {
name = "netbox-upgrade"; name = "netbox-upgrade";
meta = with lib.maintainers; { meta.maintainers = with lib.maintainers; [
maintainers = [
minijackson minijackson
raitobezarius raitobezarius
]; ];
};
node.pkgsReadOnly = false;
nodes.machine = nodes.machine =
let
pkgs' = pkgs;
in
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
virtualisation.memorySize = 2048; virtualisation.memorySize = 2048;
@ -31,7 +34,7 @@ in
enable = true; enable = true;
# Pick the NetBox package from this config's "pkgs" argument, # Pick the NetBox package from this config's "pkgs" argument,
# so that `nixpkgs.config.permittedInsecurePackages` works # so that `nixpkgs.config.permittedInsecurePackages` works
package = pkgs."${oldNetbox}"; package = pkgs.${oldNetbox};
secretKeyFile = pkgs.writeText "secret" '' secretKeyFile = pkgs.writeText "secret" ''
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
''; '';
@ -53,9 +56,9 @@ in
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
nixpkgs.config.permittedInsecurePackages = [ pkgs."${oldNetbox}".name ]; nixpkgs.config.permittedInsecurePackages = [ pkgs'.${oldNetbox}.name ];
specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs."${newNetbox}"; specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs.${newNetbox};
}; };
testScript = testScript =

View file

@ -1,13 +1,11 @@
{ lib, ... }: { lib, ... }:
{ {
name = "without-nix"; name = "without-nix";
meta = with lib.maintainers; { meta.maintainers = with lib.maintainers; [ ericson2314 ];
maintainers = [ ericson2314 ];
};
nodes.machine = node.pkgsReadOnly = false;
{ ... }:
{ nodes.machine = {
nix.enable = false; nix.enable = false;
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { (self: super: {