aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2009-05-15 12:35:23 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2009-05-15 12:35:23 +0000
commitd407d572fdc72f4eb14cc0f37d7d61446425b663 (patch)
tree039d1409f7bdd30c2e953cf894b06b858db3a6f3 /tests
parente42975490fa96e811c9fd80435ce20c26f8603f8 (diff)
* Some syntactic sugar for attribute sets: allow {x.y.z = ...;} as a
shorthand for {x = {y = {z = ...;};};}. This is especially useful for NixOS configuration files, e.g. { services = { sshd = { enable = true; port = 2022; }; }; } can now be written as { services.sshd.enable = true; services.sshd.port = 2022; } However, it is currently not permitted to write { services.sshd = {enable = true;}; services.sshd.port = 2022; } as this is considered a duplicate definition of `services.sshd'.
Diffstat (limited to 'tests')
-rw-r--r--tests/lang/eval-okay-attrs3.exp1
-rw-r--r--tests/lang/eval-okay-attrs3.nix22
-rw-r--r--tests/lang/parse-fail-dup-attrs-4.nix4
-rw-r--r--tests/lang/parse-fail-dup-attrs-5.nix4
-rw-r--r--tests/lang/parse-fail-dup-attrs-6.nix4
5 files changed, 35 insertions, 0 deletions
diff --git a/tests/lang/eval-okay-attrs3.exp b/tests/lang/eval-okay-attrs3.exp
new file mode 100644
index 000000000..d2c7555c1
--- /dev/null
+++ b/tests/lang/eval-okay-attrs3.exp
@@ -0,0 +1 @@
+Str("foo 22 80 itchyxac",[])
diff --git a/tests/lang/eval-okay-attrs3.nix b/tests/lang/eval-okay-attrs3.nix
new file mode 100644
index 000000000..f29de11fe
--- /dev/null
+++ b/tests/lang/eval-okay-attrs3.nix
@@ -0,0 +1,22 @@
+let
+
+ config =
+ {
+ services.sshd.enable = true;
+ services.sshd.port = 22;
+ services.httpd.port = 80;
+ hostName = "itchy";
+ a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z = "x";
+ foo = {
+ a = "a";
+ b.c = "c";
+ };
+ };
+
+in
+ if config.services.sshd.enable
+ then "foo ${toString config.services.sshd.port} ${toString config.services.httpd.port} ${config.hostName}"
+ + "${config.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z}"
+ + "${config.foo.a}"
+ + "${config.foo.b.c}"
+ else "bar"
diff --git a/tests/lang/parse-fail-dup-attrs-4.nix b/tests/lang/parse-fail-dup-attrs-4.nix
new file mode 100644
index 000000000..77417432b
--- /dev/null
+++ b/tests/lang/parse-fail-dup-attrs-4.nix
@@ -0,0 +1,4 @@
+{
+ services.ssh.port = 22;
+ services.ssh.port = 23;
+}
diff --git a/tests/lang/parse-fail-dup-attrs-5.nix b/tests/lang/parse-fail-dup-attrs-5.nix
new file mode 100644
index 000000000..f4b9efd0c
--- /dev/null
+++ b/tests/lang/parse-fail-dup-attrs-5.nix
@@ -0,0 +1,4 @@
+{
+ services.ssh = { enable = true; };
+ services.ssh.port = 23;
+}
diff --git a/tests/lang/parse-fail-dup-attrs-6.nix b/tests/lang/parse-fail-dup-attrs-6.nix
new file mode 100644
index 000000000..ae6d7a769
--- /dev/null
+++ b/tests/lang/parse-fail-dup-attrs-6.nix
@@ -0,0 +1,4 @@
+{
+ services.ssh.port = 23;
+ services.ssh = { enable = true; };
+}