From 33f2784b7c7feb227c67b2d90b7de312a60b7b57 Mon Sep 17 00:00:00 2001 From: Piotr Kwiecinski <2151333+piotrkwiecinski@users.noreply.github.com> Date: Fri, 4 Apr 2025 21:08:27 +0200 Subject: [PATCH] nixosTests.cgit: migrate to runTest Part of #386873 --- nixos/tests/all-tests.nix | 2 +- nixos/tests/cgit.nix | 192 +++++++++++++++++++------------------- 2 files changed, 96 insertions(+), 98 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 132bd5d64d22..b9e35151dec5 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -294,7 +294,7 @@ in ] ./ceph-single-node-bluestore-dmcrypt.nix { }; certmgr = handleTest ./certmgr.nix { }; cfssl = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./cfssl.nix { }; - cgit = handleTest ./cgit.nix { }; + cgit = runTest ./cgit.nix; charliecloud = handleTest ./charliecloud.nix { }; chromadb = runTest ./chromadb.nix; chromium = (handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./chromium.nix { }).stable or { }; diff --git a/nixos/tests/cgit.nix b/nixos/tests/cgit.nix index fce3dc16b854..2c48e6bde47d 100644 --- a/nixos/tests/cgit.nix +++ b/nixos/tests/cgit.nix @@ -1,113 +1,111 @@ -import ./make-test-python.nix ( - { pkgs, ... }: - let - robotsTxt = pkgs.writeText "cgit-robots.txt" '' - User-agent: * - Disallow: / - ''; - in - { - name = "cgit"; - meta = with pkgs.lib.maintainers; { - maintainers = [ schnusch ]; - }; +{ pkgs, ... }: +let + robotsTxt = pkgs.writeText "cgit-robots.txt" '' + User-agent: * + Disallow: / + ''; +in +{ + name = "cgit"; + meta = with pkgs.lib.maintainers; { + maintainers = [ schnusch ]; + }; - nodes = { - server = - { ... }: - { - services.cgit."localhost" = { - enable = true; - package = pkgs.cgit.overrideAttrs ( - { postInstall, ... }: - { - postInstall = '' - ${postInstall} - cp ${robotsTxt} "$out/cgit/robots.txt" - ''; - } - ); - nginx.location = "/(c)git/"; - repos = { - some-repo = { - path = "/tmp/git/some-repo"; - desc = "some-repo description"; - }; - }; - settings = { - readme = [ - ":README.md" - ":date.txt" - ]; + nodes = { + server = + { ... }: + { + services.cgit."localhost" = { + enable = true; + package = pkgs.cgit.overrideAttrs ( + { postInstall, ... }: + { + postInstall = '' + ${postInstall} + cp ${robotsTxt} "$out/cgit/robots.txt" + ''; + } + ); + nginx.location = "/(c)git/"; + repos = { + some-repo = { + path = "/tmp/git/some-repo"; + desc = "some-repo description"; }; }; - - environment.systemPackages = [ pkgs.git ]; + settings = { + readme = [ + ":README.md" + ":date.txt" + ]; + }; }; - }; - testScript = - { nodes, ... }: - '' - start_all() + environment.systemPackages = [ pkgs.git ]; + }; + }; - server.wait_for_unit("nginx.service") - server.wait_for_unit("network.target") - server.wait_for_open_port(80) + testScript = + { nodes, ... }: + '' + start_all() - server.succeed("curl -fsS http://localhost/%28c%29git/cgit.css") + server.wait_for_unit("nginx.service") + server.wait_for_unit("network.target") + server.wait_for_open_port(80) - server.succeed("curl -fsS http://localhost/%28c%29git/robots.txt | diff -u - ${robotsTxt}") + server.succeed("curl -fsS http://localhost/%28c%29git/cgit.css") - server.succeed( - "curl -fsS http://localhost/%28c%29git/ | grep -F 'some-repo description'" - ) + server.succeed("curl -fsS http://localhost/%28c%29git/robots.txt | diff -u - ${robotsTxt}") - server.fail("curl -fsS http://localhost/robots.txt") + server.succeed( + "curl -fsS http://localhost/%28c%29git/ | grep -F 'some-repo description'" + ) - server.succeed("sudo -u cgit ${pkgs.writeShellScript "setup-cgit-test-repo" '' - set -e - git init --bare -b master /tmp/git/some-repo - git init -b master reference - cd reference - git remote add origin /tmp/git/some-repo - { echo -n "cgit NixOS Test at "; date; } > date.txt - git add date.txt - git -c user.name=test -c user.email=test@localhost commit -m 'add date' - git push -u origin master - ''}") + server.fail("curl -fsS http://localhost/robots.txt") - # test web download - server.succeed( - "curl -fsS 'http://localhost/%28c%29git/some-repo/plain/date.txt?id=master' | diff -u reference/date.txt -" - ) + server.succeed("sudo -u cgit ${pkgs.writeShellScript "setup-cgit-test-repo" '' + set -e + git init --bare -b master /tmp/git/some-repo + git init -b master reference + cd reference + git remote add origin /tmp/git/some-repo + { echo -n "cgit NixOS Test at "; date; } > date.txt + git add date.txt + git -c user.name=test -c user.email=test@localhost commit -m 'add date' + git push -u origin master + ''}") - # test http clone - server.succeed( - "git clone http://localhost/%28c%29git/some-repo && diff -u reference/date.txt some-repo/date.txt" - ) + # test web download + server.succeed( + "curl -fsS 'http://localhost/%28c%29git/some-repo/plain/date.txt?id=master' | diff -u reference/date.txt -" + ) - # test list settings by greping for the fallback readme - server.succeed( - "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'" - ) + # test http clone + server.succeed( + "git clone http://localhost/%28c%29git/some-repo && diff -u reference/date.txt some-repo/date.txt" + ) - # add real readme - server.succeed("sudo -u cgit ${pkgs.writeShellScript "cgit-commit-readme" '' - set -e - echo '# cgit NixOS test README' > reference/README.md - git -C reference add README.md - git -C reference -c user.name=test -c user.email=test@localhost commit -m 'add readme' - git -C reference push - ''}") + # test list settings by greping for the fallback readme + server.succeed( + "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'" + ) - # test list settings by greping for the real readme - server.succeed( - "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F '# cgit NixOS test README'" - ) - server.fail( - "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'" - ) - ''; - } -) + # add real readme + server.succeed("sudo -u cgit ${pkgs.writeShellScript "cgit-commit-readme" '' + set -e + echo '# cgit NixOS test README' > reference/README.md + git -C reference add README.md + git -C reference -c user.name=test -c user.email=test@localhost commit -m 'add readme' + git -C reference push + ''}") + + # test list settings by greping for the real readme + server.succeed( + "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F '# cgit NixOS test README'" + ) + server.fail( + "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'" + ) + ''; +}