Loading lib/tests/modules.sh +9 −9 Original line number Diff line number Diff line Loading @@ -542,21 +542,21 @@ checkConfigOutput '^"pear\\npear"$' config.twice.raw ./merge-module-with-key.nix # Declaration positions # Line should be present for direct options checkConfigOutput '^10$' options.imported.line10.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' options.imported.line10.declarationPositions.0.file ./declaration-positions.nix checkConfigOutput '^14$' options.imported.line14.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' options.imported.line14.declarationPositions.0.file ./declaration-positions.nix # Generated options may not have line numbers but they will at least get the # right file checkConfigOutput '/declaration-positions.nix"$' options.generated.line18.declarationPositions.0.file ./declaration-positions.nix checkConfigOutput '^null$' options.generated.line18.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' options.generated.line22.declarationPositions.0.file ./declaration-positions.nix checkConfigOutput '^null$' options.generated.line22.declarationPositions.0.line ./declaration-positions.nix # Submodules don't break it checkConfigOutput '^39$' config.submoduleLine34.submodDeclLine39.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' config.submoduleLine34.submodDeclLine39.0.file ./declaration-positions.nix checkConfigOutput '^45$' config.submoduleLine38.submodDeclLine45.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' config.submoduleLine38.submodDeclLine45.0.file ./declaration-positions.nix # New options under freeform submodules get collected into the parent submodule # (consistent with .declarations behaviour, but weird; notably appears in system.build) checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.1.line ./declaration-positions.nix checkConfigOutput '^38|27$' options.submoduleLine38.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '^38|27$' options.submoduleLine38.declarationPositions.1.line ./declaration-positions.nix # nested options work checkConfigOutput '^30$' options.nested.nestedLine30.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '^34$' options.nested.nestedLine34.declarationPositions.0.line ./declaration-positions.nix cat <<EOF ====== module tests ====== Loading lib/tests/modules/declaration-positions.nix +19 −11 Original line number Diff line number Diff line { lib, options, ... }: let discardPositions = lib.mapAttrs (k: v: v); let discardPositions = lib.mapAttrs (k: v: v); in # unsafeGetAttrPos is unspecified best-effort behavior, so we only want to consider this test on an evaluator that satisfies some basic assumptions about this function. assert builtins.unsafeGetAttrPos "a" { a = true; } != null; assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; { imports = [ { options.imported.line10 = lib.mkOption { options.imported.line14 = lib.mkOption { type = lib.types.int; }; Loading @@ -15,35 +19,39 @@ assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; # programs.firefox.nativeMessagingHosts.ff2mpv. We don't expect to get # line numbers for these, but we can fall back on knowing the file. options.generated = discardPositions { line18 = lib.mkOption { line22 = lib.mkOption { type = lib.types.int; }; }; options.submoduleLine34.extraOptLine23 = lib.mkOption { options.submoduleLine38.extraOptLine27 = lib.mkOption { default = 1; type = lib.types.int; }; } ]; options.nested.nestedLine30 = lib.mkOption { options.nested.nestedLine34 = lib.mkOption { type = lib.types.int; }; options.submoduleLine34 = lib.mkOption { options.submoduleLine38 = lib.mkOption { default = { }; type = lib.types.submoduleWith { modules = [ ({ options, ... }: { options.submodDeclLine39 = lib.mkOption { }; }) ( { options, ... }: { options.submodDeclLine45 = lib.mkOption { }; } ) { freeformType = with lib.types; lazyAttrsOf (uniq unspecified); } ]; }; }; config = { submoduleLine34.submodDeclLine39 = (options.submoduleLine34.type.getSubOptions [ ]).submodDeclLine39.declarationPositions; submoduleLine38.submodDeclLine45 = (options.submoduleLine38.type.getSubOptions [ ]).submodDeclLine45.declarationPositions; }; } pkgs/applications/editors/vim/plugins/get-plugins.nix +21 −12 Original line number Diff line number Diff line Loading @@ -6,14 +6,23 @@ let generated = callPackage <localpkgs/pkgs/applications/editors/vim/plugins/generated.nix> { inherit buildNeovimPlugin buildVimPlugin; } { } { }; hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value; getChecksum = name: value: if hasChecksum value then { hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath [ "src" "outputHash" ] value; getChecksum = name: value: if hasChecksum value then { submodules = value.src.fetchSubmodules or false; sha256 = value.src.outputHash; rev = value.src.rev; } else null; } else null; checksums = lib.mapAttrs getChecksum generated; in lib.filterAttrs (n: v: v != null) checksums pkgs/build-support/trivial-builders/test/references/apath.txt 0 → 100644 +1 −0 Original line number Diff line number Diff line Just some text pkgs/build-support/trivial-builders/test/references/samples.nix +2 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,8 @@ norefsDup = writeText "hi" "hello"; helloRef = writeText "hi" "hello ${hello}"; helloRefDup = writeText "hi" "hello ${hello}"; path = ./samples.nix; pathLike.outPath = ./samples.nix; path = ./apath.txt; pathLike.outPath = ./apath.txt; helloFigletRef = writeText "hi" "hello ${hello} ${figlet}"; selfRef = runCommand "self-ref-1" { } "echo $out >$out"; selfRef2 = runCommand "self-ref-2" { } ''echo "${figlet}, $out" >$out''; Loading Loading
lib/tests/modules.sh +9 −9 Original line number Diff line number Diff line Loading @@ -542,21 +542,21 @@ checkConfigOutput '^"pear\\npear"$' config.twice.raw ./merge-module-with-key.nix # Declaration positions # Line should be present for direct options checkConfigOutput '^10$' options.imported.line10.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' options.imported.line10.declarationPositions.0.file ./declaration-positions.nix checkConfigOutput '^14$' options.imported.line14.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' options.imported.line14.declarationPositions.0.file ./declaration-positions.nix # Generated options may not have line numbers but they will at least get the # right file checkConfigOutput '/declaration-positions.nix"$' options.generated.line18.declarationPositions.0.file ./declaration-positions.nix checkConfigOutput '^null$' options.generated.line18.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' options.generated.line22.declarationPositions.0.file ./declaration-positions.nix checkConfigOutput '^null$' options.generated.line22.declarationPositions.0.line ./declaration-positions.nix # Submodules don't break it checkConfigOutput '^39$' config.submoduleLine34.submodDeclLine39.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' config.submoduleLine34.submodDeclLine39.0.file ./declaration-positions.nix checkConfigOutput '^45$' config.submoduleLine38.submodDeclLine45.0.line ./declaration-positions.nix checkConfigOutput '/declaration-positions.nix"$' config.submoduleLine38.submodDeclLine45.0.file ./declaration-positions.nix # New options under freeform submodules get collected into the parent submodule # (consistent with .declarations behaviour, but weird; notably appears in system.build) checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.1.line ./declaration-positions.nix checkConfigOutput '^38|27$' options.submoduleLine38.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '^38|27$' options.submoduleLine38.declarationPositions.1.line ./declaration-positions.nix # nested options work checkConfigOutput '^30$' options.nested.nestedLine30.declarationPositions.0.line ./declaration-positions.nix checkConfigOutput '^34$' options.nested.nestedLine34.declarationPositions.0.line ./declaration-positions.nix cat <<EOF ====== module tests ====== Loading
lib/tests/modules/declaration-positions.nix +19 −11 Original line number Diff line number Diff line { lib, options, ... }: let discardPositions = lib.mapAttrs (k: v: v); let discardPositions = lib.mapAttrs (k: v: v); in # unsafeGetAttrPos is unspecified best-effort behavior, so we only want to consider this test on an evaluator that satisfies some basic assumptions about this function. assert builtins.unsafeGetAttrPos "a" { a = true; } != null; assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; { imports = [ { options.imported.line10 = lib.mkOption { options.imported.line14 = lib.mkOption { type = lib.types.int; }; Loading @@ -15,35 +19,39 @@ assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; # programs.firefox.nativeMessagingHosts.ff2mpv. We don't expect to get # line numbers for these, but we can fall back on knowing the file. options.generated = discardPositions { line18 = lib.mkOption { line22 = lib.mkOption { type = lib.types.int; }; }; options.submoduleLine34.extraOptLine23 = lib.mkOption { options.submoduleLine38.extraOptLine27 = lib.mkOption { default = 1; type = lib.types.int; }; } ]; options.nested.nestedLine30 = lib.mkOption { options.nested.nestedLine34 = lib.mkOption { type = lib.types.int; }; options.submoduleLine34 = lib.mkOption { options.submoduleLine38 = lib.mkOption { default = { }; type = lib.types.submoduleWith { modules = [ ({ options, ... }: { options.submodDeclLine39 = lib.mkOption { }; }) ( { options, ... }: { options.submodDeclLine45 = lib.mkOption { }; } ) { freeformType = with lib.types; lazyAttrsOf (uniq unspecified); } ]; }; }; config = { submoduleLine34.submodDeclLine39 = (options.submoduleLine34.type.getSubOptions [ ]).submodDeclLine39.declarationPositions; submoduleLine38.submodDeclLine45 = (options.submoduleLine38.type.getSubOptions [ ]).submodDeclLine45.declarationPositions; }; }
pkgs/applications/editors/vim/plugins/get-plugins.nix +21 −12 Original line number Diff line number Diff line Loading @@ -6,14 +6,23 @@ let generated = callPackage <localpkgs/pkgs/applications/editors/vim/plugins/generated.nix> { inherit buildNeovimPlugin buildVimPlugin; } { } { }; hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value; getChecksum = name: value: if hasChecksum value then { hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath [ "src" "outputHash" ] value; getChecksum = name: value: if hasChecksum value then { submodules = value.src.fetchSubmodules or false; sha256 = value.src.outputHash; rev = value.src.rev; } else null; } else null; checksums = lib.mapAttrs getChecksum generated; in lib.filterAttrs (n: v: v != null) checksums
pkgs/build-support/trivial-builders/test/references/apath.txt 0 → 100644 +1 −0 Original line number Diff line number Diff line Just some text
pkgs/build-support/trivial-builders/test/references/samples.nix +2 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,8 @@ norefsDup = writeText "hi" "hello"; helloRef = writeText "hi" "hello ${hello}"; helloRefDup = writeText "hi" "hello ${hello}"; path = ./samples.nix; pathLike.outPath = ./samples.nix; path = ./apath.txt; pathLike.outPath = ./apath.txt; helloFigletRef = writeText "hi" "hello ${hello} ${figlet}"; selfRef = runCommand "self-ref-1" { } "echo $out >$out"; selfRef2 = runCommand "self-ref-2" { } ''echo "${figlet}, $out" >$out''; Loading