forked from lix-project/lix
68c81c7375
I think it is bad for these reasons when `tests/` contains a mix of functional and integration tests - Concepts is harder to understand, the documentation makes a good unit vs functional vs integration distinction, but when the integration tests are just two subdirs within `tests/` this is not clear. - Source filtering in the `flake.nix` is more complex. We need to filter out some of the dirs from `tests/`, rather than simply pick the dirs we want and take all of them. This is a good sign the structure of what we are trying to do is not matching the structure of the files. With this change we have a clean: ```shell-session $ git show 'HEAD:tests' tree HEAD:tests functional/ installer/ nixos/ ```
43 lines
1.1 KiB
Bash
43 lines
1.1 KiB
Bash
source common.sh
|
||
|
||
cp ../simple.nix ../simple.builder.sh ../config.nix $TEST_HOME
|
||
|
||
cd $TEST_HOME
|
||
|
||
rm -f post-hook-ran
|
||
cat <<EOF > echoing-post-hook.sh
|
||
#!/bin/sh
|
||
|
||
echo "ThePostHookRan as \$0" > $PWD/post-hook-ran
|
||
EOF
|
||
chmod +x echoing-post-hook.sh
|
||
|
||
cat <<EOF > flake.nix
|
||
{
|
||
nixConfig.post-build-hook = ./echoing-post-hook.sh;
|
||
nixConfig.allow-dirty = false; # See #5621
|
||
|
||
outputs = a: {
|
||
packages.$system.default = import ./simple.nix;
|
||
};
|
||
}
|
||
EOF
|
||
|
||
# Without --accept-flake-config, the post hook should not run.
|
||
nix build < /dev/null
|
||
(! [[ -f post-hook-ran ]])
|
||
clearStore
|
||
|
||
nix build --accept-flake-config
|
||
test -f post-hook-ran || fail "The post hook should have ran"
|
||
|
||
# Make sure that the path to the post hook doesn’t change if we change
|
||
# something in the flake.
|
||
# Otherwise the user would have to re-validate the setting each time.
|
||
mv post-hook-ran previous-post-hook-run
|
||
echo "# Dummy comment" >> flake.nix
|
||
clearStore
|
||
nix build --accept-flake-config
|
||
diff -q post-hook-ran previous-post-hook-run || \
|
||
fail "Both post hook runs should report the same filename"
|