I'm sorry but checking the name of the function arguments to be "final" and "prev" is just absurd. That's like worst of type-checking-meets-static-analysis. And the error message of the second `throw` was not even good, as it mixed all three failure cases together. Change-Id: Id4244171123dd8a228be71ce9f04d8e9f647c111
114 lines
1.8 KiB
Bash
114 lines
1.8 KiB
Bash
source common.sh
|
|
|
|
flakeDir=$TEST_ROOT/flake3
|
|
mkdir -p $flakeDir
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
overlay = final: prev: {
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
nix flake check $flakeDir
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
overlay = finalll: prev: {
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
(nix flake check $flakeDir)
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
overlay = one: two: three: {
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
(! nix flake check $flakeDir)
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
overlay = one: {
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
(! nix flake check $flakeDir)
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self, ... }: {
|
|
overlays.x86_64-linux.foo = final: prev: {
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
checkRes=$(nix flake check $flakeDir 2>&1 && fail "nix flake check --all-systems should have failed" || true)
|
|
echo "$checkRes" | grepQuiet "error: overlay is not a function, but a set instead"
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
nixosModules.foo = {
|
|
a.b.c = 123;
|
|
foo = true;
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
nix flake check $flakeDir
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
nixosModules.foo = assert false; {
|
|
a.b.c = 123;
|
|
foo = true;
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
(! nix flake check $flakeDir)
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
nixosModule = { config, pkgs, ... }: {
|
|
a.b.c = 123;
|
|
};
|
|
};
|
|
}
|
|
EOF
|
|
|
|
nix flake check $flakeDir
|
|
|
|
cat > $flakeDir/flake.nix <<EOF
|
|
{
|
|
outputs = { self }: {
|
|
packages.system-1.default = "foo";
|
|
packages.system-2.default = "bar";
|
|
};
|
|
}
|
|
EOF
|
|
|
|
nix flake check $flakeDir
|
|
|
|
checkRes=$(nix flake check --all-systems --keep-going $flakeDir 2>&1 && fail "nix flake check --all-systems should have failed" || true)
|
|
echo "$checkRes" | grepQuiet "packages.system-1.default"
|
|
echo "$checkRes" | grepQuiet "packages.system-2.default"
|