nix-super/tests/multiple-outputs.nix
Eelco Dolstra 1f3b0ede7d * Add a (currently failing) test that checks whether mutually
recursive outputs are properly rejected.
* Add a (also failing) test for "nix-build -A <output-name>".
2011-12-20 17:08:43 +00:00

46 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;
}