forked from lix-project/lix
c11836126b
Use `set -u` and `set -o pipefail` to catch accidental mistakes and failures more strongly. - `set -u` catches the use of undefined variables - `set -o pipefail` catches failures (like `set -e`) earlier in the pipeline. This makes the tests a bit more robust. It is nice to read code not worrying about these spurious success paths (via uncaught) errors undermining the tests. Indeed, I caught some bugs doing this. There are a few tests where we run a command that should fail, and then search its output to make sure the failure message is one that we expect. Before, since the `grep` was the last command in the pipeline the exit code of those failing programs was silently ignored. Now with `set -o pipefail` it won't be, and we have to do something so the expected failure doesn't accidentally fail the test. To do that we use `expect` and a new `expectStderr` to check for the exact failing exit code. See the comments on each for why. `grep -q` is replaced with `grepQuiet`, see the comments on that function for why. `grep -v` when we just want the exit code is replaced with `grepInverse, see the comments on that function for why. `grep -q -v` together is, surprise surprise, replaced with `grepQuietInverse`, which is both combined. Co-authored-by: Robert Hensing <roberth@users.noreply.github.com> |
||
---|---|---|
.. | ||
ca | ||
common | ||
config | ||
flakes | ||
installer | ||
lang | ||
nixos | ||
plugins | ||
add.sh | ||
bad.tar.xz | ||
bash-profile.sh | ||
big-derivation-attr.nix | ||
binary-cache-build-remote.sh | ||
binary-cache.sh | ||
brotli.sh | ||
build-delete.sh | ||
build-dry.sh | ||
build-hook-ca-fixed.nix | ||
build-hook-ca-floating.nix | ||
build-hook.nix | ||
build-remote-content-addressed-fixed.sh | ||
build-remote-content-addressed-floating.sh | ||
build-remote-input-addressed.sh | ||
build-remote.sh | ||
build.sh | ||
ca-shell.nix | ||
case-hack.sh | ||
case.nar | ||
check-refs.nix | ||
check-refs.sh | ||
check-reqs.nix | ||
check-reqs.sh | ||
check.nix | ||
check.sh | ||
common.sh | ||
completions.sh | ||
compression-levels.sh | ||
compute-levels.sh | ||
config.nix.in | ||
config.sh | ||
db-migration.sh | ||
dependencies.builder0.sh | ||
dependencies.nix | ||
dependencies.sh | ||
describe-stores.sh | ||
dummy | ||
dump-db.sh | ||
eval-store.sh | ||
eval.nix | ||
eval.sh | ||
export-graph.nix | ||
export-graph.sh | ||
export.sh | ||
failing.nix | ||
fetchClosure.sh | ||
fetchGit.sh | ||
fetchGitRefs.sh | ||
fetchGitSubmodules.sh | ||
fetchMercurial.sh | ||
fetchPath.sh | ||
fetchTree-file.sh | ||
fetchurl.sh | ||
filter-source.nix | ||
filter-source.sh | ||
fixed.builder1.sh | ||
fixed.builder2.sh | ||
fixed.nix | ||
fixed.sh | ||
fmt.sh | ||
fmt.simple.sh | ||
function-trace.sh | ||
gc-auto.sh | ||
gc-concurrent.builder.sh | ||
gc-concurrent.nix | ||
gc-concurrent.sh | ||
gc-concurrent2.builder.sh | ||
gc-non-blocking.sh | ||
gc-runtime.nix | ||
gc-runtime.sh | ||
gc.sh | ||
hash-check.nix | ||
hash.sh | ||
import-derivation.nix | ||
import-derivation.sh | ||
impure-derivations.nix | ||
impure-derivations.sh | ||
init.sh | ||
install-darwin.sh | ||
lang.sh | ||
linux-sandbox.sh | ||
local-store.sh | ||
local.mk | ||
logging.sh | ||
misc.sh | ||
multiple-outputs.nix | ||
multiple-outputs.sh | ||
nar-access.nix | ||
nar-access.sh | ||
nix-build-examples.nix | ||
nix-build.sh | ||
nix-channel.sh | ||
nix-copy-ssh.sh | ||
nix-profile.sh | ||
nix-shell.sh | ||
nix_path.sh | ||
optimise-store.sh | ||
output-normalization.sh | ||
parallel.builder.sh | ||
parallel.nix | ||
parallel.sh | ||
pass-as-file.sh | ||
path-from-hash-part.sh | ||
path.nix | ||
placeholders.sh | ||
plugins.sh | ||
post-hook.sh | ||
pure-eval.nix | ||
pure-eval.sh | ||
push-to-store-old.sh | ||
push-to-store.sh | ||
readfile-context.nix | ||
readfile-context.sh | ||
recursive.sh | ||
referrers.sh | ||
remote-store.sh | ||
repair.sh | ||
repl.sh | ||
restricted.nix | ||
restricted.sh | ||
search.nix | ||
search.sh | ||
secure-drv-outputs.nix | ||
secure-drv-outputs.sh | ||
selfref-gc.sh | ||
shell-hello.nix | ||
shell.nix | ||
shell.sh | ||
shell.shebang.rb | ||
shell.shebang.sh | ||
signing.sh | ||
simple-failing.nix | ||
simple.builder.sh | ||
simple.nix | ||
simple.sh | ||
ssh-relay.sh | ||
store-ping.sh | ||
structured-attrs-shell.nix | ||
structured-attrs.nix | ||
structured-attrs.sh | ||
substitute-with-invalid-ca.sh | ||
suggestions.sh | ||
tarball.sh | ||
test-infra.sh | ||
timeout.nix | ||
timeout.sh | ||
toString-path.sh | ||
undefined-variable.nix | ||
user-envs-migration.sh | ||
user-envs.builder.sh | ||
user-envs.nix | ||
user-envs.sh | ||
why-depends.sh | ||
zstd.sh |