nixosTests: fix eval (#411634)

This commit is contained in:
Robert Hensing 2025-05-28 16:16:49 +02:00 committed by GitHub
commit 99db54d11c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 187 additions and 202 deletions

View file

@ -616,8 +616,14 @@ in
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; };
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
@ -1297,8 +1303,9 @@ in
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-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;
@ -1310,7 +1317,10 @@ in
"x86_64-linux"
"i686-linux"
] ./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-swraid = runTest ./systemd-initrd-swraid.nix;
systemd-initrd-vconsole = runTest ./systemd-initrd-vconsole.nix;

View file

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

View file

@ -1,34 +1,30 @@
# integration tests for brscan5 sane driver
#
{ pkgs, ... }:
{ lib, ... }:
{
name = "brscan5";
meta = with pkgs.lib.maintainers; {
maintainers = [ mattchrist ];
};
meta.maintainers = with lib.maintainers; [ mattchrist ];
nodes.machine =
{ pkgs, ... }:
{
nixpkgs.config.allowUnfree = true;
hardware.sane = {
node.pkgsReadOnly = false;
nodes.machine = {
nixpkgs.config.allowUnfree = true;
hardware.sane = {
enable = true;
brscan5 = {
enable = true;
brscan5 = {
enable = true;
netDevices = {
"a" = {
model = "ADS-1200";
nodename = "BRW0080927AFBCE";
};
"b" = {
model = "ADS-1200";
ip = "192.168.1.2";
};
netDevices = {
"a" = {
model = "ADS-1200";
nodename = "BRW0080927AFBCE";
};
"b" = {
model = "ADS-1200";
ip = "192.168.1.2";
};
};
};
};
};
testScript = ''
import re

View file

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

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ lib, ... }:
let
httpPort = 800;
in
@ -9,24 +9,19 @@ in
bjornfor
];
nodes.machine =
{
config,
pkgs,
lib,
...
}:
{
nixpkgs.config.allowUnfree = true;
services.deconz = {
enable = true;
inherit httpPort;
extraArgs = [
"--dbg-err=2"
"--dbg-info=2"
];
};
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")

View file

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

View file

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

View file

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

View file

@ -1,22 +1,21 @@
{
system ? builtins.currentSystem,
config ? { },
pkgs ? import ../.. { inherit system config; },
systemdStage1 ? false,
systemdStage1,
lib,
pkgs,
...
}:
{ 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, ... }:
{

View file

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

View file

@ -1,37 +1,33 @@
{
pkgs,
package,
lib,
package ? pkgs.odoo,
pkgs,
...
}:
{
name = "odoo";
meta.maintainers = with lib.maintainers; [ mkg20001 ];
nodes = {
server =
{ ... }:
{
services.nginx = {
enable = true;
recommendedProxySettings = true;
};
_module.args.package = lib.mkDefault pkgs.odoo;
services.odoo = {
enable = true;
package = package;
autoInit = true;
autoInitExtraFlags = [ "--without-demo=all" ];
domain = "localhost";
};
};
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>'")
'';
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>'")
'';
}

View file

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

View file

@ -15,28 +15,28 @@ in
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;
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")

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,30 +1,28 @@
{ lib, ... }:
{
name = "without-nix";
meta = with lib.maintainers; {
maintainers = [ ericson2314 ];
};
meta.maintainers = with lib.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";
})
];
};
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()