diff options
author | Artturi <Artturin@artturin.com> | 2023-02-03 12:49:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-03 12:49:08 +0200 |
commit | dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a (patch) | |
tree | e102e2eb4f76c7c884cb05763f425584e5f8a7f4 /pkgs/test | |
parent | 931f54ceff33e3dce7edd0b853e36e7444294419 (diff) | |
parent | a0f4e8746d15683d75e590b08334df7faf4c7621 (diff) | |
download | nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.tar nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.tar.gz nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.tar.bz2 nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.tar.lz nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.tar.xz nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.tar.zst nixpkgs-dcc7df7fe6e74ac3b2895a1f2c6873b00278c83a.zip |
Merge pull request #211685 from Artturin/splicingstuff1-split
Diffstat (limited to 'pkgs/test')
-rw-r--r-- | pkgs/test/default.nix | 2 | ||||
-rw-r--r-- | pkgs/test/overriding.nix | 56 |
2 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 39039c5950e..71d065179d1 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -61,6 +61,8 @@ with pkgs; nixos-functions = callPackage ./nixos-functions {}; + overriding = callPackage ./overriding.nix { }; + patch-shebangs = callPackage ./patch-shebangs {}; texlive = callPackage ./texlive {}; diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix new file mode 100644 index 00000000000..edc1b27cf4f --- /dev/null +++ b/pkgs/test/overriding.nix @@ -0,0 +1,56 @@ +{ lib, pkgs, stdenvNoCC }: + +let + tests = + let + p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { dontWrapPythonPrograms = true; }); + in + [ + ({ + name = "overridePythonAttrs"; + 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 { + name = "test-overriding"; + 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; +} |