Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
38 lines
927 B
Nix
38 lines
927 B
Nix
{ lib, runCommand }:
|
|
|
|
rec {
|
|
runTest =
|
|
name: body:
|
|
runCommand name { strictDeps = true; } ''
|
|
set -o errexit
|
|
${body}
|
|
touch $out
|
|
'';
|
|
|
|
skip =
|
|
cond: text:
|
|
if cond then
|
|
''
|
|
echo "Skipping test $name" > /dev/stderr
|
|
''
|
|
else
|
|
text;
|
|
|
|
fail = text: ''
|
|
echo "FAIL: $name: ${text}" > /dev/stderr
|
|
exit 1
|
|
'';
|
|
|
|
expectSomeLineContainingYInFileXToMentionZ = file: filter: expected: ''
|
|
file=${lib.escapeShellArg file} filter=${lib.escapeShellArg filter} expected=${lib.escapeShellArg expected}
|
|
|
|
if ! grep --text --quiet "$filter" "$file"; then
|
|
${fail "The file “$file” should include a line containing “$filter”."}
|
|
fi
|
|
|
|
if ! grep --text "$filter" "$file" | grep --text --quiet "$expected"; then
|
|
${fail "The file “$file” should include a line containing “$filter” that also contains “$expected”."}
|
|
fi
|
|
'';
|
|
}
|