From fdd16729a2dc80cf2b16d31542d24c7b8504f2c2 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Fri, 26 Jul 2024 03:07:48 +0800 Subject: [PATCH] tests.overriding: structure tests as an attribut set Make individual tests accessible via tests.override.tests. --- .../manual/release-notes/rl-2411.section.md | 2 ++ pkgs/test/overriding.nix | 30 ++++++++----------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index c4de4128b0408..243a6eaeb5fcc 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -134,6 +134,8 @@ Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/) and [release notes for v16](https://goteleport.com/docs/changelog/#1600-061324). +- `tests.overriding` has its `passthru.tests` restructured as an attribute set instead of a list, making individual tests accessible by their names. + - `vaultwarden` lost the capability to bind to privileged ports. If you rely on this behavior, override the systemd unit to allow `CAP_NET_BIND_SERVICE` in your local configuration. diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix index f2519088f138a..e4c1f257c8190 100644 --- a/pkgs/test/overriding.nix +++ b/pkgs/test/overriding.nix @@ -5,33 +5,29 @@ let let p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { dontWrapPythonPrograms = true; }); in - [ - ({ - name = "overridePythonAttrs"; + { + overridePythonAttrs = { expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup; expected = true; - }) - ({ - name = "repeatedOverrides-pname"; + }; + repeatedOverrides-pname = { expr = repeatedOverrides.pname == "a-better-hello-with-blackjack"; expected = true; - }) - ({ - name = "repeatedOverrides-entangled-pname"; + }; + repeatedOverrides-entangled-pname = { expr = repeatedOverrides.entangled.pname == "a-better-figlet-with-blackjack"; expected = true; - }) - ({ - name = "overriding-using-only-attrset"; + }; + overriding-using-only-attrset = { expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname == "hello-overriden"; expected = true; - }) - ({ + }; + overriding-using-only-attrset-no-final-attrs = { name = "overriding-using-only-attrset-no-final-attrs"; expr = ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { pname = "hello-no-final-attrs-overridden"; }).pname == "hello-no-final-attrs-overridden"; expected = true; - }) - ]; + }; + }; addEntangled = origOverrideAttrs: f: origOverrideAttrs ( @@ -62,5 +58,5 @@ stdenvNoCC.mkDerivation { passthru = { inherit tests; }; buildCommand = '' touch $out - '' + lib.concatMapStringsSep "\n" (t: "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${t.name} success') || (echo '${t.name} fail' && exit 1)") tests; + '' + lib.concatStringsSep "\n" (lib.attrValues (lib.mapAttrs (name: t: "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${name} success') || (echo '${name} fail' && exit 1)") tests)); }