Re: [PATCH v9 1/5] dir_iterator: add tests for dir_iterator API
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 18, 2017, 04:12 UTC
- Message-ID
- <xmqqinm2fj70.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <1492462296-4990-2-git-send-email-bnmvco@gmail.com>
Daniel Ferreira <bnmvco@gmail.com> writes:
Show 34 quoted lines
> +test_expect_success 'setup' ' > + mkdir -p dir && > + mkdir -p dir/a/b/c/ && > + >dir/b && > + >dir/c && > + mkdir -p dir/d/e/d/ && > + >dir/a/b/c/d && > + >dir/a/e && > + >dir/d/e/d/a && > + > + mkdir -p dir2/a/b/c/ && > + >dir2/a/b/c/d > +' > + > +cat >expect-sorted-output <<-\EOF && > +[d] (a) [a] ./dir/a > +[d] (a/b) [b] ./dir/a/b > +[d] (a/b/c) [c] ./dir/a/b/c > +[d] (d) [d] ./dir/d > +[d] (d/e) [e] ./dir/d/e > +[d] (d/e/d) [d] ./dir/d/e/d > +[f] (a/b/c/d) [d] ./dir/a/b/c/d > +[f] (a/e) [e] ./dir/a/e > +[f] (b) [b] ./dir/b > +[f] (c) [c] ./dir/c > +[f] (d/e/d/a) [a] ./dir/d/e/d/a > +EOF > + > +test_expect_success 'dir-iterator should iterate through all files' ' > + test-dir-iterator ./dir >out && > + sort <out >./actual-pre-order-sorted-output && > + > + test_cmp expect-sorted-output actual-pre-order-sorted-output > +'
OK, if you can get multiple entries from a single directory, the order of these entries are not known because they come in readdir() order, and you'd need to sort the output to see if you got the same thing. Sort of makes sense.
Show 13 quoted lines
> + > +cat >expect-pre-order-output <<-\EOF && > +[d] (a) [a] ./dir2/a > +[d] (a/b) [b] ./dir2/a/b > +[d] (a/b/c) [c] ./dir2/a/b/c > +[f] (a/b/c/d) [d] ./dir2/a/b/c/d > +EOF > + > +test_expect_success 'dir-iterator should list files in the correct order' ' > + test-dir-iterator ./dir2 >actual-pre-order-output && > + > + test_cmp expect-pre-order-output actual-pre-order-output > +'
And this example has only one item per each recursion level, so the order of output is predictable. Again, makes sense.