Re: [PATCH 2/3] p7300: added performance tests for clean
From: Eric Sunshine <hidden>
Date: 2016-06-15 23:04:23
On Mon, Apr 6, 2015 at 4:40 PM, Torsten Bögershausen [off-list ref] wrote:
On 2015-04-06 13.48, Erik Elfström wrote:quoted
Signed-off-by: Erik Elfström <redacted> ---diff --git a/t/perf/p7300-clean.sh b/t/perf/p7300-clean.sh new file mode 100755 index 0000000..3f56fb2 --- /dev/null +++ b/t/perf/p7300-clean.sh@@ -0,0 +1,37 @@ +#!/bin/sh + +test_description="Test git-clean performance" + +. ./perf-lib.sh + +test_perf_large_repo +test_checkout_worktree + +test_expect_success 'setup untracked directory with many sub dirs' ' + rm -rf 500_sub_dirs 50000_sub_dirs clean_test_dir && + mkdir 500_sub_dirs 50000_sub_dirs clean_test_dir && + for i in $(seq 1 500)I think "seq" is bash-only, and can be easily replaced by "test_seq"
test_seq is definitely desirable. 'seq' is not present on some systems I use.
quoted
+ do + mkdir 500_sub_dirs/dir$i
You may want:
mkdir 500_sub_dirs/dir$i || return $?
to catch failure of 'mkdir'.
quoted
+ done && + for i in $(seq 1 100) + do + cp -r 500_sub_dirs 50000_sub_dirs/dir$i
Ditto:
cp -r 500_sub_dirs 50000_sub_dirs/dir$i || return $?
quoted
+ done +' + +test_perf 'clean many untracked sub dirs, check for nested git' ' + rm -rf clean_test_dir/50000_sub_dirs_cpy && + cp -r 50000_sub_dirs clean_test_dir/50000_sub_dirs_cpy && + git clean -q -f -d clean_test_dir/ && + test 0 = $(ls -A clean_test_dir/ | wc -l)Is the "ls -A" portable on all systems: http://pubs.opengroup.org/onlinepubs/009695399/utilities/ls.html My feeling is that the "emptiness" of a directory can by tested by simply removing it:quoted
+ git clean -q -f -d clean_test_dir/ && + rmdir clean_test_dir(And similar below)
There's also the test_dir_is_empty() function which makes the intent even clearer than 'rmdir'.