build: replace 100 offset for build exit codes
This commit is contained in:
		
							parent
							
								
									1ac399dd11
								
							
						
					
					
						commit
						a52c331edb
					
				
					 3 changed files with 30 additions and 9 deletions
				
			
		|  | @ -247,8 +247,15 @@ printed.)</para> | ||||||
| </variablelist> | </variablelist> | ||||||
| 
 | 
 | ||||||
| <para>With the <option>--keep-going</option> flag it's possible for | <para>With the <option>--keep-going</option> flag it's possible for | ||||||
| multiple build failures to occur, in this case the 1xx status codes | multiple failures to occur, in this case the 1xx status codes are or combined | ||||||
| are or combined.</para> | using binary or. <screen> | ||||||
|  | 1100100 | ||||||
|  |    ^^^^ | ||||||
|  |    |||`- timeout | ||||||
|  |    ||`-- output hash mismatch | ||||||
|  |    |`--- build failure | ||||||
|  |    `---- not deterministic | ||||||
|  | </screen></para> | ||||||
| 
 | 
 | ||||||
| </refsection> | </refsection> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4471,15 +4471,29 @@ void Worker::waitForInput() | ||||||
| 
 | 
 | ||||||
| unsigned int Worker::exitStatus() | unsigned int Worker::exitStatus() | ||||||
| { | { | ||||||
|  |     /*
 | ||||||
|  |      * 1100100 | ||||||
|  |      *    ^^^^ | ||||||
|  |      *    |||`- timeout | ||||||
|  |      *    ||`-- output hash mismatch | ||||||
|  |      *    |`--- build failure | ||||||
|  |      *    `---- not deterministic | ||||||
|  |      */ | ||||||
|     unsigned int mask = 0; |     unsigned int mask = 0; | ||||||
|  |     bool buildFailure = permanentFailure || timedOut || hashMismatch; | ||||||
|  |     if (buildFailure) | ||||||
|  |         mask |= 0x04;  // 100
 | ||||||
|     if (timedOut) |     if (timedOut) | ||||||
|         mask |= 1; |         mask |= 0x01;  // 101
 | ||||||
|     if (hashMismatch) |     if (hashMismatch) | ||||||
|         mask |= 2; |         mask |= 0x02;  // 102
 | ||||||
|     if (checkMismatch) |     if (checkMismatch) { | ||||||
|         mask |= 4; |         mask |= 0x08;  // 104
 | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     return mask ? 100 + mask : 1; |     if (mask) | ||||||
|  |         mask |= 0x60; | ||||||
|  |     return mask ? mask : 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ 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 | ||||||
| nix-build check.nix -A nondeterministic --no-out-link --check 2> $TEST_ROOT/log || status=$? | 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 | grep 'may not be deterministic' $TEST_ROOT/log | ||||||
|  | [ "$status" = "104" ] | ||||||
| 
 | 
 | ||||||
| clearStore | clearStore | ||||||
| 
 | 
 | ||||||
|  | @ -44,4 +44,4 @@ nix-build check.nix -A hashmismatch --no-out-link --check --hashed-mirrors '' || | ||||||
| # Multiple failures with --keep-going | # Multiple failures with --keep-going | ||||||
| nix-build check.nix -A nondeterministic --no-out-link | 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=$? | nix-build check.nix -A nondeterministic -A hashmismatch --no-out-link --check --keep-going --hashed-mirrors '' || status=$? | ||||||
| [ "$status" = "106" ] | [ "$status" = "110" ] | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue