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…
Reference in a new issue