Skip to content

Commit

Permalink
test-lib: don't use ulimit in test prerequisites on cygwin
Browse files Browse the repository at this point in the history
On cygwin (and MinGW), the 'ulimit' built-in bash command does not have
the desired effect of limiting the resources of new processes, at least
for the stack and file descriptors. However, it always returns success
and leads to several test prerequisites being erroneously set to true.

Add a check for cygwin and MinGW to the prerequisite expressions, using
a 'test_have_prereq !MINGW,!CYGWIN' clause, to guard against using ulimit.
This affects the prerequisite expressions for the ULIMIT_STACK_SIZE,
CMDLINE_LIMIT and ULIMIT_FILE_DESCRIPTORS prerequisites.

Signed-off-by: Ramsay Jones <[email protected]>
Reviewed-by: Jonathan Nieder <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
ramsay-jones authored and gitster committed Sep 15, 2017
1 parent 31625b3 commit 21dac1d
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 5 deletions.
5 changes: 4 additions & 1 deletion t/t1400-update-ref.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1253,7 +1253,10 @@ run_with_limited_open_files () {
(ulimit -n 32 && "$@")
}

test_lazy_prereq ULIMIT_FILE_DESCRIPTORS 'run_with_limited_open_files true'
test_lazy_prereq ULIMIT_FILE_DESCRIPTORS '
test_have_prereq !MINGW,!CYGWIN &&
run_with_limited_open_files true
'

test_expect_success ULIMIT_FILE_DESCRIPTORS 'large transaction creating branches does not burst open file limit' '
(
Expand Down
1 change: 0 additions & 1 deletion t/t6120-describe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,6 @@ test_expect_success 'describe ignoring a borken submodule' '
grep broken out
'

# we require ulimit, this excludes Windows
test_expect_failure ULIMIT_STACK_SIZE 'name-rev works in a deep repo' '
i=1 &&
while test $i -lt 8000
Expand Down
1 change: 0 additions & 1 deletion t/t7004-tag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1863,7 +1863,6 @@ test_expect_success 'version sort with very long prerelease suffix' '
git tag -l --sort=version:refname
'

# we require ulimit, this excludes Windows
test_expect_success ULIMIT_STACK_SIZE '--contains and --no-contains work in a deep repo' '
>expect &&
i=1 &&
Expand Down
10 changes: 8 additions & 2 deletions t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1165,13 +1165,19 @@ run_with_limited_cmdline () {
(ulimit -s 128 && "$@")
}

test_lazy_prereq CMDLINE_LIMIT 'run_with_limited_cmdline true'
test_lazy_prereq CMDLINE_LIMIT '
test_have_prereq !MINGW,!CYGWIN &&
run_with_limited_cmdline true
'

run_with_limited_stack () {
(ulimit -s 128 && "$@")
}

test_lazy_prereq ULIMIT_STACK_SIZE 'run_with_limited_stack true'
test_lazy_prereq ULIMIT_STACK_SIZE '
test_have_prereq !MINGW,!CYGWIN &&
run_with_limited_stack true
'

build_option () {
git version --build-options |
Expand Down

0 comments on commit 21dac1d

Please sign in to comment.