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 68c81c7375
)
81 lines
1.6 KiB
Bash
81 lines
1.6 KiB
Bash
source ./common.sh
|
|
|
|
requireGit
|
|
|
|
|
|
test_subdir_self_path() {
|
|
baseDir=$TEST_ROOT/$RANDOM
|
|
flakeDir=$baseDir/b-low
|
|
mkdir -p $flakeDir
|
|
writeSimpleFlake $baseDir
|
|
writeSimpleFlake $flakeDir
|
|
|
|
echo all good > $flakeDir/message
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = inputs: rec {
|
|
packages.$system = rec {
|
|
default =
|
|
assert builtins.readFile ./message == "all good\n";
|
|
assert builtins.readFile (inputs.self + "/message") == "all good\n";
|
|
import ./simple.nix;
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
(
|
|
nix build $baseDir?dir=b-low --no-link
|
|
)
|
|
}
|
|
test_subdir_self_path
|
|
|
|
|
|
test_git_subdir_self_path() {
|
|
repoDir=$TEST_ROOT/repo-$RANDOM
|
|
createGitRepo $repoDir
|
|
flakeDir=$repoDir/b-low
|
|
mkdir -p $flakeDir
|
|
writeSimpleFlake $repoDir
|
|
writeSimpleFlake $flakeDir
|
|
|
|
echo all good > $flakeDir/message
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = inputs: rec {
|
|
packages.$system = rec {
|
|
default =
|
|
assert builtins.readFile ./message == "all good\n";
|
|
assert builtins.readFile (inputs.self + "/message") == "all good\n";
|
|
assert inputs.self.outPath == inputs.self.sourceInfo.outPath + "/b-low";
|
|
import ./simple.nix;
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
(
|
|
cd $flakeDir
|
|
git add .
|
|
git commit -m init
|
|
# nix build
|
|
)
|
|
|
|
clientDir=$TEST_ROOT/client-$RANDOM
|
|
mkdir -p $clientDir
|
|
cat > $clientDir/flake.nix <<EOF
|
|
{
|
|
inputs.inp = {
|
|
type = "git";
|
|
url = "file://$repoDir";
|
|
dir = "b-low";
|
|
};
|
|
|
|
outputs = inputs: rec {
|
|
packages = inputs.inp.packages;
|
|
};
|
|
}
|
|
EOF
|
|
nix build $clientDir --no-link
|
|
|
|
}
|
|
test_git_subdir_self_path
|