diff options
Diffstat (limited to 'tests/by-name')
| -rw-r--r-- | tests/by-name/at/atuin-sync/test.nix | 21 | ||||
| -rw-r--r-- | tests/by-name/ba/back/test.nix | 29 | ||||
| -rw-r--r-- | tests/by-name/em/email-dns/nodes/name_server.nix | 2 | ||||
| -rw-r--r-- | tests/by-name/em/email-dns/test.nix | 20 | ||||
| -rw-r--r-- | tests/by-name/em/email-http/test.nix | 21 | ||||
| -rw-r--r-- | tests/by-name/ru/rust-motd/test.nix | 63 | ||||
| -rw-r--r-- | tests/by-name/sh/sharkey-cpu/test.nix | 2 | ||||
| -rw-r--r-- | tests/by-name/sh/sharkey/test.nix | 21 | ||||
| -rw-r--r-- | tests/by-name/ta/taskchampion-sync/test.nix | 23 |
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 -- "<No description>" /root/repos.html + grep -- "<No description>" /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]: |
