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 \
 | 
					  structured-attrs.sh \
 | 
				
			||||||
  fetchGit.sh \
 | 
					  fetchGit.sh \
 | 
				
			||||||
  fetchMercurial.sh \
 | 
					  fetchMercurial.sh \
 | 
				
			||||||
  signing.sh
 | 
					  signing.sh \
 | 
				
			||||||
 | 
					  run.sh
 | 
				
			||||||
  # parallel.sh
 | 
					  # parallel.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install-tests += $(foreach x, $(nix_tests), tests/$(x))
 | 
					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