diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 3a23766a17f53..3301a3d987ee8 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -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 < {}; +with import { }; let - inherit (vimUtils.override {inherit vim;}) buildVimPlugin; + inherit (vimUtils.override { inherit vim; }) buildVimPlugin; inherit (neovimUtils) buildNeovimPlugin; generated = callPackage { inherit buildNeovimPlugin buildVimPlugin; - } {} {}; - 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; + } { } { }; + 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; checksums = lib.mapAttrs getChecksum generated; in - lib.filterAttrs (n: v: v != null) checksums +lib.filterAttrs (n: v: v != null) checksums diff --git a/pkgs/build-support/trivial-builders/test/references/apath.txt b/pkgs/build-support/trivial-builders/test/references/apath.txt new file mode 100644 index 0000000000000..1258b0506057c --- /dev/null +++ b/pkgs/build-support/trivial-builders/test/references/apath.txt @@ -0,0 +1 @@ +Just some text diff --git a/pkgs/build-support/trivial-builders/test/references/samples.nix b/pkgs/build-support/trivial-builders/test/references/samples.nix index 3afb970c08aeb..5bafdcd8e7d07 100644 --- a/pkgs/build-support/trivial-builders/test/references/samples.nix +++ b/pkgs/build-support/trivial-builders/test/references/samples.nix @@ -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''; diff --git a/pkgs/test/haskell/cabalSdist/default.nix b/pkgs/test/haskell/cabalSdist/default.nix index c0a9d406a5039..4432e95ab56ec 100644 --- a/pkgs/test/haskell/cabalSdist/default.nix +++ b/pkgs/test/haskell/cabalSdist/default.nix @@ -1,7 +1,18 @@ -{ lib, haskellPackages, runCommand }: +{ lib, haskell, haskellPackages, runCommand }: let - localRaw = haskellPackages.callPackage ./local/generated.nix {}; + src = lib.fileset.toSource { + root = ./local; + fileset = lib.fileset.unions [ + ./local/app + ./local/CHANGELOG.md + ./local/local.cabal + ]; + }; + # This prevents the source from depending on the formatting of the ./local/generated.nix file + localRaw = haskell.lib.compose.overrideSrc { + inherit src; + } (haskellPackages.callPackage ./local/generated.nix {}); in lib.recurseIntoAttrs rec { @@ -20,14 +31,14 @@ lib.recurseIntoAttrs rec { assumptionLocalHasDirectReference = runCommand "localHasDirectReference" { drvPath = builtins.unsafeDiscardOutputDependency localRaw.drvPath; } '' - grep ${./local} $drvPath >/dev/null + grep ${src} $drvPath >/dev/null touch $out ''; localHasNoDirectReference = runCommand "localHasNoDirectReference" { drvPath = builtins.unsafeDiscardOutputDependency localFromCabalSdist.drvPath; } '' - grep -v ${./local} $drvPath >/dev/null + grep -v ${src} $drvPath >/dev/null touch $out ''; } diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix index 4c6fffd100a72..0d699900cf6d1 100644 --- a/pkgs/test/make-binary-wrapper/default.nix +++ b/pkgs/test/make-binary-wrapper/default.nix @@ -15,16 +15,25 @@ let makeGoldenTest = testname: runCommand "make-binary-wrapper-test-${testname}" env '' mkdir -p tmp/foo # for the chdir test - params=$(<"${./.}/${testname}.cmdline") + source=${lib.fileset.toSource { + root = ./.; + fileset = lib.fileset.unions [ + (./. + "/${testname}.cmdline") + (./. + "/${testname}.c") + (lib.fileset.maybeMissing (./. + "/${testname}.env")) + ]; + }} + + params=$(<"$source/${testname}.cmdline") eval "makeCWrapper /send/me/flags $params" > wrapper.c - diff wrapper.c "${./.}/${testname}.c" + diff wrapper.c "$source/${testname}.c" - if [ -f "${./.}/${testname}.env" ]; then + if [ -f "$source/${testname}.env" ]; then eval "makeWrapper ${envCheck} wrapped $params" env -i ./wrapped > env.txt sed "s#SUBST_ARGV0#${envCheck}#;s#SUBST_CWD#$PWD#" \ - "${./.}/${testname}.env" > golden-env.txt + "$source/${testname}.env" > golden-env.txt if ! diff env.txt golden-env.txt; then echo "env/argv should be:" cat golden-env.txt diff --git a/pkgs/tools/nix/info/multiuser.nix b/pkgs/tools/nix/info/multiuser.nix index 827d529876733..bfb110c67557f 100644 --- a/pkgs/tools/nix/info/multiuser.nix +++ b/pkgs/tools/nix/info/multiuser.nix @@ -1,12 +1,11 @@ let - pkgs = import {}; -in pkgs.runCommand "diagnostics-multiuser" - { } - '' - set -x - # no cache: ${toString builtins.currentTime} - # For reproducibility, nix always uses nixbld group: - # https://github.com/NixOS/nix/blob/1dd29d7aebae706f3e90a18bbfae727f2ed03c70/src/libstore/build.cc#L1896-L1908 - test "$(groups)" == "nixbld" - touch $out - '' + pkgs = import { }; +in +pkgs.runCommand "diagnostics-multiuser" { } '' + set -x + # no cache: ${toString builtins.currentTime} + # For reproducibility, nix always uses nixbld group: + # https://github.com/NixOS/nix/blob/1dd29d7aebae706f3e90a18bbfae727f2ed03c70/src/libstore/build.cc#L1896-L1908 + test "$(groups)" == "nixbld" + touch $out +'' diff --git a/pkgs/tools/nix/info/relaxedsandbox.nix b/pkgs/tools/nix/info/relaxedsandbox.nix index 625a6ecc39e07..9d5d1ce7d0fac 100644 --- a/pkgs/tools/nix/info/relaxedsandbox.nix +++ b/pkgs/tools/nix/info/relaxedsandbox.nix @@ -1,6 +1,7 @@ let - pkgs = import {}; -in pkgs.runCommand "diagnostics-sandbox" + pkgs = import { }; +in +pkgs.runCommand "diagnostics-sandbox" { __noChroot = true; } diff --git a/pkgs/tools/nix/info/sandbox.nix b/pkgs/tools/nix/info/sandbox.nix index fa4288c2f9442..f7237f5ecc8f8 100644 --- a/pkgs/tools/nix/info/sandbox.nix +++ b/pkgs/tools/nix/info/sandbox.nix @@ -1,10 +1,9 @@ let - pkgs = import {}; -in pkgs.runCommand "diagnostics-sandbox" - { } - '' - set -x - # no cache: ${toString builtins.currentTime} - test -d "$(dirname "$out")/../var/nix" - touch $out - '' + pkgs = import { }; +in +pkgs.runCommand "diagnostics-sandbox" { } '' + set -x + # no cache: ${toString builtins.currentTime} + test -d "$(dirname "$out")/../var/nix" + touch $out +''