about summary refs log tree commit diff
path: root/tests/structured-attrs.nix
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-10-25T11·01+0200
committerEelco Dolstra <edolstra@gmail.com>2017-10-25T11·01+0200
commit2d5b1b24bf70a498e4c0b378704cfdb6471cc699 (patch)
tree80e7c28cb3431ed6a3fbb080f769f9016ea564c5 /tests/structured-attrs.nix
parentac12517f3e969db9fb4834fdfd2da63101ffd3de (diff)
Pass lists/attrsets to bash as (associative) arrays
Diffstat (limited to 'tests/structured-attrs.nix')
-rw-r--r--tests/structured-attrs.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/structured-attrs.nix b/tests/structured-attrs.nix
new file mode 100644
index 000000000000..2adc6b6c34f3
--- /dev/null
+++ b/tests/structured-attrs.nix
@@ -0,0 +1,47 @@
+with import ./config.nix;
+
+mkDerivation {
+  name = "structured";
+
+  __structuredAttrs = true;
+
+  buildCommand = ''
+    set -x
+
+    [[ $int = 123456789 ]]
+    [[ -z $float ]]
+    [[ -n $boolTrue ]]
+    [[ -z $boolFalse ]]
+    [[ -n ''${hardening[format]} ]]
+    [[ -z ''${hardening[fortify]} ]]
+    [[ ''${#buildInputs[@]} = 7 ]]
+    [[ ''${buildInputs[2]} = c ]]
+    [[ -v nothing ]]
+    [[ -z $nothing ]]
+
+    mkdir ''${outputs[out]}
+    echo bar > $dest
+  '';
+
+  buildInputs = [ "a" "b" "c" 123 "'" "\"" null ];
+
+  hardening.format = true;
+  hardening.fortify = false;
+
+  outer.inner = [ 1 2 3 ];
+
+  int = 123456789;
+
+  float = 123.456;
+
+  boolTrue = true;
+  boolFalse = false;
+
+  nothing = null;
+
+  dest = "${placeholder "out"}/foo";
+
+  "foo bar" = "BAD";
+  "1foobar" = "BAD";
+  "foo$" = "BAD";
+}