diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2011-08-06 16:05:24 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2011-08-06 16:05:24 +0000 |
commit | 1ecc97b6bdb27e56d832ca48cdafd3dbb5185a04 (patch) | |
tree | 4de27ee42f04bb50766f33a58d830677bd8fa80b /tests | |
parent | 54945a2950174ded83d58336061b4a9990cdbbfd (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.sh | 2 | ||||
-rw-r--r-- | tests/lang/dir1/a.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir2/a.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir2/b.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir3/a.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir3/b.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir3/c.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir4/a.nix | 1 | ||||
-rw-r--r-- | tests/lang/dir4/c.nix | 1 | ||||
-rw-r--r-- | tests/lang/eval-okay-search-path.exp | 1 | ||||
-rw-r--r-- | tests/lang/eval-okay-search-path.flags | 1 | ||||
-rw-r--r-- | tests/lang/eval-okay-search-path.nix | 3 | ||||
-rw-r--r-- | tests/lang/eval-okay-search-path.nix~ | 1 | ||||
-rw-r--r-- | tests/lang/eval-okay-search-path.out | 1 |
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" |