t/perf/p7519: speed up test on Windows
Change p7519 to use `test_seq` and `xargs` rather than a `for` loop to touch thousands of files. This takes minutes off of test runs on Windows because of process creation overhead. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8aa0209701
commit
86f7433f97
@ -98,6 +98,13 @@ trace_stop () {
|
||||
fi
|
||||
}
|
||||
|
||||
touch_files () {
|
||||
n=$1 &&
|
||||
d="$n"_files &&
|
||||
|
||||
(cd $d && test_seq 1 $n | xargs touch )
|
||||
}
|
||||
|
||||
test_expect_success "one time repo setup" '
|
||||
# set untrackedCache depending on the environment
|
||||
if test -n "$GIT_PERF_7519_UNTRACKED_CACHE"
|
||||
@ -119,10 +126,11 @@ test_expect_success "one time repo setup" '
|
||||
fi &&
|
||||
|
||||
mkdir 1_file 10_files 100_files 1000_files 10000_files &&
|
||||
for i in $(test_seq 1 10); do touch 10_files/$i || return 1; done &&
|
||||
for i in $(test_seq 1 100); do touch 100_files/$i || return 1; done &&
|
||||
for i in $(test_seq 1 1000); do touch 1000_files/$i || return 1; done &&
|
||||
for i in $(test_seq 1 10000); do touch 10000_files/$i || return 1; done &&
|
||||
: 1_file directory should be left empty &&
|
||||
touch_files 10 &&
|
||||
touch_files 100 &&
|
||||
touch_files 1000 &&
|
||||
touch_files 10000 &&
|
||||
git add 1_file 10_files 100_files 1000_files 10000_files &&
|
||||
git commit -qm "Add files" &&
|
||||
|
||||
@ -199,15 +207,15 @@ test_fsmonitor_suite () {
|
||||
|
||||
# Update the mtimes on upto 100k files to make status think
|
||||
# that they are dirty. For simplicity, omit any files with
|
||||
# LFs (i.e. anything that ls-files thinks it needs to dquote).
|
||||
# Then fully backslash-quote the paths to capture any
|
||||
# whitespace so that they pass thru xargs properly.
|
||||
# LFs (i.e. anything that ls-files thinks it needs to dquote)
|
||||
# and any files with whitespace so that they pass thru xargs
|
||||
# properly.
|
||||
#
|
||||
test_perf_w_drop_caches "status (dirty) ($DESC)" '
|
||||
git ls-files | \
|
||||
head -100000 | \
|
||||
grep -v \" | \
|
||||
sed '\''s/\(.\)/\\\1/g'\'' | \
|
||||
grep -v " ." | \
|
||||
xargs test-tool chmtime -300 &&
|
||||
git status
|
||||
'
|
||||
|
Loading…
Reference in New Issue
Block a user