diff --git a/tests/eval-one.sh b/tests/eval-one.sh new file mode 100755 index 0000000..dda8acf --- /dev/null +++ b/tests/eval-one.sh @@ -0,0 +1,35 @@ +#!/bin/sh +set -u +here=$(cd "$(dirname "$0")" && pwd) + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +profile=$1 +logfile=$(mktemp) + +# shellcheck disable=SC2039 +echo -n "evaluating $profile: " + +nix-build \ + '' \ + -I "nixos-config=$here/eval-test.nix" \ + -I "nixos-hardware-profile=$profile" \ + --dry-run \ + --no-out-link \ + --show-trace \ + -A system > "$logfile" 2>&1 +ret=$? + +if [ "$ret" -gt 0 ]; then + echo ERROR + echo ===================================================================== >&2 + cat "$logfile" >&2 +else + echo OK +fi + +rm "$logfile" +exit "$ret" diff --git a/tests/eval-test.sh b/tests/eval-test.sh index 0e7fca1..740f06f 100755 --- a/tests/eval-test.sh +++ b/tests/eval-test.sh @@ -1,15 +1,11 @@ #!/bin/sh +set -efu +cd "$(dirname "$0")/.." || exit 1 -set -e - -cd "$(dirname "$0")/.." +echo "### Evaluating all profiles ###" +echo +# shellcheck disable=SC2044 for profile in $(find . -name default.nix); do - echo evaluating $profile >&2 - - nix-build '' \ - -I nixos-config=tests/eval-test.nix \ - -I nixos-hardware-profile=$profile \ - -A system \ - --dry-run + ./tests/eval-one.sh "$profile" done