diff options
Diffstat (limited to 'pkgs/build-support/trivial-builders/test.sh')
-rwxr-xr-x | pkgs/build-support/trivial-builders/test.sh | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/build-support/trivial-builders/test.sh b/pkgs/build-support/trivial-builders/test.sh new file mode 100755 index 000000000000..3e21b0008155 --- /dev/null +++ b/pkgs/build-support/trivial-builders/test.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +# -------------------------------------------------------------------------- # +# +# trivial-builders test +# +# -------------------------------------------------------------------------- # +# +# This file can be run independently (quick): +# +# $ pkgs/build-support/trivial-builders/test.sh +# +# or in the build sandbox with a ~20s VM overhead +# +# $ nix-build -A tests.trivial-builders +# +# -------------------------------------------------------------------------- # + +# strict bash +set -euo pipefail + +# debug +# set -x +# PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + +cd "$(dirname ${BASH_SOURCE[0]})" # nixpkgs root + +testDirectReferences() { + expr="$1" + diff -U3 \ + <(sort <$(nix-build --no-out-link --expr "with import ../../.. {}; writeDirectReferencesToFile ($expr)")) \ + <(nix-store -q --references $(nix-build --no-out-link --expr "with import ../../.. {}; ($expr)") | sort) +} + +testDirectReferences 'hello' +testDirectReferences 'figlet' +testDirectReferences 'writeText "hi" "hello"' +testDirectReferences 'writeText "hi" "hello ${hello}"' +testDirectReferences 'writeText "hi" "hello ${hello} ${figlet}"' + + + +testClosure() { + expr="$1" + diff -U3 \ + <(sort <$(nix-build --no-out-link --expr "with import ../../.. {}; writeReferencesToFile ($expr)")) \ + <(nix-store -q --requisites $(nix-build --no-out-link --expr "with import ../../.. {}; ($expr)") | sort) +} + +testClosure 'hello' +testClosure 'figlet' +testClosure 'writeText "hi" "hello"' +testClosure 'writeText "hi" "hello ${hello}"' +testClosure 'writeText "hi" "hello ${hello} ${figlet}"' + + +echo 'OK!' |