forked from lix-project/lix
30dcc19d1f
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)
22 lines
739 B
Bash
Executable file
22 lines
739 B
Bash
Executable file
#!/usr/bin/env bash
|
||
|
||
# Regression test for https://github.com/NixOS/nix/issues/4858
|
||
|
||
source common.sh
|
||
|
||
requireDaemonNewerThan "2.4pre20210621"
|
||
|
||
# Get the output path of `rootCA`, and put some garbage instead
|
||
outPath="$(nix-build ./content-addressed.nix -A rootCA --no-out-link)"
|
||
nix-store --delete $(nix-store -q --referrers-closure "$outPath")
|
||
touch "$outPath"
|
||
|
||
# The build should correctly remove the garbage and put the expected path instead
|
||
nix-build ./content-addressed.nix -A rootCA --no-out-link
|
||
|
||
# Rebuild it. This shouldn’t overwrite the existing path
|
||
oldInode=$(stat -c '%i' "$outPath")
|
||
nix-build ./content-addressed.nix -A rootCA --no-out-link --arg seed 2
|
||
newInode=$(stat -c '%i' "$outPath")
|
||
[[ "$oldInode" == "$newInode" ]]
|