From aafdd8eead6b5856b9adecdbcec86acc194b8af0 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 7 Mar 2019 22:12:46 -0800 Subject: eval: Fix -unique with -depth --- eval.c | 2 +- tests.sh | 10 ++++++++++ tests/test_L_unique_depth.out | 3 +++ tests/test_unique_depth.out | 19 +++++++++++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/test_L_unique_depth.out create mode 100644 tests/test_unique_depth.out diff --git a/eval.c b/eval.c index bb89401..341b289 100644 --- a/eval.c +++ b/eval.c @@ -1256,7 +1256,7 @@ static enum bftw_action cmdline_callback(struct BFTW *ftwbuf, void *ptr) { goto done; } - if (cmdline->unique) { + if (cmdline->unique && ftwbuf->visit == BFTW_PRE) { if (!eval_file_unique(&state, args->seen)) { goto done; } diff --git a/tests.sh b/tests.sh index f26e888..f7aaa8c 100755 --- a/tests.sh +++ b/tests.sh @@ -649,8 +649,10 @@ bfs_tests=( test_type_multi test_unique + test_unique_depth test_L_unique test_L_unique_loops + test_L_unique_depth test_xtype_multi test_xtype_reorder @@ -1987,6 +1989,10 @@ function test_unique() { bfs_diff links/{file,symlink,hardlink} -unique } +function test_unique_depth() { + bfs_diff basic -unique -depth +} + function test_L_unique() { bfs_diff -L links/{file,symlink,hardlink} -unique } @@ -1995,6 +2001,10 @@ function test_L_unique_loops() { bfs_diff -L loops/deeply/nested -unique } +function test_L_unique_depth() { + bfs_diff -L loops/deeply/nested -unique -depth +} + if [ -t 1 -a ! "$VERBOSE" ]; then in_place=yes fi diff --git a/tests/test_L_unique_depth.out b/tests/test_L_unique_depth.out new file mode 100644 index 0000000..dad0a98 --- /dev/null +++ b/tests/test_L_unique_depth.out @@ -0,0 +1,3 @@ +loops/deeply/nested +loops/deeply/nested/dir +loops/deeply/nested/loop diff --git a/tests/test_unique_depth.out b/tests/test_unique_depth.out new file mode 100644 index 0000000..bb3cd8d --- /dev/null +++ b/tests/test_unique_depth.out @@ -0,0 +1,19 @@ +basic +basic/a +basic/b +basic/c +basic/e +basic/g +basic/i +basic/j +basic/k +basic/l +basic/c/d +basic/e/f +basic/g/h +basic/j/foo +basic/k/foo +basic/l/foo +basic/k/foo/bar +basic/l/foo/bar +basic/l/foo/bar/baz -- cgit v1.2.3