forked from lix-project/lix
1f3b0ede7d
recursive outputs are properly rejected. * Add a (also failing) test for "nix-build -A <output-name>".
47 lines
1.1 KiB
Nix
47 lines
1.1 KiB
Nix
with import ./config.nix;
|
|
|
|
rec {
|
|
|
|
a = mkDerivation {
|
|
name = "multiple-outputs-a";
|
|
outputs = [ "first" "second" ];
|
|
builder = builtins.toFile "builder.sh"
|
|
''
|
|
mkdir $first $second
|
|
test -z $all
|
|
echo "second" > $first/file
|
|
echo "first" > $second/file
|
|
'';
|
|
helloString = "Hello, world!";
|
|
};
|
|
|
|
b = mkDerivation {
|
|
defaultOutput = assert a.second.helloString == "Hello, world!"; a;
|
|
firstOutput = a.first.first;
|
|
secondOutput = a.second.first.first.second.second.first.second;
|
|
allOutputs = a.all;
|
|
name = "multiple-outputs-b";
|
|
builder = builtins.toFile "builder.sh"
|
|
''
|
|
mkdir $out
|
|
test "$firstOutput $secondOutput" = "$allOutputs"
|
|
test "$defaultOutput" = "$firstOutput"
|
|
test "$(cat $firstOutput/file)" = "second"
|
|
test "$(cat $secondOutput/file)" = "first"
|
|
echo "success" > $out/file
|
|
'';
|
|
};
|
|
|
|
cyclic = (mkDerivation {
|
|
name = "cyclic-outputs";
|
|
outputs = [ "a" "b" ];
|
|
builder = builtins.toFile "builder.sh"
|
|
''
|
|
mkdir $a $b
|
|
echo $a > $b/foo
|
|
echo $b > $a/bar
|
|
'';
|
|
}).a;
|
|
|
|
}
|