lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 24.05-pre 66 lines 2.2 kB view raw
1{ lib, pkgs, stdenvNoCC }: 2 3let 4 tests = 5 let 6 p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { dontWrapPythonPrograms = true; }); 7 in 8 [ 9 ({ 10 name = "overridePythonAttrs"; 11 expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup; 12 expected = true; 13 }) 14 ({ 15 name = "repeatedOverrides-pname"; 16 expr = repeatedOverrides.pname == "a-better-hello-with-blackjack"; 17 expected = true; 18 }) 19 ({ 20 name = "repeatedOverrides-entangled-pname"; 21 expr = repeatedOverrides.entangled.pname == "a-better-figlet-with-blackjack"; 22 expected = true; 23 }) 24 ({ 25 name = "overriding-using-only-attrset"; 26 expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname == "hello-overriden"; 27 expected = true; 28 }) 29 ({ 30 name = "overriding-using-only-attrset-no-final-attrs"; 31 expr = ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { pname = "hello-no-final-attrs-overridden"; }).pname == "hello-no-final-attrs-overridden"; 32 expected = true; 33 }) 34 ]; 35 36 addEntangled = origOverrideAttrs: f: 37 origOverrideAttrs ( 38 lib.composeExtensions f (self: super: { 39 passthru = super.passthru // { 40 entangled = super.passthru.entangled.overrideAttrs f; 41 overrideAttrs = addEntangled self.overrideAttrs; 42 }; 43 }) 44 ); 45 46 entangle = pkg1: pkg2: pkg1.overrideAttrs (self: super: { 47 passthru = super.passthru // { 48 entangled = pkg2; 49 overrideAttrs = addEntangled self.overrideAttrs; 50 }; 51 }); 52 53 example = entangle pkgs.hello pkgs.figlet; 54 55 overrides1 = example.overrideAttrs (_: super: { pname = "a-better-${super.pname}"; }); 56 57 repeatedOverrides = overrides1.overrideAttrs (_: super: { pname = "${super.pname}-with-blackjack"; }); 58in 59 60stdenvNoCC.mkDerivation { 61 name = "test-overriding"; 62 passthru = { inherit tests; }; 63 buildCommand = '' 64 touch $out 65 '' + lib.concatMapStringsSep "\n" (t: "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${t.name} success') || (echo '${t.name} fail' && exit 1)") tests; 66}