On Mon, Apr 6, 2015 at 4:40 PM, Torsten Bögershausen <tboegi@xxxxxx> wrote: > On 2015-04-06 13.48, Erik Elfström wrote: >> Signed-off-by: Erik Elfström <erik.elfstrom@xxxxxxxxx> >> --- >> 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. > >> + do >> + mkdir 500_sub_dirs/dir$i You may want: mkdir 500_sub_dirs/dir$i || return $? to catch failure of 'mkdir'. >> + 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 $? >> + 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: >> + 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'. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html