mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-27 01:44:21 +00:00
tests: avoid coredumps when determining memory limits
* init.cfg (get_min_ulimit_v_): Refactor ulimit call to... (ulimit_supported_): ...here, and add calls to avoid coredumps.
This commit is contained in:
parent
611e7e02bf
commit
89f7adb158
21
init.cfg
21
init.cfg
@ -153,6 +153,23 @@ require_openat_support_()
|
||||
fi
|
||||
}
|
||||
|
||||
# Return true if command runs with the
|
||||
# ulimit specified in the first argument
|
||||
ulimit_supported_()
|
||||
{
|
||||
local v
|
||||
v="$1"
|
||||
shift
|
||||
|
||||
(
|
||||
# Try to disable core dumps which may
|
||||
# occur with memory constraints
|
||||
trap '' SEGV; ulimit -c 0;
|
||||
|
||||
ulimit -v $v && "$@"
|
||||
) >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# Determine the minimum required VM limit to run the given command.
|
||||
# Output that value to stdout ... to be used by the caller.
|
||||
# Return 0 in case of success, and a non-Zero value otherwise.
|
||||
@ -166,11 +183,11 @@ get_min_ulimit_v_()
|
||||
page_size=$(($page_size / 1024))
|
||||
|
||||
for v in $( seq 5000 5000 50000 ); do
|
||||
if ( ulimit -v $v && "$@" ) >/dev/null; then
|
||||
if ulimit_supported_ $v "$@"; then
|
||||
local prev_v
|
||||
prev_v=$v
|
||||
for v in $( seq $(($prev_v-1000)) -1000 1000 ); do
|
||||
( ulimit -v $v && "$@" ) >/dev/null || \
|
||||
ulimit_supported_ $v "$@" ||
|
||||
{
|
||||
ret_v=$((prev_v + $page_size))
|
||||
echo $ret_v
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user