about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2023-01-28 12:10:47 +0200
committerArtturin <Artturin@artturin.com>2023-01-28 12:10:47 +0200
commita0f4e8746d15683d75e590b08334df7faf4c7621 (patch)
tree276e18bfad6d5642dedf8c4d215241a00bb20d92 /pkgs
parent9c0ac5691c5c8e8902fe5a93599b07e3f21464aa (diff)
tests.overriding: add repeatedOverrides-pname, repeatedOverrides-entangled-pname
from https://github.com/NixOS/nixpkgs/pull/201734#pullrequestreview-1185972282
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/test/overriding.nix33
1 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix
index eab710af5afab..edc1b27cf4f1d 100644
--- a/pkgs/test/overriding.nix
+++ b/pkgs/test/overriding.nix
@@ -11,7 +11,40 @@ let
         expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup;
         expected = true;
       })
+      ({
+        name = "repeatedOverrides-pname";
+        expr = repeatedOverrides.pname == "a-better-hello-with-blackjack";
+        expected = true;
+      })
+      ({
+        name = "repeatedOverrides-entangled-pname";
+        expr = repeatedOverrides.entangled.pname == "a-better-figlet-with-blackjack";
+        expected = true;
+      })
     ];
+
+  addEntangled = origOverrideAttrs: f:
+    origOverrideAttrs (
+      lib.composeExtensions f (self: super: {
+        passthru = super.passthru // {
+          entangled = super.passthru.entangled.overrideAttrs f;
+          overrideAttrs = addEntangled self.overrideAttrs;
+        };
+      })
+    );
+
+  entangle = pkg1: pkg2: pkg1.overrideAttrs (self: super: {
+    passthru = super.passthru // {
+      entangled = pkg2;
+      overrideAttrs = addEntangled self.overrideAttrs;
+    };
+  });
+
+  example = entangle pkgs.hello pkgs.figlet;
+
+  overrides1 = example.overrideAttrs (_: super: { pname = "a-better-${super.pname}"; });
+
+  repeatedOverrides = overrides1.overrideAttrs (_: super: { pname = "${super.pname}-with-blackjack"; });
 in
 
 stdenvNoCC.mkDerivation {