build: add tests for --check status codes
This commit is contained in:
		
							parent
							
								
									cbf84bcce7
								
							
						
					
					
						commit
						99ee3755dd
					
				
					 2 changed files with 24 additions and 4 deletions
				
			
		|  | @ -10,6 +10,11 @@ with import ./config.nix; | |||
|       ''; | ||||
|   }; | ||||
| 
 | ||||
|   hashmismatch = import <nix/fetchurl.nix> { | ||||
|     url = "file://" + toString ./dummy; | ||||
|     sha256 = "0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73"; | ||||
|   }; | ||||
| 
 | ||||
|   fetchurl = import <nix/fetchurl.nix> { | ||||
|     url = "file://" + toString ./lang/eval-okay-xml.exp.xml; | ||||
|     sha256 = "0kg4sla7ihm8ijr8cb3117fhl99zrc2bwy1jrngsfmkh8bav4m0v"; | ||||
|  |  | |||
|  | @ -6,14 +6,16 @@ nix-build dependencies.nix --no-out-link | |||
| nix-build dependencies.nix --no-out-link --check | ||||
| 
 | ||||
| nix-build check.nix -A nondeterministic --no-out-link | ||||
| (! nix-build check.nix -A nondeterministic --no-out-link --check 2> $TEST_ROOT/log) | ||||
| nix-build check.nix -A nondeterministic --no-out-link --check 2> $TEST_ROOT/log || status=$? | ||||
| [ "$status" = "104" ] | ||||
| grep 'may not be deterministic' $TEST_ROOT/log | ||||
| 
 | ||||
| clearStore | ||||
| 
 | ||||
| nix-build dependencies.nix --no-out-link --repeat 3 | ||||
| 
 | ||||
| (! nix-build check.nix -A nondeterministic --no-out-link --repeat 1 2> $TEST_ROOT/log) | ||||
| nix-build check.nix -A nondeterministic --no-out-link --repeat 1 2> $TEST_ROOT/log || status=$? | ||||
| [ "$status" = "1" ] | ||||
| grep 'differs from previous round' $TEST_ROOT/log | ||||
| 
 | ||||
| path=$(nix-build check.nix -A fetchurl --no-out-link --hashed-mirrors '') | ||||
|  | @ -23,10 +25,23 @@ echo foo > $path | |||
| chmod -w $path | ||||
| 
 | ||||
| nix-build check.nix -A fetchurl --no-out-link --check --hashed-mirrors '' | ||||
| 
 | ||||
| # Note: "check" doesn't repair anything, it just compares to the hash stored in the database. | ||||
| [[ $(cat $path) = foo ]] | ||||
| 
 | ||||
| nix-build check.nix -A fetchurl --no-out-link --repair --hashed-mirrors '' | ||||
| 
 | ||||
| [[ $(cat $path) != foo ]] | ||||
| 
 | ||||
| nix-build check.nix -A hashmismatch --no-out-link --hashed-mirrors '' || status=$? | ||||
| [ "$status" = "102" ] | ||||
| 
 | ||||
| echo -n > ./dummy | ||||
| nix-build check.nix -A hashmismatch --no-out-link --hashed-mirrors '' | ||||
| echo 'Hello World' > ./dummy | ||||
| 
 | ||||
| nix-build check.nix -A hashmismatch --no-out-link --check --hashed-mirrors '' || status=$? | ||||
| [ "$status" = "102" ] | ||||
| 
 | ||||
| # Multiple failures with --keep-going | ||||
| nix-build check.nix -A nondeterministic --no-out-link | ||||
| nix-build check.nix -A nondeterministic -A hashmismatch --no-out-link --check --keep-going --hashed-mirrors '' || status=$? | ||||
| [ "$status" = "106" ] | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue