aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2011-08-06 16:05:24 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2011-08-06 16:05:24 +0000
commit1ecc97b6bdb27e56d832ca48cdafd3dbb5185a04 (patch)
tree4de27ee42f04bb50766f33a58d830677bd8fa80b /tests
parent54945a2950174ded83d58336061b4a9990cdbbfd (diff)
* Add a Nix expression search path feature. Paths between angle
brackets, e.g. import <nixpkgs/pkgs/lib> are resolved by looking them up relative to the elements listed in the search path. This allows us to get rid of hacks like import "${builtins.getEnv "NIXPKGS_ALL"}/pkgs/lib" The search path can be specified through the ‘-I’ command-line flag and through the colon-separated ‘NIX_PATH’ environment variable, e.g., $ nix-build -I /etc/nixos ... If a file is not found in the search path, an error message is lazily thrown.
Diffstat (limited to 'tests')
-rw-r--r--tests/lang.sh2
-rw-r--r--tests/lang/dir1/a.nix1
-rw-r--r--tests/lang/dir2/a.nix1
-rw-r--r--tests/lang/dir2/b.nix1
-rw-r--r--tests/lang/dir3/a.nix1
-rw-r--r--tests/lang/dir3/b.nix1
-rw-r--r--tests/lang/dir3/c.nix1
-rw-r--r--tests/lang/dir4/a.nix1
-rw-r--r--tests/lang/dir4/c.nix1
-rw-r--r--tests/lang/eval-okay-search-path.exp1
-rw-r--r--tests/lang/eval-okay-search-path.flags1
-rw-r--r--tests/lang/eval-okay-search-path.nix3
-rw-r--r--tests/lang/eval-okay-search-path.nix~1
-rw-r--r--tests/lang/eval-okay-search-path.out1
14 files changed, 16 insertions, 1 deletions
diff --git a/tests/lang.sh b/tests/lang.sh
index fab8c6e0d..11267a23f 100644
--- a/tests/lang.sh
+++ b/tests/lang.sh
@@ -40,7 +40,7 @@ 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 --strict lang/$i.nix > lang/$i.out; then
+ if ! NIX_PATH=lang/dir3:lang/dir4 $nixinstantiate $flags --eval-only --strict lang/$i.nix > lang/$i.out; then
echo "FAIL: $i should evaluate"
fail=1
elif ! diff lang/$i.out lang/$i.exp; then
diff --git a/tests/lang/dir1/a.nix b/tests/lang/dir1/a.nix
new file mode 100644
index 000000000..231f150c5
--- /dev/null
+++ b/tests/lang/dir1/a.nix
@@ -0,0 +1 @@
+"a"
diff --git a/tests/lang/dir2/a.nix b/tests/lang/dir2/a.nix
new file mode 100644
index 000000000..170df520a
--- /dev/null
+++ b/tests/lang/dir2/a.nix
@@ -0,0 +1 @@
+"X"
diff --git a/tests/lang/dir2/b.nix b/tests/lang/dir2/b.nix
new file mode 100644
index 000000000..19010cc35
--- /dev/null
+++ b/tests/lang/dir2/b.nix
@@ -0,0 +1 @@
+"b"
diff --git a/tests/lang/dir3/a.nix b/tests/lang/dir3/a.nix
new file mode 100644
index 000000000..170df520a
--- /dev/null
+++ b/tests/lang/dir3/a.nix
@@ -0,0 +1 @@
+"X"
diff --git a/tests/lang/dir3/b.nix b/tests/lang/dir3/b.nix
new file mode 100644
index 000000000..170df520a
--- /dev/null
+++ b/tests/lang/dir3/b.nix
@@ -0,0 +1 @@
+"X"
diff --git a/tests/lang/dir3/c.nix b/tests/lang/dir3/c.nix
new file mode 100644
index 000000000..cdf158597
--- /dev/null
+++ b/tests/lang/dir3/c.nix
@@ -0,0 +1 @@
+"c"
diff --git a/tests/lang/dir4/a.nix b/tests/lang/dir4/a.nix
new file mode 100644
index 000000000..170df520a
--- /dev/null
+++ b/tests/lang/dir4/a.nix
@@ -0,0 +1 @@
+"X"
diff --git a/tests/lang/dir4/c.nix b/tests/lang/dir4/c.nix
new file mode 100644
index 000000000..170df520a
--- /dev/null
+++ b/tests/lang/dir4/c.nix
@@ -0,0 +1 @@
+"X"
diff --git a/tests/lang/eval-okay-search-path.exp b/tests/lang/eval-okay-search-path.exp
new file mode 100644
index 000000000..d1cc1b4e5
--- /dev/null
+++ b/tests/lang/eval-okay-search-path.exp
@@ -0,0 +1 @@
+"abc"
diff --git a/tests/lang/eval-okay-search-path.flags b/tests/lang/eval-okay-search-path.flags
new file mode 100644
index 000000000..d7feb29e1
--- /dev/null
+++ b/tests/lang/eval-okay-search-path.flags
@@ -0,0 +1 @@
+-I lang/dir1 -I lang/dir2 \ No newline at end of file
diff --git a/tests/lang/eval-okay-search-path.nix b/tests/lang/eval-okay-search-path.nix
new file mode 100644
index 000000000..cc1df08f0
--- /dev/null
+++ b/tests/lang/eval-okay-search-path.nix
@@ -0,0 +1,3 @@
+import <a.nix> + import <b.nix> + import <c.nix>
+
+
diff --git a/tests/lang/eval-okay-search-path.nix~ b/tests/lang/eval-okay-search-path.nix~
new file mode 100644
index 000000000..da52a6d39
--- /dev/null
+++ b/tests/lang/eval-okay-search-path.nix~
@@ -0,0 +1 @@
+(import <a.nix>) \ No newline at end of file
diff --git a/tests/lang/eval-okay-search-path.out b/tests/lang/eval-okay-search-path.out
new file mode 100644
index 000000000..d1cc1b4e5
--- /dev/null
+++ b/tests/lang/eval-okay-search-path.out
@@ -0,0 +1 @@
+"abc"