Re: [PATCH 1/1] t/test-lib: make `test_dir_is_empty` more robust
- From
Jeff King <peff@peff.net>
- Date
- Aug 5, 2018, 20:52 UTC
- Message-ID
- <20180805205231.GA14688@sigill.intra.peff.net>
- In-Reply-To
- <CAPig+cQSryjWrFZML_g0fR5oq6dzVaWPXm_4R-Jg_ay1R2DzbQ@mail.gmail.com>
On Sun, Aug 05, 2018 at 01:23:05AM -0400, Eric Sunshine wrote:
Show 12 quoted lines
> A simpler approach, without the portability concerns of -A, would be
> to remove the "." and ".." lines from the top of the listing:
>
> ls -f1 "$1" | sed '1,2d'
>
> If we're worried about -f not being sufficiently portable, then an
> even simpler approach would be to check whether the output of 'ls -a1'
> has more lines than the two expected ("." and ".."):
>
> test $(ls -a1 "$1" | wc -l) -gt 2
>
> I think I favor this final implementation over the others.Perhaps even simpler:
test "$1" = "$(find "$1")"
That will recurse any subdirectories, possibly wasting time, but since the point is that we expect it to be empty, that's probably OK.
Like Junio said elsewhere, I am not sure if it is even worth caring too much about pathological cases in the test suite, where we control all of the paths. But using `find` does shave off one process invocation, too. :)
-Peff