1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-30 14:10:59 +01:00

tests/functional: Work around stack overflows under ASAN in doc-functor tests

This was failing under ASAN in https://hydra.nixos.org/build/315173638/nixlog/1.
ASAN uses a bit more stack space and the default max call depth is not enough.
Not sure what's so special about this particular test.
This commit is contained in:
Sergei Zimmerman 2025-11-29 01:10:26 +03:00
parent 048a58d331
commit a2acb6d7aa
No known key found for this signature in database
3 changed files with 10 additions and 5 deletions

View file

@ -350,10 +350,9 @@ runRepl () {
local testDirNoUnderscores local testDirNoUnderscores
testDirNoUnderscores="${testDir//_/}" testDirNoUnderscores="${testDir//_/}"
# TODO: pass arguments to nix repl; see lang.sh
_NIX_TEST_RAW_MARKDOWN=1 \ _NIX_TEST_RAW_MARKDOWN=1 \
_NIX_TEST_REPL_ECHO=1 \ _NIX_TEST_REPL_ECHO=1 \
nix repl 2>&1 \ nix repl "$@" 2>&1 \
| stripColors \ | stripColors \
| tr -d '\0' \ | tr -d '\0' \
| stripEmptyLinesBeforePrompt \ | stripEmptyLinesBeforePrompt \
@ -373,7 +372,12 @@ for test in $(cd "$testDir/repl"; echo *.in); do
in="$testDir/repl/$test.in" in="$testDir/repl/$test.in"
actual="$TEST_ROOT/$test.actual" actual="$TEST_ROOT/$test.actual"
expected="$testDir/repl/$test.expected" expected="$testDir/repl/$test.expected"
(cd "$testDir/repl"; set +x; runRepl 2>&1) < "$in" > "$actual" || { declare -a flags=()
if test -e "$testDir/repl/$test.flags"; then
read -r -a flags < "$testDir/repl/$test.flags"
fi
(cd "$testDir/repl"; set +x; runRepl "${flags[@]}" 2>&1) < "$in" > "$actual" || {
echo "FAIL: $test (exit code $?)" >&2 echo "FAIL: $test (exit code $?)" >&2
badExitCode=1 badExitCode=1
} }

View file

@ -43,7 +43,7 @@ error:
| ^ | ^
91| }; 91| };
(19999 duplicate frames omitted) (199 duplicate frames omitted)
error: stack overflow; max-call-depth exceeded error: stack overflow; max-call-depth exceeded
at /path/to/tests/functional/repl/doc-functor.nix:90:23: at /path/to/tests/functional/repl/doc-functor.nix:90:23:
@ -56,7 +56,7 @@ nix-repl> :doc diverging
error: error:
… while partially calling '__functor' to retrieve documentation … while partially calling '__functor' to retrieve documentation
(10000 duplicate frames omitted) (100 duplicate frames omitted)
… while calling '__functor' … while calling '__functor'
at /path/to/tests/functional/repl/doc-functor.nix:103:21: at /path/to/tests/functional/repl/doc-functor.nix:103:21:

View file

@ -0,0 +1 @@
--max-call-depth 100