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.
		
	
			
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
source common.sh
 | 
						|
 | 
						|
export TEST_VAR=foo # for eval-okay-getenv.nix
 | 
						|
 | 
						|
fail=0
 | 
						|
 | 
						|
for i in lang/parse-fail-*.nix; do
 | 
						|
    echo "parsing $i (should fail)";
 | 
						|
    i=$(basename $i .nix)
 | 
						|
    if $nixinstantiate --parse-only - < lang/$i.nix; then
 | 
						|
        echo "FAIL: $i shouldn't parse"
 | 
						|
        fail=1
 | 
						|
    fi
 | 
						|
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.out; then
 | 
						|
        echo "FAIL: $i should parse"
 | 
						|
        fail=1
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
for i in lang/eval-fail-*.nix; do
 | 
						|
    echo "evaluating $i (should fail)";
 | 
						|
    i=$(basename $i .nix)
 | 
						|
    if $nixinstantiate --eval-only lang/$i.nix; then
 | 
						|
        echo "FAIL: $i shouldn't evaluate"
 | 
						|
        fail=1
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
for i in lang/eval-okay-*.nix; do
 | 
						|
    echo "evaluating $i (should succeed)";
 | 
						|
    i=$(basename $i .nix)
 | 
						|
 | 
						|
    if test -e lang/$i.exp; then
 | 
						|
        flags=
 | 
						|
        if test -e lang/$i.flags; then
 | 
						|
            flags=$(cat lang/$i.flags)
 | 
						|
        fi
 | 
						|
        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
 | 
						|
            echo "FAIL: evaluation result of $i not as expected"
 | 
						|
            fail=1
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
    
 | 
						|
    if test -e lang/$i.exp.xml; then
 | 
						|
        if ! $nixinstantiate --eval-only --xml --no-location --strict \
 | 
						|
                lang/$i.nix > lang/$i.out.xml; then
 | 
						|
            echo "FAIL: $i should evaluate"
 | 
						|
            fail=1
 | 
						|
        elif ! cmp -s lang/$i.out.xml lang/$i.exp.xml; then
 | 
						|
            echo "FAIL: XML evaluation result of $i not as expected"
 | 
						|
            fail=1
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
exit $fail
 |