forked from lix-project/lix
![John Ericson](/assets/img/avatar_default.png)
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/ ``` (cherry picked from commit 68c81c737571794f7246db53fb4774e94fcf4b7e)
27 lines
1,004 B
Bash
27 lines
1,004 B
Bash
source ./common.sh
|
||
|
||
requireDaemonNewerThan "2.4pre20210625"
|
||
|
||
export REMOTE_STORE_DIR="$TEST_ROOT/remote_store"
|
||
export REMOTE_STORE="file://$REMOTE_STORE_DIR"
|
||
|
||
rm -rf $REMOTE_STORE_DIR
|
||
clearStore
|
||
|
||
# Build dep1 and push that to the binary cache.
|
||
# This entails building (and pushing) current-time.
|
||
nix copy --to "$REMOTE_STORE" -f nondeterministic.nix dep1
|
||
clearStore
|
||
sleep 2 # To make sure that `$(date)` will be different
|
||
# Build dep2.
|
||
# As we’ve cleared the cache, we’ll have to rebuild current-time. And because
|
||
# the current time isn’t the same as before, this will yield a new (different)
|
||
# realisation
|
||
nix build -f nondeterministic.nix dep2 --no-link
|
||
|
||
# Build something that depends both on dep1 and dep2.
|
||
# If everything goes right, we should rebuild dep2 rather than fetch it from
|
||
# the cache (because that would mean duplicating `current-time` in the closure),
|
||
# and have `dep1 == dep2`.
|
||
nix build --substituters "$REMOTE_STORE" -f nondeterministic.nix toplevel --no-require-sigs --no-link
|