about summary refs log tree commit diff stats
path: root/tests/by-name
diff options
context:
space:
mode:
Diffstat (limited to 'tests/by-name')
-rw-r--r--tests/by-name/at/atuin-sync/test.nix21
-rw-r--r--tests/by-name/ba/back/test.nix29
-rw-r--r--tests/by-name/em/email-dns/nodes/name_server.nix2
-rw-r--r--tests/by-name/em/email-dns/test.nix20
-rw-r--r--tests/by-name/em/email-http/test.nix21
-rw-r--r--tests/by-name/ru/rust-motd/test.nix63
-rw-r--r--tests/by-name/sh/sharkey-cpu/test.nix2
-rw-r--r--tests/by-name/sh/sharkey/test.nix21
-rw-r--r--tests/by-name/ta/taskchampion-sync/test.nix23
9 files changed, 93 insertions, 109 deletions
diff --git a/tests/by-name/at/atuin-sync/test.nix b/tests/by-name/at/atuin-sync/test.nix
index 3e01885..d29c031 100644
--- a/tests/by-name/at/atuin-sync/test.nix
+++ b/tests/by-name/at/atuin-sync/test.nix
@@ -142,26 +142,11 @@ nixos-lib.runTest {
       run_and_record_in_atuin "$@"
     '';
 
-    acme_scripts = import ../../../common/acme/scripts.nix {inherit pkgs;};
+    acme = import ../../../common/acme {inherit pkgs;};
   in
-    /*
-    python
-    */
+    acme.prepare ["server" "client1" "client2"]
+    # Python
     ''
-      # Start dependencies for the other services
-      acme.start()
-      acme.wait_for_unit("pebble.service")
-      name_server.start()
-      name_server.wait_for_unit("nsd.service")
-
-      # Start actual test
-      start_all()
-
-      with subtest("Add pebble ca key to all services"):
-        for node in [name_server, server, client1, client2]:
-          node.wait_for_unit("network-online.target")
-          node.succeed("${acme_scripts.add_pebble_acme_ca}")
-
       server.wait_for_unit("atuin.service")
       server.wait_for_open_port(443)
 
diff --git a/tests/by-name/ba/back/test.nix b/tests/by-name/ba/back/test.nix
index 85cb611..cce5ede 100644
--- a/tests/by-name/ba/back/test.nix
+++ b/tests/by-name/ba/back/test.nix
@@ -56,14 +56,9 @@ in
             domain = "git.${domain}";
             gitolite.adminPubkey = sshKeys.admin.pub;
           };
-          back = {
+          git-back = {
             enable = true;
             domain = "issues.${domain}";
-
-            settings = {
-              scan_path = "${config.services.gitolite.dataDir}/repositories";
-              project_list = "${config.services.gitolite.dataDir}/projects.list";
-            };
           };
         };
       };
@@ -152,35 +147,35 @@ in
 
         cd alice/repo1
 
-        git bug user create --avatar "" --email "alice@server.org" --name "alice" --non-interactive
+        git bug user new --avatar "" --email "alice@server.org" --name "alice" --non-interactive
 
-        git bug add \
+        git bug bug new \
         --title "Some bug title" \
         --message "A long description of the bug. Probably has some code segments, maybe even *markdown* mark_up_ or other things" \
         --non-interactive
 
-        git bug add \
+        git bug bug new \
         --title "Second bug title" \
         --message "" \
         --non-interactive
 
-        git bug add \
+        git bug bug new \
         --title "Third bug title" \
         --message "" \
         --non-interactive
 
-        git bug select "$(git bug ls --format plain | awk '{print $1}' | head -n 1)"
+        git bug bug select "$(git bug bug --format plain | awk '{print $1}' | head -n 1)"
 
-        git bug comment add --message "Some comment message" --non-interactive
-        git bug comment add --message "Second comment message" --non-interactive
+        git bug bug comment new --message "Some comment message" --non-interactive
+        git bug bug comment new --message "Second comment message" --non-interactive
 
         # TODO: This should use `git bug push`, but their ssh implementation is just
         # too special to work in a VM test <2025-03-08>
         git push origin +refs/bugs/*
         git push origin +refs/identities/*
 
-        ssh git@${domain} -- config alice/repo1 --add cgit.owner Alice
-        ssh git@${domain} -- perms alice/repo1 + READERS @all
+        ssh git@git.${domain} -- config alice/repo1 --add cgit.owner Alice
+        ssh git@git.${domain} -- perms alice/repo1 + READERS @all
       ''}")
 
       with subtest("back server starts"):
@@ -190,12 +185,12 @@ in
         client.succeed("${pkgs.writeShellScript "curl-back" ''
         set -xe
 
-        curl --insecure --fail --show-error "https://issues.${domain}/alice/repo1.git/issues/open" --output /root/issues.html
+        curl --insecure --fail --show-error "https://issues.${domain}/alice/repo1/issues/?query=status:open" --output /root/issues.html
         grep -- 'Second bug title' /root/issues.html
 
         curl --insecure --fail --show-error "https://issues.${domain}/" --output /root/repos.html
         grep -- 'repo' /root/repos.html
-        grep -- "&#60;No description&#62;" /root/repos.html
+        grep -- "&lt;No description&gt;" /root/repos.html
         grep -- '<span class="user-name">Alice</span>' /root/repos.html
       ''} >&2")
 
diff --git a/tests/by-name/em/email-dns/nodes/name_server.nix b/tests/by-name/em/email-dns/nodes/name_server.nix
index d9d3617..bde1a16 100644
--- a/tests/by-name/em/email-dns/nodes/name_server.nix
+++ b/tests/by-name/em/email-dns/nodes/name_server.nix
@@ -63,7 +63,7 @@
         adkim = "strict";
         aspf = "strict";
         fo = ["0" "1" "d" "s"];
-        p = "quarantine";
+        p = "reject";
         rua = cfg.admin;
         ruf = [cfg.admin];
       }
diff --git a/tests/by-name/em/email-dns/test.nix b/tests/by-name/em/email-dns/test.nix
index f0399a5..c7ba3b3 100644
--- a/tests/by-name/em/email-dns/test.nix
+++ b/tests/by-name/em/email-dns/test.nix
@@ -90,23 +90,13 @@ in
         }
       '';
 
-      acme_scripts = import ../../../common/acme/scripts.nix {inherit pkgs;};
+      acme = import ../../../common/acme {inherit pkgs;};
     in
-      /*
-      python
-      */
+      acme.prepare ["mail1_server" "mail2_server" "alice" "bob"]
+      # Python
       ''
         from time import sleep
 
-        # Start dependencies for the other services
-        acme.start()
-        acme.wait_for_unit("pebble.service")
-        name_server.start()
-        name_server.wait_for_unit("nsd.service")
-
-        # Start the actual testing machines
-        start_all()
-
         mail1_server.wait_for_unit("stalwart-mail.service")
         mail1_server.wait_for_open_port(993) # imap
         mail1_server.wait_for_open_port(465) # smtp
@@ -120,10 +110,6 @@ in
         name_server.wait_until_succeeds("stat /var/lib/acme/mta-sts.alice.com/cert.pem")
         name_server.wait_until_succeeds("stat /var/lib/acme/mta-sts.bob.com/cert.pem")
 
-        with subtest("Add pebble ca key to all services"):
-          for node in [name_server, mail1_server, mail2_server, alice, bob]:
-            node.succeed("${acme_scripts.add_pebble_acme_ca}")
-
         with subtest("Both mailserver successfully started all services"):
           import json
           def all_services_running(host):
diff --git a/tests/by-name/em/email-http/test.nix b/tests/by-name/em/email-http/test.nix
index f508b9f..82b4c45 100644
--- a/tests/by-name/em/email-http/test.nix
+++ b/tests/by-name/em/email-http/test.nix
@@ -71,32 +71,17 @@ in
 
     # TODO(@bpeetz): This test should also test the http JMAP features of stalwart-mail. <2025-04-12>
     testScript = _: let
-      acme_scripts = import ../../../common/acme/scripts.nix {inherit pkgs;};
+      acme = import ../../../common/acme {inherit pkgs;};
     in
-      /*
-      python
-      */
+      acme.prepare ["mail_server" "bob"]
+      # Python
       ''
-        # Start dependencies for the other services
-        acme.start()
-        acme.wait_for_unit("pebble.service")
-        name_server.start()
-        name_server.wait_for_unit("nsd.service")
-
-        # Start the actual testing machines
-        start_all()
-
         mail_server.wait_for_unit("stalwart-mail.service")
         mail_server.wait_for_open_port(993) # imap
         mail_server.wait_for_open_port(465) # smtp
 
         bob.wait_for_unit("multi-user.target")
 
-        with subtest("Add pebble ca key to all services"):
-          for node in [name_server, mail_server, bob]:
-            node.wait_for_unit("network-online.target")
-            node.succeed("${acme_scripts.add_pebble_acme_ca}")
-
         with subtest("The mailserver successfully started all services"):
           import json
           def all_services_running(host):
diff --git a/tests/by-name/ru/rust-motd/test.nix b/tests/by-name/ru/rust-motd/test.nix
new file mode 100644
index 0000000..6623c0c
--- /dev/null
+++ b/tests/by-name/ru/rust-motd/test.nix
@@ -0,0 +1,63 @@
+{
+  nixos-lib,
+  pkgsUnstable,
+  nixpkgs-unstable,
+  vhackPackages,
+  pkgs,
+  extraModules,
+  nixLib,
+  ...
+}:
+nixos-lib.runTest {
+  hostPkgs = pkgs;
+
+  name = "rust-motd";
+
+  node = {
+    specialArgs = {inherit pkgsUnstable extraModules vhackPackages nixpkgs-unstable nixLib;};
+
+    # Use the nixpkgs as constructed by the `nixpkgs.*` options
+    pkgs = null;
+  };
+
+  nodes = {
+    server = {config, ...}: {
+      imports =
+        extraModules
+        ++ [
+          ../../../../modules
+        ];
+
+      vhack = {
+        rust-motd.enable = true;
+      };
+    };
+  };
+
+  testScript = {nodes, ...}:
+  /*
+  python
+  */
+  ''
+    from time import sleep
+
+    start_all()
+
+    # Give the service time to run.
+    sleep(3)
+
+    with subtest("All services running"):
+      import json
+      def all_services_running(host):
+        (status, output) = host.systemctl("list-units --state=failed --plain --no-pager --output=json")
+        host_failed = json.loads(output)
+        assert len(host_failed) == 0, f"Expected zero failing services, but found: {json.dumps(host_failed, indent=4)}"
+      all_services_running(server)
+
+    with subtest("Motd generated"):
+      sleep(1)
+      server.succeed("cat /var/lib/rust-motd/motd | tee /dev/stderr | grep --invert-match Error")
+
+    server.copy_from_vm("/var/lib/rust-motd/motd")
+  '';
+}
diff --git a/tests/by-name/sh/sharkey-cpu/test.nix b/tests/by-name/sh/sharkey-cpu/test.nix
index 438cfb3..6082806 100644
--- a/tests/by-name/sh/sharkey-cpu/test.nix
+++ b/tests/by-name/sh/sharkey-cpu/test.nix
@@ -38,7 +38,7 @@ nixos-lib.runTest {
       };
       systemd.services = {
         # Avoid an error from this service.
-        "acme-sharkey.server".serviceConfig.ExecStart = pkgs.lib.mkForce "${pkgs.lib.getExe' pkgs.coreutils "true"}";
+        "acme-sharkey.server".enable = false;
 
         # Test that sharkey's hardening still allows access to the CPUs.
         sharkey.serviceConfig.ExecStart = let
diff --git a/tests/by-name/sh/sharkey/test.nix b/tests/by-name/sh/sharkey/test.nix
index b2ad461..0d79cd2 100644
--- a/tests/by-name/sh/sharkey/test.nix
+++ b/tests/by-name/sh/sharkey/test.nix
@@ -82,26 +82,11 @@ nixos-lib.runTest {
   };
 
   testScript = {nodes, ...}: let
-    acme_scripts = import ../../../common/acme/scripts.nix {inherit pkgs;};
+    acme = import ../../../common/acme {inherit pkgs;};
   in
-    /*
-    python
-    */
+    acme.prepare ["server" "client"]
+    # Python
     ''
-      # Start dependencies for the other services
-      acme.start()
-      acme.wait_for_unit("pebble.service")
-      name_server.start()
-      name_server.wait_for_unit("nsd.service")
-
-      # Start the actual testing machines
-      start_all()
-
-      with subtest("Add pebble ca key to all services"):
-        for node in [name_server, server, client]:
-          node.wait_for_unit("network-online.target")
-          node.succeed("${acme_scripts.add_pebble_acme_ca}")
-
       server.wait_for_unit("sharkey.service")
 
       with subtest("All services running"):
diff --git a/tests/by-name/ta/taskchampion-sync/test.nix b/tests/by-name/ta/taskchampion-sync/test.nix
index 99134bc..cdbe062 100644
--- a/tests/by-name/ta/taskchampion-sync/test.nix
+++ b/tests/by-name/ta/taskchampion-sync/test.nix
@@ -114,26 +114,11 @@ nixos-lib.runTest {
         echo 'sync.encryption_secret=${password}' >> "${path}"
       '';
 
-    acme_scripts = import ../../../common/acme/scripts.nix {inherit pkgs;};
+    acme = import ../../../common/acme {inherit pkgs;};
   in
-    /*
-    python
-    */
+    acme.prepare ["server" "task_client1" "task_client2"]
+    # Python
     ''
-      # Start dependencies for the other services
-      acme.start()
-      acme.wait_for_unit("pebble.service")
-      name_server.start()
-      name_server.wait_for_unit("nsd.service")
-
-      # Start actual test
-      start_all()
-
-      with subtest("Add pebble ca key to all services"):
-        for node in [name_server, server, task_client1, task_client2]:
-          node.wait_for_unit("network-online.target")
-          node.succeed("${acme_scripts.add_pebble_acme_ca}")
-
       server.wait_for_unit("taskchampion-sync-server.service")
       server.wait_for_open_port(443)
 
@@ -148,7 +133,7 @@ nixos-lib.runTest {
           task_client2.succeed("task add 'First task -- task_client2'")
 
       # Wait for the server to acquire the acme certificate
-      task_client1.wait_until_succeed("curl https://taskchampion.server")
+      task_client1.wait_until_succeeds("curl https://taskchampion.server")
 
       with subtest("Can sync tasks"):
           for task in [task_client1, task_client2]: