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)
30 lines
1 KiB
Bash
30 lines
1 KiB
Bash
source common.sh
|
|
|
|
export NIX_TESTS_CA_BY_DEFAULT=1
|
|
|
|
drvPath=$(nix-instantiate ../simple.nix)
|
|
|
|
nix derivation show $drvPath | jq .[] > $TEST_HOME/simple.json
|
|
|
|
drvPath2=$(nix derivation add < $TEST_HOME/simple.json)
|
|
|
|
[[ "$drvPath" = "$drvPath2" ]]
|
|
|
|
# Content-addressed derivations can be renamed.
|
|
jq '.name = "foo"' < $TEST_HOME/simple.json > $TEST_HOME/foo.json
|
|
drvPath3=$(nix derivation add --dry-run < $TEST_HOME/foo.json)
|
|
# With --dry-run nothing is actually written
|
|
[[ ! -e "$drvPath3" ]]
|
|
|
|
# But the JSON is rejected without the experimental feature
|
|
expectStderr 1 nix derivation add < $TEST_HOME/foo.json --experimental-features nix-command | grepQuiet "experimental Nix feature 'ca-derivations' is disabled"
|
|
|
|
# Without --dry-run it is actually written
|
|
drvPath4=$(nix derivation add < $TEST_HOME/foo.json)
|
|
[[ "$drvPath4" = "$drvPath3" ]]
|
|
[[ -e "$drvPath3" ]]
|
|
|
|
# The modified derivation read back as JSON matches
|
|
nix derivation show $drvPath3 | jq .[] > $TEST_HOME/foo-read.json
|
|
diff $TEST_HOME/foo.json $TEST_HOME/foo-read.json
|