Add tests for "nix run"
This commit is contained in:
		
							parent
							
								
									f5f29dc2b7
								
							
						
					
					
						commit
						4cde04f476
					
				
					 3 changed files with 46 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -18,7 +18,8 @@ nix_tests = \
 | 
			
		|||
  structured-attrs.sh \
 | 
			
		||||
  fetchGit.sh \
 | 
			
		||||
  fetchMercurial.sh \
 | 
			
		||||
  signing.sh
 | 
			
		||||
  signing.sh \
 | 
			
		||||
  run.sh
 | 
			
		||||
  # parallel.sh
 | 
			
		||||
 | 
			
		||||
install-tests += $(foreach x, $(nix_tests), tests/$(x))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								tests/run.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								tests/run.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
with import ./config.nix;
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  hello = mkDerivation {
 | 
			
		||||
    name = "hello";
 | 
			
		||||
    buildCommand =
 | 
			
		||||
      ''
 | 
			
		||||
        mkdir -p $out/bin
 | 
			
		||||
        cat > $out/bin/hello <<EOF
 | 
			
		||||
        #! ${shell}
 | 
			
		||||
        who=\$1
 | 
			
		||||
        echo "Hello \''${who:-World} from $out/bin/hello"
 | 
			
		||||
        EOF
 | 
			
		||||
        chmod +x $out/bin/hello
 | 
			
		||||
      '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								tests/run.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tests/run.sh
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
source common.sh
 | 
			
		||||
 | 
			
		||||
clearStore
 | 
			
		||||
clearCache
 | 
			
		||||
 | 
			
		||||
nix run -f run.nix hello -c hello | grep 'Hello World'
 | 
			
		||||
nix run -f run.nix hello -c hello NixOS | grep 'Hello NixOS'
 | 
			
		||||
 | 
			
		||||
if [[ $(uname) = Linux ]]; then
 | 
			
		||||
 | 
			
		||||
    chmod -R u+w $TEST_ROOT/store0 || true
 | 
			
		||||
    rm -rf $TEST_ROOT/store0
 | 
			
		||||
 | 
			
		||||
    clearStore
 | 
			
		||||
 | 
			
		||||
    path=$(nix eval --raw -f run.nix hello)
 | 
			
		||||
 | 
			
		||||
    # Note: we need the sandbox paths to ensure that the shell is
 | 
			
		||||
    # visible in the sandbox.
 | 
			
		||||
    nix run --sandbox-paths '/nix? /bin? /lib? /usr?' --store $TEST_ROOT/store0 -f run.nix hello -c hello | grep 'Hello World'
 | 
			
		||||
 | 
			
		||||
    path2=$(nix run --sandbox-paths '/nix? /bin? /lib? /usr?' --store $TEST_ROOT/store0 -f run.nix hello -c $SHELL -c 'type -p hello')
 | 
			
		||||
 | 
			
		||||
    [[ $path/bin/hello = $path2 ]]
 | 
			
		||||
 | 
			
		||||
    [[ -e $TEST_ROOT/store0/nix/store/$(basename $path)/bin/hello ]]
 | 
			
		||||
fi
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue