about summary refs log tree commit diff
path: root/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2023-07-26 13:46:42 +0200
committerRobert Hensing <robert@roberthensing.nl>2023-07-26 18:22:26 +0200
commitd1dc8384cab7ef1bf0a79510295c1e91da0556ff (patch)
treeb8b28b818f4c82ab8be945e17fe235d898fafb9a /pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix
parent86af7da8c40276e09d8085b155c57bd6de85ffd2 (diff)
writeCBin: Add meta.mainProgram
... and add tests.
Diffstat (limited to 'pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix')
-rw-r--r--pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix b/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix
new file mode 100644
index 0000000000000..e93410e25bcb8
--- /dev/null
+++ b/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix
@@ -0,0 +1,39 @@
+/*
+  Run with:
+
+      cd nixpkgs
+      nix-build -A tests.trivial-builders.writeShellScriptBin
+*/
+
+{ lib, writeShellScriptBin, runCommand }:
+let
+  output = "hello";
+  pkg = writeShellScriptBin "test-script" ''
+    echo ${lib.escapeShellArg output}
+  '';
+in
+  assert pkg.meta.mainProgram == "test-script";
+  runCommand "test-writeShellScriptBin" { } ''
+
+    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
+  ''
+