Unverified Commit ffca1c41 authored by Yueh-Shun Li's avatar Yueh-Shun Li Committed by Matt Sturgeon
Browse files

tests.overriding: restructure test cases utilizing non-boolean support

parent 53515684
Loading
Loading
Loading
Loading
+59 −63
Original line number Diff line number Diff line
@@ -43,24 +43,24 @@ let
    in
    {
      repeatedOverrides-pname = {
        expr = repeatedOverrides.pname == "a-better-hello-with-blackjack";
        expected = true;
        expr = repeatedOverrides.pname;
        expected = "a-better-hello-with-blackjack";
      };
      repeatedOverrides-entangled-pname = {
        expr = repeatedOverrides.entangled.pname == "a-better-figlet-with-blackjack";
        expected = true;
        expr = repeatedOverrides.entangled.pname;
        expected = "a-better-figlet-with-blackjack";
      };
      overriding-using-only-attrset = {
        expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname == "hello-overriden";
        expected = true;
        expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname;
        expected = "hello-overriden";
      };
      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;
          }).pname;
        expected = "hello-no-final-attrs-overridden";
      };
    };

@@ -118,16 +118,16 @@ let
        expected = true;
      };
      extendMkDerivation-helloLocal-plain-equivalence = {
        expr = helloLocal.drvPath == helloLocalPlain.drvPath;
        expected = true;
        expr = helloLocal.drvPath;
        expected = helloLocalPlain.drvPath;
      };
      extendMkDerivation-helloLocal-finalAttrs = {
        expr = helloLocal.bar == "ab";
        expected = true;
        expr = helloLocal.bar;
        expected = "ab";
      };
      extendMkDerivation-helloLocal-specialArg = {
        expr = hiLocal.greeting == "Hi!";
        expected = true;
        expr = hiLocal.greeting;
        expected = "Hi!";
      };
    };

@@ -152,27 +152,35 @@ let
    in
    {
      hash-outputHash-equivalence = {
        expr = ruamel_0_17_21-src.outputHash == ruamel_0_17_21-hash;
        expected = true;
        expr = ruamel_0_17_21-src.outputHash;
        expected = ruamel_0_17_21-hash;
      };

      hash-overridability-outputHash = {
        expr = ruamel_0_17_21-src-by-overriding.outputHash == ruamel_0_17_21-hash;
        expected = true;
        expr = ruamel_0_17_21-src-by-overriding.outputHash;
        expected = ruamel_0_17_21-hash;
      };

      hash-overridability-drvPath = {
        expr =
          lib.isString ruamel_0_17_21-src-by-overriding.drvPath
          && ruamel_0_17_21-src-by-overriding.drvPath == ruamel_0_17_21-src.drvPath;
        expected = true;
        expr = [
          (lib.isString ruamel_0_17_21-src-by-overriding.drvPath)
          ruamel_0_17_21-src-by-overriding.drvPath
        ];
        expected = [
          true
          ruamel_0_17_21-src.drvPath
        ];
      };

      hash-overridability-outPath = {
        expr =
          lib.isString ruamel_0_17_21-src-by-overriding.outPath
          && ruamel_0_17_21-src-by-overriding.outPath == ruamel_0_17_21-src.outPath;
        expected = true;
        expr = [
          (lib.isString ruamel_0_17_21-src-by-overriding.outPath)
          ruamel_0_17_21-src-by-overriding.outPath
        ];
        expected = [
          true
          ruamel_0_17_21-src.outPath
        ];
      };
    };

@@ -249,44 +257,32 @@ let
      pet-vendored = pet-foo.overrideAttrs { vendorHash = null; };
    in
    {
      buildGoModule-overrideAttrs = {
        expr =
          lib.all
            (
              attrPath:
      buildGoModule-overrideAttrs =
        let
                attrPathPretty = lib.concatStringsSep "." attrPath;
                valueNative = lib.getAttrFromPath attrPath pet_0_4_0;
                valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden;
          getComparingAttrs = p: {
            inherit (p)
              drvPath
              name
              pname
              version
              vendorHash
              ;
            goModules = {
              inherit (p.goModules)
                drvPath
                name
                outPath
                ;
            };
          };
        in
              lib.warnIfNot (valueNative == valueOverridden)
                "pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})"
                true
            )
            [
              [ "drvPath" ]
              [ "name" ]
              [ "pname" ]
              [ "version" ]
              [ "vendorHash" ]
              [
                "goModules"
                "drvPath"
              ]
              [
                "goModules"
                "name"
              ]
              [
                "goModules"
                "outputHash"
              ]
            ];
        expected = true;
        {
          expr = getComparingAttrs pet_0_4_0-overridden;
          expected = getComparingAttrs pet_0_4_0;
        };
      buildGoModule-goModules-overrideAttrs = {
        expr = pet-foo.goModules.FOO == "foo";
        expected = true;
        expr = pet-foo.goModules.FOO;
        expected = "foo";
      };
      buildGoModule-goModules-overrideAttrs-vendored = {
        expr = lib.isString pet-vendored.drvPath;