From a0f4e8746d15683d75e590b08334df7faf4c7621 Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 28 Jan 2023 12:10:47 +0200 Subject: [PATCH] tests.overriding: add repeatedOverrides-pname, repeatedOverrides-entangled-pname from https://github.com/NixOS/nixpkgs/pull/201734#pullrequestreview-1185972282 --- pkgs/test/overriding.nix | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix index eab710af5afa..edc1b27cf4f1 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 {