summaryrefslogtreecommitdiffstats
path: root/nixos/tests
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/dovecot.nix7
-rw-r--r--nixos/tests/git/hub.nix17
-rw-r--r--nixos/tests/postgresql-wal-receiver.nix16
-rw-r--r--nixos/tests/prometheus-exporters.nix15
-rw-r--r--nixos/tests/shadow.nix14
6 files changed, 58 insertions, 12 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 659e538b31d0..c491b559213c 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -158,6 +158,7 @@ in
home-assistant = handleTest ./home-assistant.nix {};
hostname = handleTest ./hostname.nix {};
hound = handleTest ./hound.nix {};
+ hub = handleTest ./git/hub.nix {};
hydra = handleTest ./hydra {};
i3wm = handleTest ./i3wm.nix {};
icingaweb2 = handleTest ./icingaweb2.nix {};
diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix
index bcbe234fd805..1129e3b45d9d 100644
--- a/nixos/tests/dovecot.nix
+++ b/nixos/tests/dovecot.nix
@@ -4,8 +4,11 @@ import ./make-test-python.nix {
machine = { pkgs, ... }: {
imports = [ common/user-account.nix ];
services.postfix.enable = true;
- services.dovecot2.enable = true;
- services.dovecot2.protocols = [ "imap" "pop3" ];
+ services.dovecot2 = {
+ enable = true;
+ protocols = [ "imap" "pop3" ];
+ modules = [ pkgs.dovecot_pigeonhole ];
+ };
environment.systemPackages = let
sendTestMail = pkgs.writeScriptBin "send-testmail" ''
#!${pkgs.runtimeShell}
diff --git a/nixos/tests/git/hub.nix b/nixos/tests/git/hub.nix
new file mode 100644
index 000000000000..e2359e887efb
--- /dev/null
+++ b/nixos/tests/git/hub.nix
@@ -0,0 +1,17 @@
+import ../make-test-python.nix ({ pkgs, ...} : {
+ name = "hub";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ nequissimus ];
+ };
+
+ nodes.hub = { pkgs, ... }:
+ {
+ environment.systemPackages = [ pkgs.gitAndTools.hub ];
+ };
+
+ testScript =
+ ''
+ assert "git version ${pkgs.git.version}\nhub version ${pkgs.gitAndTools.hub.version}\n" in hub.succeed("hub version")
+ assert "These GitHub commands are provided by hub" in hub.succeed("hub help")
+ '';
+})
diff --git a/nixos/tests/postgresql-wal-receiver.nix b/nixos/tests/postgresql-wal-receiver.nix
index 432b46234f9c..0e8b3bfd6c34 100644
--- a/nixos/tests/postgresql-wal-receiver.nix
+++ b/nixos/tests/postgresql-wal-receiver.nix
@@ -1,11 +1,19 @@
+{ system ? builtins.currentSystem,
+ config ? {},
+ pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+
let
+ lib = pkgs.lib;
+
# Makes a test for a PostgreSQL package, given by name and looked up from `pkgs`.
makePostgresqlWalReceiverTest = postgresqlPackage:
{
name = postgresqlPackage;
value =
- import ./make-test-python.nix ({ pkgs, lib, ... }: let
-
+ let
pkg = pkgs."${postgresqlPackage}";
postgresqlDataDir = "/var/lib/postgresql/${pkg.psqlSchema}";
replicationUser = "wal_receiver_user";
@@ -19,7 +27,7 @@ let
then pkgs.writeTextDir "recovery.signal" ""
else pkgs.writeTextDir "recovery.conf" "restore_command = 'cp ${walBackupDir}/%f %p'";
- in {
+ in makeTest {
name = "postgresql-wal-receiver-${postgresqlPackage}";
meta.maintainers = with lib.maintainers; [ pacien ];
@@ -104,7 +112,7 @@ let
"test $(sudo -u postgres psql --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100"
)
'';
- });
+ };
};
# Maps the generic function over all attributes of PostgreSQL packages
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index f611d961769a..8fcb0a7aa2c3 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -222,10 +222,11 @@ let
exporterConfig = {
enable = true;
url = "http://localhost";
- configFile = pkgs.writeText "json-exporter-conf.json" (builtins.toJSON [{
- name = "json_test_metric";
- path = "$.test";
- }]);
+ configFile = pkgs.writeText "json-exporter-conf.json" (builtins.toJSON {
+ metrics = [
+ { name = "json_test_metric"; path = "$.test"; }
+ ];
+ });
};
metricProvider = {
systemd.services.prometheus-json-exporter.after = [ "nginx.service" ];
@@ -241,7 +242,9 @@ let
wait_for_open_port(80)
wait_for_unit("prometheus-json-exporter.service")
wait_for_open_port(7979)
- succeed("curl -sSf localhost:7979/metrics | grep -q 'json_test_metric 1'")
+ succeed(
+ "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep -q 'json_test_metric 1'"
+ )
'';
};
@@ -659,7 +662,7 @@ let
wait_for_open_port(11334)
wait_for_open_port(7980)
wait_until_succeeds(
- "curl -sSf localhost:7980/metrics | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'"
+ "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'"
)
'';
};
diff --git a/nixos/tests/shadow.nix b/nixos/tests/shadow.nix
index 0cc1d6811400..8f8cdef7ef9d 100644
--- a/nixos/tests/shadow.nix
+++ b/nixos/tests/shadow.nix
@@ -2,6 +2,7 @@ let
password1 = "foobar";
password2 = "helloworld";
password3 = "bazqux";
+ password4 = "asdf123";
in import ./make-test-python.nix ({ pkgs, ... }: {
name = "shadow";
meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ nequissimus ]; };
@@ -19,6 +20,10 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
password = password2;
shell = pkgs.shadow;
};
+ users.ash = {
+ password = password4;
+ shell = pkgs.bash;
+ };
};
};
@@ -41,6 +46,15 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
shadow.wait_for_file("/tmp/1")
assert "emma" in shadow.succeed("cat /tmp/1")
+ with subtest("Switch user"):
+ shadow.send_chars("su - ash\n")
+ shadow.sleep(2)
+ shadow.send_chars("${password4}\n")
+ shadow.sleep(2)
+ shadow.send_chars("whoami > /tmp/3\n")
+ shadow.wait_for_file("/tmp/3")
+ assert "ash" in shadow.succeed("cat /tmp/3")
+
with subtest("Change password"):
shadow.send_key("alt-f3")
shadow.wait_until_succeeds(f"[ $(fgconsole) = 3 ]")