mirror of
https://github.com/NixOS/nix
synced 2024-09-20 23:28:26 -04:00
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/ ```
27 lines
917 B
Bash
27 lines
917 B
Bash
#!/usr/bin/env bash
|
|
|
|
source common.sh
|
|
|
|
# In the corresponding nix file, we have two derivations: the first, named root,
|
|
# is a normal recursive derivation, while the second, named dependent, has the
|
|
# new outputHashMode "text". Note that in "dependent", we don't refer to the
|
|
# build output of root, but only to the path of the drv file. For this reason,
|
|
# we only need to:
|
|
#
|
|
# - instantiate the root derivation
|
|
# - build the dependent derivation
|
|
# - check that the path of the output coincides with that of the original derivation
|
|
|
|
drv=$(nix-instantiate ./text-hashed-output.nix -A hello)
|
|
nix show-derivation "$drv"
|
|
|
|
drvProducingDrv=$(nix-instantiate ./text-hashed-output.nix -A producingDrv)
|
|
nix show-derivation "$drvProducingDrv"
|
|
|
|
out1=$(nix-build ./text-hashed-output.nix -A producingDrv --no-out-link)
|
|
|
|
nix path-info $drv --derivation --json | jq
|
|
nix path-info $out1 --derivation --json | jq
|
|
|
|
test $out1 == $drv
|