about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/common.sh.in5
-rw-r--r--tests/dependencies.nix2
-rw-r--r--tests/lang.sh10
-rw-r--r--tests/lang/eval-okay-arithmetic.exp2
-rw-r--r--tests/lang/eval-okay-attrnames.exp2
-rw-r--r--tests/lang/eval-okay-attrs.exp2
-rw-r--r--tests/lang/eval-okay-attrs2.exp2
-rw-r--r--tests/lang/eval-okay-attrs3.exp2
-rw-r--r--tests/lang/eval-okay-autoargs.exp2
-rw-r--r--tests/lang/eval-okay-builtins.exp2
-rw-r--r--tests/lang/eval-okay-concat.exp2
-rw-r--r--tests/lang/eval-okay-context.exp2
-rw-r--r--tests/lang/eval-okay-empty-args.exp2
-rw-r--r--tests/lang/eval-okay-flatten.exp2
-rw-r--r--tests/lang/eval-okay-getenv.exp2
-rw-r--r--tests/lang/eval-okay-if.exp2
-rw-r--r--tests/lang/eval-okay-ind-string.exp2
-rw-r--r--tests/lang/eval-okay-let.exp2
-rw-r--r--tests/lang/eval-okay-list.exp2
-rw-r--r--tests/lang/eval-okay-listToAttrs.out1
-rw-r--r--tests/lang/eval-okay-listtoattrs.exp1
-rw-r--r--tests/lang/eval-okay-listtoattrs.nix (renamed from tests/lang/eval-okay-listToAttrs.nix)6
-rw-r--r--tests/lang/eval-okay-logic.exp2
-rw-r--r--tests/lang/eval-okay-map.exp2
-rw-r--r--tests/lang/eval-okay-new-let.exp2
-rw-r--r--tests/lang/eval-okay-pathexists.exp2
-rw-r--r--tests/lang/eval-okay-patterns.exp2
-rw-r--r--tests/lang/eval-okay-patterns.nix3
-rw-r--r--tests/lang/eval-okay-readfile.exp2
-rw-r--r--tests/lang/eval-okay-remove.exp2
-rw-r--r--tests/lang/eval-okay-scope-1.exp2
-rw-r--r--tests/lang/eval-okay-scope-2.exp2
-rw-r--r--tests/lang/eval-okay-scope-3.exp2
-rw-r--r--tests/lang/eval-okay-scope-4.exp2
-rw-r--r--tests/lang/eval-okay-scope-6.exp2
-rw-r--r--tests/lang/eval-okay-scope-7.exp2
-rw-r--r--tests/lang/eval-okay-string.exp2
-rw-r--r--tests/lang/eval-okay-substring.exp2
-rw-r--r--tests/lang/eval-okay-to-xml.exp1
-rw-r--r--tests/lang/eval-okay-toxml.exp2
-rw-r--r--tests/lang/eval-okay-toxml2.exp1
-rw-r--r--tests/lang/eval-okay-toxml2.nix (renamed from tests/lang/eval-okay-to-xml.nix)0
-rw-r--r--tests/lang/eval-okay-tryeval.exp1
-rw-r--r--tests/lang/eval-okay-tryeval.nix5
-rw-r--r--tests/lang/eval-okay-versions.exp2
-rw-r--r--tests/lang/eval-okay-with.exp2
-rw-r--r--tests/lang/eval-okay-xml.exp.xml16
-rw-r--r--tests/lang/parse-fail-dup-attrs-7.nix9
-rw-r--r--tests/lang/parse-okay-1.exp1
-rw-r--r--tests/lang/parse-okay-crlf.exp1
-rw-r--r--tests/lang/parse-okay-dup-attrs-5.nix (renamed from tests/lang/parse-fail-dup-attrs-5.nix)0
-rw-r--r--tests/lang/parse-okay-regression-20041027.exp1
-rw-r--r--tests/lang/parse-okay-subversion.exp1
-rw-r--r--tests/lang/parse-okay-url.exp1
54 files changed, 65 insertions, 69 deletions
diff --git a/tests/common.sh.in b/tests/common.sh.in
index 35e17c3bf3fd..2c47d75eea23 100644
--- a/tests/common.sh.in
+++ b/tests/common.sh.in
@@ -30,7 +30,6 @@ export REAL_STORE_DIR=@storedir@
 export NIX_BUILD_HOOK=
 export PERL=perl
 export TOP=$(pwd)/..
-export aterm_bin=@aterm_bin@
 export bzip2_bin_test="@bzip2_bin_test@"
 if test "${bzip2_bin_test:0:1}" != "/"; then
     bzip2_bin_test=`pwd`/${bzip2_bin_test}
@@ -42,10 +41,6 @@ export xsltproc="@xsltproc@"
 export sqlite3="@sqlite_bin@/bin/sqlite3"
 export SHELL="@shell@"
 
-# Hack to get "atdiff" to run on Cygwin (Windows looks for
-# DLLs in $PATH).
-export PATH=$aterm_bin/../lib:$PATH
-
 export version=@version@
 export system=@system@
 
diff --git a/tests/dependencies.nix b/tests/dependencies.nix
index a397e1ce4159..00717ae98d90 100644
--- a/tests/dependencies.nix
+++ b/tests/dependencies.nix
@@ -9,7 +9,7 @@ let {
 
   input2 = mkDerivation {
     name = "dependencies-input-2";
-    builder = ./. ~ "dependencies.builder2.sh";
+    builder = ./dependencies.builder2.sh;
   };
 
   body = mkDerivation {
diff --git a/tests/lang.sh b/tests/lang.sh
index 54f01076371e..fab8c6e0d7f9 100644
--- a/tests/lang.sh
+++ b/tests/lang.sh
@@ -16,14 +16,10 @@ done
 for i in lang/parse-okay-*.nix; do
     echo "parsing $i (should succeed)";
     i=$(basename $i .nix)
-    if ! $nixinstantiate --parse-only - < lang/$i.nix > lang/$i.ast; then
+    if ! $nixinstantiate --parse-only - < lang/$i.nix > lang/$i.out; then
         echo "FAIL: $i should parse"
         fail=1
     fi
-    if ! $aterm_bin/atdiff lang/$i.ast lang/$i.exp; then
-        echo "FAIL: parse tree of $i not as expected"
-        fail=1
-    fi
 done
 
 for i in lang/eval-fail-*.nix; do
@@ -44,10 +40,10 @@ for i in lang/eval-okay-*.nix; do
         if test -e lang/$i.flags; then
             flags=$(cat lang/$i.flags)
         fi
-        if ! $nixinstantiate $flags --eval-only lang/$i.nix > lang/$i.out; then
+        if ! $nixinstantiate $flags --eval-only --strict lang/$i.nix > lang/$i.out; then
             echo "FAIL: $i should evaluate"
             fail=1
-        elif ! $aterm_bin/atdiff lang/$i.out lang/$i.exp; then
+        elif ! diff lang/$i.out lang/$i.exp; then
             echo "FAIL: evaluation result of $i not as expected"
             fail=1
         fi
diff --git a/tests/lang/eval-okay-arithmetic.exp b/tests/lang/eval-okay-arithmetic.exp
index 433cb1c9bb6d..9c113c6f75f9 100644
--- a/tests/lang/eval-okay-arithmetic.exp
+++ b/tests/lang/eval-okay-arithmetic.exp
@@ -1 +1 @@
-Int(1275)
+1275
diff --git a/tests/lang/eval-okay-attrnames.exp b/tests/lang/eval-okay-attrnames.exp
index 98af99a0cab0..b4aa387e07b8 100644
--- a/tests/lang/eval-okay-attrnames.exp
+++ b/tests/lang/eval-okay-attrnames.exp
@@ -1 +1 @@
-Str("newxfoonewxy",[])
+"newxfoonewxy"
diff --git a/tests/lang/eval-okay-attrs.exp b/tests/lang/eval-okay-attrs.exp
index add36384d296..45b0f829eb33 100644
--- a/tests/lang/eval-okay-attrs.exp
+++ b/tests/lang/eval-okay-attrs.exp
@@ -1 +1 @@
-Int(987)
\ No newline at end of file
+987
diff --git a/tests/lang/eval-okay-attrs2.exp b/tests/lang/eval-okay-attrs2.exp
index add36384d296..45b0f829eb33 100644
--- a/tests/lang/eval-okay-attrs2.exp
+++ b/tests/lang/eval-okay-attrs2.exp
@@ -1 +1 @@
-Int(987)
\ No newline at end of file
+987
diff --git a/tests/lang/eval-okay-attrs3.exp b/tests/lang/eval-okay-attrs3.exp
index d2c7555c1f6c..19de4fdf79f7 100644
--- a/tests/lang/eval-okay-attrs3.exp
+++ b/tests/lang/eval-okay-attrs3.exp
@@ -1 +1 @@
-Str("foo 22 80 itchyxac",[])
+"foo 22 80 itchyxac"
diff --git a/tests/lang/eval-okay-autoargs.exp b/tests/lang/eval-okay-autoargs.exp
index 3b12bdd5e596..7a8391786a09 100644
--- a/tests/lang/eval-okay-autoargs.exp
+++ b/tests/lang/eval-okay-autoargs.exp
@@ -1 +1 @@
-Str("xyzzy!xyzzy!foobar",[])
+"xyzzy!xyzzy!foobar"
diff --git a/tests/lang/eval-okay-builtins.exp b/tests/lang/eval-okay-builtins.exp
index f4f3ba81a101..0661686d611d 100644
--- a/tests/lang/eval-okay-builtins.exp
+++ b/tests/lang/eval-okay-builtins.exp
@@ -1 +1 @@
-Path("/foo")
+/foo
diff --git a/tests/lang/eval-okay-concat.exp b/tests/lang/eval-okay-concat.exp
index 359ccef86f0f..bb4bbd577410 100644
--- a/tests/lang/eval-okay-concat.exp
+++ b/tests/lang/eval-okay-concat.exp
@@ -1 +1 @@
-List([Int(1),Int(2),Int(3),Int(4),Int(5),Int(6),Int(7),Int(8),Int(9)])
+[ 1 2 3 4 5 6 7 8 9 ]
diff --git a/tests/lang/eval-okay-context.exp b/tests/lang/eval-okay-context.exp
index 95a993654263..2f535bdbc454 100644
--- a/tests/lang/eval-okay-context.exp
+++ b/tests/lang/eval-okay-context.exp
@@ -1 +1 @@
-Str("foo eval-okay-context.nix bar",[])
+"foo eval-okay-context.nix bar"
diff --git a/tests/lang/eval-okay-empty-args.exp b/tests/lang/eval-okay-empty-args.exp
index c386bbc80410..cb5537d5d7ce 100644
--- a/tests/lang/eval-okay-empty-args.exp
+++ b/tests/lang/eval-okay-empty-args.exp
@@ -1 +1 @@
-Str("ab",[])
+"ab"
diff --git a/tests/lang/eval-okay-flatten.exp b/tests/lang/eval-okay-flatten.exp
index 50c91bee5ed5..b979b2b8b9bc 100644
--- a/tests/lang/eval-okay-flatten.exp
+++ b/tests/lang/eval-okay-flatten.exp
@@ -1 +1 @@
-Str("1234567",[])
+"1234567"
diff --git a/tests/lang/eval-okay-getenv.exp b/tests/lang/eval-okay-getenv.exp
index 7c3659b970e8..14e24d419005 100644
--- a/tests/lang/eval-okay-getenv.exp
+++ b/tests/lang/eval-okay-getenv.exp
@@ -1 +1 @@
-Str("foobar",[])
+"foobar"
diff --git a/tests/lang/eval-okay-if.exp b/tests/lang/eval-okay-if.exp
index 8b99801d3596..00750edc07d6 100644
--- a/tests/lang/eval-okay-if.exp
+++ b/tests/lang/eval-okay-if.exp
@@ -1 +1 @@
-Int(3)
\ No newline at end of file
+3
diff --git a/tests/lang/eval-okay-ind-string.exp b/tests/lang/eval-okay-ind-string.exp
index b8d2f5b39ac3..886219dcf652 100644
--- a/tests/lang/eval-okay-ind-string.exp
+++ b/tests/lang/eval-okay-ind-string.exp
@@ -1 +1 @@
-Str("This is an indented multi-line string\nliteral.  An amount of whitespace at\nthe start of each line matching the minimum\nindentation of all lines in the string\nliteral together will be removed.  Thus,\nin this case four spaces will be\nstripped from each line, even though\n  THIS LINE is indented six spaces.\n\nAlso, empty lines don't count in the\ndetermination of the indentation level (the\nprevious empty line has indentation 0, but\nit doesn't matter).\nIf the string starts with whitespace\n  followed by a newline, it's stripped, but\n  that's not the case here. Two spaces are\n  stripped because of the \"  \" at the start. \nThis line is indented\na bit further.\nAnti-quotations, like so, are\nalso allowed.\n  The \\ is not special here.\n' can be followed by any character except another ', e.g. 'x'.\nLikewise for $, e.g. $$ or $varName.\nBut ' followed by ' is special, as is $ followed by {.\nIf you want them, use anti-quotations: '', ${.\n   Tabs are not interpreted as whitespace (since we can't guess\n   what tab settings are intended), so don't use them.\n\tThis line starts with a space and a tab, so only one\n   space will be stripped from each line.\nAlso note that if the last line (just before the closing ' ')\nconsists only of whitespace, it's ignored.  But here there is\nsome non-whitespace stuff, so the line isn't removed. \nThis shows a hacky way to preserve an empty line after the start.\nBut there's no reason to do so: you could just repeat the empty\nline.\n  Similarly you can force an indentation level,\n  in this case to 2 spaces.  This works because the anti-quote\n  is significant (not whitespace).\nstart on network-interfaces\n\nstart script\n\n  rm -f /var/run/opengl-driver\n  ln -sf 123 /var/run/opengl-driver\n\n  rm -f /var/log/slim.log\n   \nend script\n\nenv SLIM_CFGFILE=abc\nenv SLIM_THEMESDIR=def\nenv FONTCONFIG_FILE=/etc/fonts/fonts.conf  \t\t\t\t# !!! cleanup\nenv XKB_BINDIR=foo/bin         \t\t\t\t# Needed for the Xkb extension.\nenv LD_LIBRARY_PATH=libX11/lib:libXext/lib:/usr/lib/          # related to xorg-sys-opengl - needed to load libglx for (AI)GLX support (for compiz)\n\nenv XORG_DRI_DRIVER_PATH=nvidiaDrivers/X11R6/lib/modules/drivers/ \n\nexec slim/bin/slim\nEscaping of ' followed by ': ''\nEscaping of $ followed by {: ${\nAnd finally to interpret \\n etc. as in a string: \n, \r, \t.\nfoo\n'bla'\nbar\n",[])
+"This is an indented multi-line string\nliteral.  An amount of whitespace at\nthe start of each line matching the minimum\nindentation of all lines in the string\nliteral together will be removed.  Thus,\nin this case four spaces will be\nstripped from each line, even though\n  THIS LINE is indented six spaces.\n\nAlso, empty lines don't count in the\ndetermination of the indentation level (the\nprevious empty line has indentation 0, but\nit doesn't matter).\nIf the string starts with whitespace\n  followed by a newline, it's stripped, but\n  that's not the case here. Two spaces are\n  stripped because of the \"  \" at the start. \nThis line is indented\na bit further.\nAnti-quotations, like so, are\nalso allowed.\n  The \\ is not special here.\n' can be followed by any character except another ', e.g. 'x'.\nLikewise for $, e.g. $$ or $varName.\nBut ' followed by ' is special, as is $ followed by {.\nIf you want them, use anti-quotations: '', ${.\n   Tabs are not interpreted as whitespace (since we can't guess\n   what tab settings are intended), so don't use them.\n\tThis line starts with a space and a tab, so only one\n   space will be stripped from each line.\nAlso note that if the last line (just before the closing ' ')\nconsists only of whitespace, it's ignored.  But here there is\nsome non-whitespace stuff, so the line isn't removed. \nThis shows a hacky way to preserve an empty line after the start.\nBut there's no reason to do so: you could just repeat the empty\nline.\n  Similarly you can force an indentation level,\n  in this case to 2 spaces.  This works because the anti-quote\n  is significant (not whitespace).\nstart on network-interfaces\n\nstart script\n\n  rm -f /var/run/opengl-driver\n  ln -sf 123 /var/run/opengl-driver\n\n  rm -f /var/log/slim.log\n   \nend script\n\nenv SLIM_CFGFILE=abc\nenv SLIM_THEMESDIR=def\nenv FONTCONFIG_FILE=/etc/fonts/fonts.conf  \t\t\t\t# !!! cleanup\nenv XKB_BINDIR=foo/bin         \t\t\t\t# Needed for the Xkb extension.\nenv LD_LIBRARY_PATH=libX11/lib:libXext/lib:/usr/lib/          # related to xorg-sys-opengl - needed to load libglx for (AI)GLX support (for compiz)\n\nenv XORG_DRI_DRIVER_PATH=nvidiaDrivers/X11R6/lib/modules/drivers/ \n\nexec slim/bin/slim\nEscaping of ' followed by ': ''\nEscaping of $ followed by {: ${\nAnd finally to interpret \\n etc. as in a string: \n, \r, \t.\nfoo\n'bla'\nbar\n"
diff --git a/tests/lang/eval-okay-let.exp b/tests/lang/eval-okay-let.exp
index 7c3659b970e8..14e24d419005 100644
--- a/tests/lang/eval-okay-let.exp
+++ b/tests/lang/eval-okay-let.exp
@@ -1 +1 @@
-Str("foobar",[])
+"foobar"
diff --git a/tests/lang/eval-okay-list.exp b/tests/lang/eval-okay-list.exp
index b9cad67dd1e4..f784f26d83f4 100644
--- a/tests/lang/eval-okay-list.exp
+++ b/tests/lang/eval-okay-list.exp
@@ -1 +1 @@
-Str("foobarblatest",[])
+"foobarblatest"
diff --git a/tests/lang/eval-okay-listToAttrs.out b/tests/lang/eval-okay-listToAttrs.out
deleted file mode 100644
index 4e779ff063f0..000000000000
--- a/tests/lang/eval-okay-listToAttrs.out
+++ /dev/null
@@ -1 +0,0 @@
-List([Attrs([Bind("a",Str("A",[]),NoPos),Bind("b",Str("B",[]),NoPos)]),Attrs([Bind("a",Str("A",[]),NoPos),Bind("b",Str("B",[]),NoPos)])])
diff --git a/tests/lang/eval-okay-listtoattrs.exp b/tests/lang/eval-okay-listtoattrs.exp
new file mode 100644
index 000000000000..11d29b588ac1
--- /dev/null
+++ b/tests/lang/eval-okay-listtoattrs.exp
@@ -0,0 +1 @@
+"AA"
diff --git a/tests/lang/eval-okay-listToAttrs.nix b/tests/lang/eval-okay-listtoattrs.nix
index f5eae92ccd98..d5cd726b0c64 100644
--- a/tests/lang/eval-okay-listToAttrs.nix
+++ b/tests/lang/eval-okay-listtoattrs.nix
@@ -1,8 +1,10 @@
 # this test shows how to use listToAttrs and that evaluation is still lazy (throw isn't called)
+with import ./lib.nix;
+
 let 
-  asi = attr: value : { inherit attr value; };
+  asi = name: value : { inherit name value; };
   list = [ ( asi "a" "A" ) ( asi "b" "B" ) ];
   a = builtins.listToAttrs list;
   b = builtins.listToAttrs ( list ++ list );
   r = builtins.listToAttrs [ (asi "result" [ a b ]) ( asi "throw" (throw "this should not be thrown")) ];
-in r.result
+in concat (map (x: x.a) r.result)
diff --git a/tests/lang/eval-okay-logic.exp b/tests/lang/eval-okay-logic.exp
index f1161b8d5588..d00491fd7e5b 100644
--- a/tests/lang/eval-okay-logic.exp
+++ b/tests/lang/eval-okay-logic.exp
@@ -1 +1 @@
-Int(1)
\ No newline at end of file
+1
diff --git a/tests/lang/eval-okay-map.exp b/tests/lang/eval-okay-map.exp
index 2d9456dc00d5..dbb64f717b96 100644
--- a/tests/lang/eval-okay-map.exp
+++ b/tests/lang/eval-okay-map.exp
@@ -1 +1 @@
-Str("foobarblabarxyzzybar",[])
+"foobarblabarxyzzybar"
diff --git a/tests/lang/eval-okay-new-let.exp b/tests/lang/eval-okay-new-let.exp
index f10a34e7109e..f98b388071c2 100644
--- a/tests/lang/eval-okay-new-let.exp
+++ b/tests/lang/eval-okay-new-let.exp
@@ -1 +1 @@
-Str("xyzzyfoobar",[])
+"xyzzyfoobar"
diff --git a/tests/lang/eval-okay-pathexists.exp b/tests/lang/eval-okay-pathexists.exp
index 2015847b65e7..27ba77ddaf61 100644
--- a/tests/lang/eval-okay-pathexists.exp
+++ b/tests/lang/eval-okay-pathexists.exp
@@ -1 +1 @@
-Bool(True)
+true
diff --git a/tests/lang/eval-okay-patterns.exp b/tests/lang/eval-okay-patterns.exp
index 8422900dd9e8..a4304010fe80 100644
--- a/tests/lang/eval-okay-patterns.exp
+++ b/tests/lang/eval-okay-patterns.exp
@@ -1 +1 @@
-Str("abcxyzDDDDEFghijk",[])
+"abcxyzDDDDEFijk"
diff --git a/tests/lang/eval-okay-patterns.nix b/tests/lang/eval-okay-patterns.nix
index c233c406c766..96fd25a01517 100644
--- a/tests/lang/eval-okay-patterns.nix
+++ b/tests/lang/eval-okay-patterns.nix
@@ -6,8 +6,6 @@ let
 
   h = {x ? "d", y ? x, z ? args.x}@args: x + y + z;
 
-  i = args@args2: args.x + args2.y;
-
   j = {x, y, z, ...}: x + y + z;
 
 in
@@ -15,5 +13,4 @@ in
   g {x = "x"; y = "y"; z = "z";} +
   h {x = "D";} +
   h {x = "D"; y = "E"; z = "F";} +
-  i {x = "g"; y = "h";} +
   j {x = "i"; y = "j"; z = "k"; bla = "bla"; foo = "bar";}
diff --git a/tests/lang/eval-okay-readfile.exp b/tests/lang/eval-okay-readfile.exp
index 979771c7a320..a2c87d0c439f 100644
--- a/tests/lang/eval-okay-readfile.exp
+++ b/tests/lang/eval-okay-readfile.exp
@@ -1 +1 @@
-Str("builtins.readFile ./eval-okay-readfile.nix\n",[])
+"builtins.readFile ./eval-okay-readfile.nix\n"
diff --git a/tests/lang/eval-okay-remove.exp b/tests/lang/eval-okay-remove.exp
index e22e6b1b2162..8d38505c1686 100644
--- a/tests/lang/eval-okay-remove.exp
+++ b/tests/lang/eval-okay-remove.exp
@@ -1 +1 @@
-Int(456)
+456
diff --git a/tests/lang/eval-okay-scope-1.exp b/tests/lang/eval-okay-scope-1.exp
index 7da0e4219eee..00750edc07d6 100644
--- a/tests/lang/eval-okay-scope-1.exp
+++ b/tests/lang/eval-okay-scope-1.exp
@@ -1 +1 @@
-Int(3)
+3
diff --git a/tests/lang/eval-okay-scope-2.exp b/tests/lang/eval-okay-scope-2.exp
index 067d2b7461e8..d00491fd7e5b 100644
--- a/tests/lang/eval-okay-scope-2.exp
+++ b/tests/lang/eval-okay-scope-2.exp
@@ -1 +1 @@
-Int(1)
+1
diff --git a/tests/lang/eval-okay-scope-3.exp b/tests/lang/eval-okay-scope-3.exp
index 65c1faee25ec..b8626c4cff28 100644
--- a/tests/lang/eval-okay-scope-3.exp
+++ b/tests/lang/eval-okay-scope-3.exp
@@ -1 +1 @@
-Int(4)
+4
diff --git a/tests/lang/eval-okay-scope-4.exp b/tests/lang/eval-okay-scope-4.exp
index ea9580603593..00ff03a46c9b 100644
--- a/tests/lang/eval-okay-scope-4.exp
+++ b/tests/lang/eval-okay-scope-4.exp
@@ -1 +1 @@
-Str("ccdd",[])
+"ccdd"
diff --git a/tests/lang/eval-okay-scope-6.exp b/tests/lang/eval-okay-scope-6.exp
index ea9580603593..00ff03a46c9b 100644
--- a/tests/lang/eval-okay-scope-6.exp
+++ b/tests/lang/eval-okay-scope-6.exp
@@ -1 +1 @@
-Str("ccdd",[])
+"ccdd"
diff --git a/tests/lang/eval-okay-scope-7.exp b/tests/lang/eval-okay-scope-7.exp
index 067d2b7461e8..d00491fd7e5b 100644
--- a/tests/lang/eval-okay-scope-7.exp
+++ b/tests/lang/eval-okay-scope-7.exp
@@ -1 +1 @@
-Int(1)
+1
diff --git a/tests/lang/eval-okay-string.exp b/tests/lang/eval-okay-string.exp
index 8249c7c8d2ce..6079202470e3 100644
--- a/tests/lang/eval-okay-string.exp
+++ b/tests/lang/eval-okay-string.exp
@@ -1 +1 @@
-Str("foobar/a/b/c/d/foo/xyzzy/foo.txt/../foo/x/yescape: \"quote\" \n \\end\nof\nlinefoobarblaatfoo$bar",[])
+"foobar/a/b/c/d/foo/xyzzy/foo.txt/../foo/x/yescape: \"quote\" \n \\end\nof\nlinefoobarblaatfoo$bar"
diff --git a/tests/lang/eval-okay-substring.exp b/tests/lang/eval-okay-substring.exp
index d6098476b820..d936b7e96f94 100644
--- a/tests/lang/eval-okay-substring.exp
+++ b/tests/lang/eval-okay-substring.exp
@@ -1 +1 @@
-Str("ooxfoobarybarzobaabb",[])
+"ooxfoobarybarzobaabb"
diff --git a/tests/lang/eval-okay-to-xml.exp b/tests/lang/eval-okay-to-xml.exp
deleted file mode 100644
index 0a4d1884eddd..000000000000
--- a/tests/lang/eval-okay-to-xml.exp
+++ /dev/null
@@ -1 +0,0 @@
-Str("<?xml version='1.0' encoding='utf-8'?>\n<expr>\n  <list>\n    <string value=\"ab\" />\n    <int value=\"10\" />\n    <attrs>\n      <attr name=\"x\">\n        <string value=\"x\" />\n      </attr>\n      <attr name=\"y\">\n        <string value=\"x\" />\n      </attr>\n    </attrs>\n  </list>\n</expr>\n",[])
diff --git a/tests/lang/eval-okay-toxml.exp b/tests/lang/eval-okay-toxml.exp
index 379f3c07617e..828220890ecd 100644
--- a/tests/lang/eval-okay-toxml.exp
+++ b/tests/lang/eval-okay-toxml.exp
@@ -1 +1 @@
-Str("<?xml version='1.0' encoding='utf-8'?>\n<expr>\n  <attrs>\n    <attr name=\"a\">\n      <string value=\"s\" />\n    </attr>\n  </attrs>\n</expr>\n",[])
+"<?xml version='1.0' encoding='utf-8'?>\n<expr>\n  <attrs>\n    <attr name=\"a\">\n      <string value=\"s\" />\n    </attr>\n  </attrs>\n</expr>\n"
diff --git a/tests/lang/eval-okay-toxml2.exp b/tests/lang/eval-okay-toxml2.exp
new file mode 100644
index 000000000000..634a841eb190
--- /dev/null
+++ b/tests/lang/eval-okay-toxml2.exp
@@ -0,0 +1 @@
+"<?xml version='1.0' encoding='utf-8'?>\n<expr>\n  <list>\n    <string value=\"ab\" />\n    <int value=\"10\" />\n    <attrs>\n      <attr name=\"x\">\n        <string value=\"x\" />\n      </attr>\n      <attr name=\"y\">\n        <string value=\"x\" />\n      </attr>\n    </attrs>\n  </list>\n</expr>\n"
diff --git a/tests/lang/eval-okay-to-xml.nix b/tests/lang/eval-okay-toxml2.nix
index ff1791b30eb5..ff1791b30eb5 100644
--- a/tests/lang/eval-okay-to-xml.nix
+++ b/tests/lang/eval-okay-toxml2.nix
diff --git a/tests/lang/eval-okay-tryeval.exp b/tests/lang/eval-okay-tryeval.exp
new file mode 100644
index 000000000000..2b2e6fa711f4
--- /dev/null
+++ b/tests/lang/eval-okay-tryeval.exp
@@ -0,0 +1 @@
+{ x = { success = true; value = "x"; }; y = { success = false; value = false; }; z = { success = false; value = false; }; }
diff --git a/tests/lang/eval-okay-tryeval.nix b/tests/lang/eval-okay-tryeval.nix
new file mode 100644
index 000000000000..629bc440a85a
--- /dev/null
+++ b/tests/lang/eval-okay-tryeval.nix
@@ -0,0 +1,5 @@
+{
+  x = builtins.tryEval "x";
+  y = builtins.tryEval (assert false; "y");
+  z = builtins.tryEval (throw "bla");
+}
diff --git a/tests/lang/eval-okay-versions.exp b/tests/lang/eval-okay-versions.exp
index 2015847b65e7..27ba77ddaf61 100644
--- a/tests/lang/eval-okay-versions.exp
+++ b/tests/lang/eval-okay-versions.exp
@@ -1 +1 @@
-Bool(True)
+true
diff --git a/tests/lang/eval-okay-with.exp b/tests/lang/eval-okay-with.exp
index 2c9bd8ba0e27..378c8dc80403 100644
--- a/tests/lang/eval-okay-with.exp
+++ b/tests/lang/eval-okay-with.exp
@@ -1 +1 @@
-Str("xyzzybarxyzzybar",[])
+"xyzzybarxyzzybar"
diff --git a/tests/lang/eval-okay-xml.exp.xml b/tests/lang/eval-okay-xml.exp.xml
index 72a96d54c7d3..f124f939ed48 100644
--- a/tests/lang/eval-okay-xml.exp.xml
+++ b/tests/lang/eval-okay-xml.exp.xml
@@ -6,14 +6,11 @@
     </attr>
     <attr name="at">
       <function>
-        <at>
-          <varpat name="args" />
-          <attrspat>
-            <attr name="x" />
-            <attr name="y" />
-            <attr name="z" />
-          </attrspat>
-        </at>
+        <attrspat name="args">
+          <attr name="x" />
+          <attr name="y" />
+          <attr name="z" />
+        </attrspat>
       </function>
     </attr>
     <attr name="b">
@@ -24,11 +21,10 @@
     </attr>
     <attr name="ellipsis">
       <function>
-        <attrspat>
+        <attrspat ellipsis="1">
           <attr name="x" />
           <attr name="y" />
           <attr name="z" />
-          <ellipsis />
         </attrspat>
       </function>
     </attr>
diff --git a/tests/lang/parse-fail-dup-attrs-7.nix b/tests/lang/parse-fail-dup-attrs-7.nix
new file mode 100644
index 000000000000..bbc3eb08c0f6
--- /dev/null
+++ b/tests/lang/parse-fail-dup-attrs-7.nix
@@ -0,0 +1,9 @@
+rec {
+
+  x = 1;
+
+  as = {
+    inherit x;
+    inherit x;
+  };
+}
\ No newline at end of file
diff --git a/tests/lang/parse-okay-1.exp b/tests/lang/parse-okay-1.exp
deleted file mode 100644
index bb8746ec45a6..000000000000
--- a/tests/lang/parse-okay-1.exp
+++ /dev/null
@@ -1 +0,0 @@
-Function(AttrsPat([Formal("x",NoDefaultValue),Formal("y",NoDefaultValue),Formal("z",NoDefaultValue)],Bool(False)),OpPlus(OpPlus(Var("x"),Var("y")),Var("z")),NoPos)
diff --git a/tests/lang/parse-okay-crlf.exp b/tests/lang/parse-okay-crlf.exp
deleted file mode 100644
index 7d4d9e3876c2..000000000000
--- a/tests/lang/parse-okay-crlf.exp
+++ /dev/null
@@ -1 +0,0 @@
-Rec([Bind("x",Var("y"),NoPos),Bind("y",Int(123),NoPos),Bind("foo",Str("multi\nline\n  string\n  test\r",[]),NoPos),Bind("z",Int(456),NoPos)],[])
diff --git a/tests/lang/parse-fail-dup-attrs-5.nix b/tests/lang/parse-okay-dup-attrs-5.nix
index f4b9efd0c596..f4b9efd0c596 100644
--- a/tests/lang/parse-fail-dup-attrs-5.nix
+++ b/tests/lang/parse-okay-dup-attrs-5.nix
diff --git a/tests/lang/parse-okay-regression-20041027.exp b/tests/lang/parse-okay-regression-20041027.exp
deleted file mode 100644
index a302e248844f..000000000000
--- a/tests/lang/parse-okay-regression-20041027.exp
+++ /dev/null
@@ -1 +0,0 @@
-Function(AttrsPat([Formal("stdenv",NoDefaultValue),Formal("fetchurl",NoDefaultValue)],Bool(False)),Call(Select(Var("stdenv"),"mkDerivation"),Attrs([Bind("name",Str("libXi-6.0.1",[]),NoPos),Bind("src",Call(Var("fetchurl"),Attrs([Bind("md5",Str("7e935a42428d63a387b3c048be0f2756",[]),NoPos),Bind("url",Str("http://freedesktop.org/~xlibs/release/libXi-6.0.1.tar.bz2",[]),NoPos)])),NoPos)])),NoPos)
diff --git a/tests/lang/parse-okay-subversion.exp b/tests/lang/parse-okay-subversion.exp
deleted file mode 100644
index 102153c18a84..000000000000
--- a/tests/lang/parse-okay-subversion.exp
+++ /dev/null
@@ -1 +0,0 @@
-Function(AttrsPat([Formal("localServer",DefaultValue(Var("false"))),Formal("httpServer",DefaultValue(Var("false"))),Formal("sslSupport",DefaultValue(Var("false"))),Formal("pythonBindings",DefaultValue(Var("false"))),Formal("javaSwigBindings",DefaultValue(Var("false"))),Formal("javahlBindings",DefaultValue(Var("false"))),Formal("stdenv",NoDefaultValue),Formal("fetchurl",NoDefaultValue),Formal("openssl",DefaultValue(Var("null"))),Formal("httpd",DefaultValue(Var("null"))),Formal("db4",DefaultValue(Var("null"))),Formal("expat",NoDefaultValue),Formal("swig",DefaultValue(Var("null"))),Formal("j2sdk",DefaultValue(Var("null")))],Bool(False)),Assert(OpNEq(Var("expat"),Var("null")),Assert(OpImpl(Var("localServer"),OpNEq(Var("db4"),Var("null"))),Assert(OpImpl(Var("httpServer"),OpAnd(OpNEq(Var("httpd"),Var("null")),OpEq(Select(Var("httpd"),"expat"),Var("expat")))),Assert(OpImpl(Var("sslSupport"),OpAnd(OpNEq(Var("openssl"),Var("null")),OpImpl(Var("httpServer"),OpEq(Select(Var("httpd"),"openssl"),Var("openssl"))))),Assert(OpImpl(Var("pythonBindings"),OpAnd(OpNEq(Var("swig"),Var("null")),Select(Var("swig"),"pythonSupport"))),Assert(OpImpl(Var("javaSwigBindings"),OpAnd(OpNEq(Var("swig"),Var("null")),Select(Var("swig"),"javaSupport"))),Assert(OpImpl(Var("javahlBindings"),OpNEq(Var("j2sdk"),Var("null"))),Call(Select(Var("stdenv"),"mkDerivation"),Attrs([Bind("builder",Path("/foo/bar"),NoPos),Bind("db4",If(Var("localServer"),Var("db4"),Var("null")),NoPos),Bind("expat",Var("expat"),NoPos),Bind("httpServer",Var("httpServer"),NoPos),Bind("httpd",If(Var("httpServer"),Var("httpd"),Var("null")),NoPos),Bind("j2sdk",If(Var("javaSwigBindings"),Select(Var("swig"),"j2sdk"),If(Var("javahlBindings"),Var("j2sdk"),Var("null"))),NoPos),Bind("javaSwigBindings",Var("javaSwigBindings"),NoPos),Bind("javahlBindings",Var("javahlBindings"),NoPos),Bind("localServer",Var("localServer"),NoPos),Bind("name",Str("subversion-1.1.1",[]),NoPos),Bind("openssl",If(Var("sslSupport"),Var("openssl"),Var("null")),NoPos),Bind("patches",If(Var("javahlBindings"),List([Path("/javahl.patch")]),List([])),NoPos),Bind("python",If(Var("pythonBindings"),Select(Var("swig"),"python"),Var("null")),NoPos),Bind("pythonBindings",Var("pythonBindings"),NoPos),Bind("src",Call(Var("fetchurl"),Attrs([Bind("md5",Str("a180c3fe91680389c210c99def54d9e0",[]),NoPos),Bind("url",Str("http://subversion.tigris.org/tarballs/subversion-1.1.1.tar.bz2",[]),NoPos)])),NoPos),Bind("sslSupport",Var("sslSupport"),NoPos),Bind("swig",If(OpOr(Var("pythonBindings"),Var("javaSwigBindings")),Var("swig"),Var("null")),NoPos)])),NoPos),NoPos),NoPos),NoPos),NoPos),NoPos),NoPos),NoPos)
diff --git a/tests/lang/parse-okay-url.exp b/tests/lang/parse-okay-url.exp
deleted file mode 100644
index 2aa22c379e74..000000000000
--- a/tests/lang/parse-okay-url.exp
+++ /dev/null
@@ -1 +0,0 @@
-List([Str("x:x",[]),Str("https://svn.cs.uu.nl:12443/repos/trace/trunk",[]),Str("http://www2.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2",[]),Str("http://losser.st-lab.cs.uu.nl/~armijn/.nix/gcc-3.3.4-static-nix.tar.gz",[]),Str("http://fpdownload.macromedia.com/get/shockwave/flash/english/linux/7.0r25/install_flash_player_7_linux.tar.gz",[]),Str("ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-1.2.10.tar.gz",[])])