The lazy-init codepath will not be exercised uniless threaded. Skip
the entire test on a single-core box. Also replace a hard-coded
constant of 2000 (number of cache entries to manifacture for tests)
with a variable with a human readable name.
Signed-off-by: Kevin Willford <kewillf@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
. ./test-lib.sh
+if test 1 -eq $($GIT_BUILD_DIR/t/helper/test-online-cpus)
+then
+ skip_all='skipping lazy-init tests, single cpu'
+ test_done
+fi
+
+LAZY_THREAD_COST=2000
+
test_expect_success 'no buffer overflow in lazy_init_name_hash' '
(
- test_seq 2000 | sed "s/^/a_/"
+ test_seq $LAZY_THREAD_COST | sed "s/^/a_/"
echo b/b/b
- test_seq 2000 | sed "s/^/c_/"
+ test_seq $LAZY_THREAD_COST | sed "s/^/c_/"
test_seq 50 | sed "s/^/d_/" | tr "\n" "/"; echo d
) |
- sed -e "s/^/100644 $EMPTY_BLOB /" |
+ sed "s/^/100644 $EMPTY_BLOB /" |
git update-index --index-info &&
test-lazy-init-name-hash -m
'