44 lines
850 B
Nix
44 lines
850 B
Nix
|
/*
|
||
|
Run with:
|
||
|
|
||
|
cd nixpkgs
|
||
|
nix-build -A tests.trivial-builders.writeCBin
|
||
|
*/
|
||
|
|
||
|
{ lib, writeCBin, runCommand }:
|
||
|
let
|
||
|
output = "hello";
|
||
|
pkg = writeCBin "test-script" ''
|
||
|
#include <stdio.h>
|
||
|
int main () {
|
||
|
printf("hello\n");
|
||
|
return 0;
|
||
|
}
|
||
|
'';
|
||
|
in
|
||
|
assert pkg.meta.mainProgram == "test-script";
|
||
|
runCommand "test-writeCBin" { } ''
|
||
|
|
||
|
echo Testing with getExe...
|
||
|
|
||
|
target=${lib.getExe pkg}
|
||
|
expected=${lib.escapeShellArg output}
|
||
|
got=$("$target")
|
||
|
if [[ "$got" != "$expected" ]]; then
|
||
|
echo "wrong output: expected $expected, got $got"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo Testing with makeBinPath...
|
||
|
|
||
|
PATH="${lib.makeBinPath [ pkg ]}:$PATH"
|
||
|
got=$(test-script)
|
||
|
if [[ "$got" != "$expected" ]]; then
|
||
|
echo "wrong output: expected $expected, got $got"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
touch $out
|
||
|
''
|
||
|
|