summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2022-03-13 13:32:44 -0400
committerTavian Barnes <tavianator@tavianator.com>2022-03-13 13:44:32 -0400
commit851942e235fe17869d7e7f2b3cc4d559f1e90e89 (patch)
treefae14d24f9be3ec20d1b668ac9eed05d3438a153
parentfa767895d4165dc9b0a8808f4760141067e0ea12 (diff)
downloadbfs-851942e235fe17869d7e7f2b3cc4d559f1e90e89.tar.xz
tests: Use plain sort, not bfs_sort
bfs_sort existed to keep the test outputs nicely in breadth-first order. Unfortunately the implementation using awk didn't support NUL bytes.
-rwxr-xr-xtests.sh19
-rw-r--r--tests/test_D_all.out12
-rw-r--r--tests/test_D_multi.out12
-rw-r--r--tests/test_L.out12
-rw-r--r--tests/test_L_depth.out12
-rw-r--r--tests/test_L_loops_continue.out6
-rw-r--r--tests/test_L_mount.out2
-rw-r--r--tests/test_L_xdev.out2
-rw-r--r--tests/test_L_xtype_f.out2
-rw-r--r--tests/test_L_xtype_l.out6
-rw-r--r--tests/test_O0.out12
-rw-r--r--tests/test_O1.out12
-rw-r--r--tests/test_O2.out12
-rw-r--r--tests/test_O3.out12
-rw-r--r--tests/test_Ofast.out12
-rw-r--r--tests/test_X.out14
-rw-r--r--tests/test_bang.out8
-rw-r--r--tests/test_basic.out12
-rw-r--r--tests/test_closed_stdin.out12
-rw-r--r--tests/test_color_rs_lc_rc_ec.out2
-rw-r--r--tests/test_comma.out14
-rw-r--r--tests/test_d_path.out12
-rw-r--r--tests/test_data_flow_and_swap.out4
-rw-r--r--tests/test_data_flow_depth.out2
-rw-r--r--tests/test_data_flow_group.out12
-rw-r--r--tests/test_data_flow_hidden.out12
-rw-r--r--tests/test_data_flow_or_swap.out4
-rw-r--r--tests/test_data_flow_sparse.out12
-rw-r--r--tests/test_data_flow_user.out12
-rw-r--r--tests/test_daystart.out12
-rw-r--r--tests/test_daystart_twice.out12
-rw-r--r--tests/test_de_morgan_and.out2
-rw-r--r--tests/test_de_morgan_or.out10
-rw-r--r--tests/test_depth.out12
-rw-r--r--tests/test_depth_maxdepth_2.out10
-rw-r--r--tests/test_depth_mindepth_1.out12
-rw-r--r--tests/test_depth_mindepth_2.out2
-rw-r--r--tests/test_depth_overflow.out12
-rw-r--r--tests/test_depth_slash.out12
-rw-r--r--tests/test_empty.out2
-rw-r--r--tests/test_exclude_depth.out6
-rw-r--r--tests/test_exclude_name.out6
-rw-r--r--tests/test_exec.out12
-rw-r--r--tests/test_exec_flush.out12
-rw-r--r--tests/test_exec_plus_semicolon.out12
-rw-r--r--tests/test_exec_plus_status.out12
-rw-r--r--tests/test_exec_substring.out12
-rw-r--r--tests/test_execdir_plus.out2
-rw-r--r--tests/test_execdir_pwd.out2
-rw-r--r--tests/test_f.out2
-rw-r--r--tests/test_files0_from_file.out20
-rw-r--r--tests/test_files0_from_stdin.out20
-rw-r--r--tests/test_flag_weird_names.out20
-rw-r--r--tests/test_follow.out12
-rw-r--r--tests/test_follow_comma.out18
-rw-r--r--tests/test_fstype.out12
-rw-r--r--tests/test_gid.out12
-rw-r--r--tests/test_gid_minus.out12
-rw-r--r--tests/test_gid_minus_plus.out12
-rw-r--r--tests/test_gid_name.out12
-rw-r--r--tests/test_gid_plus.out12
-rw-r--r--tests/test_gid_plus_plus.out12
-rw-r--r--tests/test_group_id.out12
-rw-r--r--tests/test_group_name.out12
-rw-r--r--tests/test_group_nogroup.out12
-rw-r--r--tests/test_hidden_root.out2
-rw-r--r--tests/test_ipath.out2
-rw-r--r--tests/test_iwholename.out2
-rw-r--r--tests/test_mindepth.out12
-rw-r--r--tests/test_mount.out2
-rw-r--r--tests/test_nohidden.out16
-rw-r--r--tests/test_nohidden_depth.out16
-rw-r--r--tests/test_not.out8
-rw-r--r--tests/test_not_prune.out6
-rw-r--r--tests/test_o.out6
-rw-r--r--tests/test_ok_plus_semicolon.out12
-rw-r--r--tests/test_ok_stdin.out20
-rw-r--r--tests/test_or.out6
-rw-r--r--tests/test_path.out2
-rw-r--r--tests/test_path_d.out12
-rw-r--r--tests/test_precedence.out2
-rw-r--r--tests/test_printf.out12
-rw-r--r--tests/test_printf_H.out30
-rw-r--r--tests/test_printf_Y_error.out2
-rw-r--r--tests/test_printf_color.out2
-rw-r--r--tests/test_printf_flags.out10
-rw-r--r--tests/test_printf_l_nonlink.out4
-rw-r--r--tests/test_printf_trailing_slash.out4
-rw-r--r--tests/test_printf_trailing_slashes.out4
-rw-r--r--tests/test_printf_types.out8
-rw-r--r--tests/test_printx.out18
-rw-r--r--tests/test_prune_or_print.out6
-rw-r--r--tests/test_regextype_emacs.out2
-rw-r--r--tests/test_stderr_fails_silently.out12
-rw-r--r--tests/test_true.out12
-rw-r--r--tests/test_type_d.out4
-rw-r--r--tests/test_type_multi.out4
-rw-r--r--tests/test_uid.out12
-rw-r--r--tests/test_uid_minus.out12
-rw-r--r--tests/test_uid_minus_plus.out12
-rw-r--r--tests/test_uid_name.out12
-rw-r--r--tests/test_uid_plus.out12
-rw-r--r--tests/test_uid_plus_plus.out12
-rw-r--r--tests/test_unique_depth.out12
-rw-r--r--tests/test_user_id.out12
-rw-r--r--tests/test_user_name.out12
-rw-r--r--tests/test_user_nouser.out12
-rw-r--r--tests/test_weird_names.out20
-rw-r--r--tests/test_wholename.out2
-rw-r--r--tests/test_xdev.out2
-rw-r--r--tests/test_xtype_f.out4
-rw-r--r--tests/test_xtype_l.out2
-rw-r--r--tests/test_xtype_multi.out8
113 files changed, 533 insertions, 548 deletions
diff --git a/tests.sh b/tests.sh
index d41f875..5370249 100755
--- a/tests.sh
+++ b/tests.sh
@@ -1069,10 +1069,6 @@ function make_scratch() {
}
make_scratch "$TMP/scratch"
-function bfs_sort() {
- awk -F/ '{ print NF - 1 " " $0 }' | sort -n | cut -d' ' -f2-
-}
-
# Close stdin so bfs doesn't think we're interactive
exec </dev/null
@@ -1174,7 +1170,7 @@ function bfs_diff() (
local ACTUAL="$TMP/$CALLER.out"
fi
- $BFS "$@" | bfs_sort >"$ACTUAL"
+ $BFS "$@" | sort >"$ACTUAL"
local STATUS="${PIPESTATUS[0]}"
if [ ! "$UPDATE" ]; then
@@ -2395,18 +2391,7 @@ function test_printf_leak() {
function test_printf_nul() {
# NUL byte regression test
- local EXPECTED="$TESTS/${FUNCNAME[0]}.out"
- if [ "$UPDATE" ]; then
- local ACTUAL="$EXPECTED"
- else
- local ACTUAL="$TMP/${FUNCNAME[0]}.out"
- fi
-
- invoke_bfs basic -maxdepth 0 -printf '%h\0%f\n' >"$ACTUAL"
-
- if [ ! "$UPDATE" ]; then
- $DIFF -u "$EXPECTED" "$ACTUAL"
- fi
+ bfs_diff basic -maxdepth 0 -printf '%h\0%f\n'
}
function test_printf_w() {
diff --git a/tests/test_D_all.out b/tests/test_D_all.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_D_all.out
+++ b/tests/test_D_all.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_D_multi.out b/tests/test_D_multi.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_D_multi.out
+++ b/tests/test_D_multi.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_L.out b/tests/test_L.out
index e24f4f7..ec9e861 100644
--- a/tests/test_L.out
+++ b/tests/test_L.out
@@ -1,17 +1,17 @@
links
links/broken
links/deeply
+links/deeply/nested
+links/deeply/nested/broken
+links/deeply/nested/dir
+links/deeply/nested/file
+links/deeply/nested/link
links/file
links/hardlink
links/notdir
links/skip
-links/symlink
-links/deeply/nested
links/skip/broken
links/skip/dir
links/skip/file
links/skip/link
-links/deeply/nested/broken
-links/deeply/nested/dir
-links/deeply/nested/file
-links/deeply/nested/link
+links/symlink
diff --git a/tests/test_L_depth.out b/tests/test_L_depth.out
index e24f4f7..ec9e861 100644
--- a/tests/test_L_depth.out
+++ b/tests/test_L_depth.out
@@ -1,17 +1,17 @@
links
links/broken
links/deeply
+links/deeply/nested
+links/deeply/nested/broken
+links/deeply/nested/dir
+links/deeply/nested/file
+links/deeply/nested/link
links/file
links/hardlink
links/notdir
links/skip
-links/symlink
-links/deeply/nested
links/skip/broken
links/skip/dir
links/skip/file
links/skip/link
-links/deeply/nested/broken
-links/deeply/nested/dir
-links/deeply/nested/file
-links/deeply/nested/link
+links/symlink
diff --git a/tests/test_L_loops_continue.out b/tests/test_L_loops_continue.out
index fbe0cac..a514555 100644
--- a/tests/test_L_loops_continue.out
+++ b/tests/test_L_loops_continue.out
@@ -1,11 +1,11 @@
loops
loops/broken
loops/deeply
+loops/deeply/nested
+loops/deeply/nested/dir
loops/file
loops/notdir
loops/skip
-loops/symlink
-loops/deeply/nested
loops/skip/dir
loops/skip/loop
-loops/deeply/nested/dir
+loops/symlink
diff --git a/tests/test_L_mount.out b/tests/test_L_mount.out
index 2c3c590..2e80082 100644
--- a/tests/test_L_mount.out
+++ b/tests/test_L_mount.out
@@ -1,5 +1,5 @@
scratch
scratch/foo
-scratch/mnt
scratch/foo/bar
scratch/foo/qux
+scratch/mnt
diff --git a/tests/test_L_xdev.out b/tests/test_L_xdev.out
index 2c3c590..2e80082 100644
--- a/tests/test_L_xdev.out
+++ b/tests/test_L_xdev.out
@@ -1,5 +1,5 @@
scratch
scratch/foo
-scratch/mnt
scratch/foo/bar
scratch/foo/qux
+scratch/mnt
diff --git a/tests/test_L_xtype_f.out b/tests/test_L_xtype_f.out
index 78953d1..8b95397 100644
--- a/tests/test_L_xtype_f.out
+++ b/tests/test_L_xtype_f.out
@@ -1,4 +1,4 @@
+links/deeply/nested/file
links/file
links/hardlink
links/skip/file
-links/deeply/nested/file
diff --git a/tests/test_L_xtype_l.out b/tests/test_L_xtype_l.out
index 93cfc26..973864f 100644
--- a/tests/test_L_xtype_l.out
+++ b/tests/test_L_xtype_l.out
@@ -1,8 +1,8 @@
links/broken
+links/deeply/nested/broken
+links/deeply/nested/link
links/notdir
links/skip
-links/symlink
links/skip/broken
links/skip/link
-links/deeply/nested/broken
-links/deeply/nested/link
+links/symlink
diff --git a/tests/test_O0.out b/tests/test_O0.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_O0.out
+++ b/tests/test_O0.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_O1.out b/tests/test_O1.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_O1.out
+++ b/tests/test_O1.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_O2.out b/tests/test_O2.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_O2.out
+++ b/tests/test_O2.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_O3.out b/tests/test_O3.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_O3.out
+++ b/tests/test_O3.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_Ofast.out b/tests/test_Ofast.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_Ofast.out
+++ b/tests/test_Ofast.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_X.out b/tests/test_X.out
index 52f0278..afa84f7 100644
--- a/tests/test_X.out
+++ b/tests/test_X.out
@@ -1,19 +1,19 @@
weirdnames
weirdnames/!
weirdnames/!-
-weirdnames/(
-weirdnames/(-
-weirdnames/)
-weirdnames/,
-weirdnames/-
-weirdnames/...
-weirdnames/[
weirdnames/!-/e
weirdnames/!/d
+weirdnames/(
+weirdnames/(-
weirdnames/(-/c
weirdnames/(/b
+weirdnames/)
weirdnames/)/g
+weirdnames/,
weirdnames/,/f
+weirdnames/-
weirdnames/-/a
+weirdnames/...
weirdnames/.../h
+weirdnames/[
weirdnames/[/k
diff --git a/tests/test_bang.out b/tests/test_bang.out
index 2501b2f..b286454 100644
--- a/tests/test_bang.out
+++ b/tests/test_bang.out
@@ -2,15 +2,15 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/k/foo/bar
+basic/l
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_basic.out b/tests/test_basic.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_basic.out
+++ b/tests/test_basic.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_closed_stdin.out b/tests/test_closed_stdin.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_closed_stdin.out
+++ b/tests/test_closed_stdin.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_color_rs_lc_rc_ec.out b/tests/test_color_rs_lc_rc_ec.out
index a71df24..d39bbe7 100644
--- a/tests/test_color_rs_lc_rc_ec.out
+++ b/tests/test_color_rs_lc_rc_ec.out
@@ -1,4 +1,3 @@
-LC01;34RCrainbowEC
LC01;34RCrainbow/ECLC01;32RCexec.shEC
LC01;34RCrainbow/ECLC01;35RCsocketEC
LC01;34RCrainbow/ECLC01;36RCbrokenEC
@@ -18,3 +17,4 @@ LC01;34RCrainbow/ECmh2
LC01;34RCrainbow/ECstar.gz
LC01;34RCrainbow/ECstar.tar
LC01;34RCrainbow/ECstar.tar.gz
+LC01;34RCrainbowEC
diff --git a/tests/test_comma.out b/tests/test_comma.out
index 56b2bde..740eefc 100644
--- a/tests/test_comma.out
+++ b/tests/test_comma.out
@@ -2,22 +2,22 @@ basic
basic/a
basic/b
basic/c
-basic/e
-basic/g
-basic/i
-basic/j
-basic/k
-basic/l
basic/c/d
+basic/e
basic/e/f
basic/e/f
+basic/g
basic/g/h
+basic/i
+basic/j
basic/j/foo
basic/j/foo
+basic/k
basic/k/foo
basic/k/foo
+basic/k/foo/bar
+basic/l
basic/l/foo
basic/l/foo
-basic/k/foo/bar
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_d_path.out b/tests/test_d_path.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_d_path.out
+++ b/tests/test_d_path.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_data_flow_and_swap.out b/tests/test_data_flow_and_swap.out
index 1e72fd9..e604709 100644
--- a/tests/test_data_flow_and_swap.out
+++ b/tests/test_data_flow_and_swap.out
@@ -2,11 +2,11 @@ basic
basic/c
basic/e
basic/g
+basic/g/h
basic/i
basic/j
basic/k
-basic/l
-basic/g/h
basic/k/foo
+basic/l
basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_data_flow_depth.out b/tests/test_data_flow_depth.out
index 350b489..ab127ec 100644
--- a/tests/test_data_flow_depth.out
+++ b/tests/test_data_flow_depth.out
@@ -3,6 +3,6 @@ basic/e/f
basic/g/h
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_data_flow_group.out b/tests/test_data_flow_group.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_data_flow_group.out
+++ b/tests/test_data_flow_group.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_data_flow_hidden.out b/tests/test_data_flow_hidden.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_data_flow_hidden.out
+++ b/tests/test_data_flow_hidden.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_data_flow_or_swap.out b/tests/test_data_flow_or_swap.out
index 1e72fd9..e604709 100644
--- a/tests/test_data_flow_or_swap.out
+++ b/tests/test_data_flow_or_swap.out
@@ -2,11 +2,11 @@ basic
basic/c
basic/e
basic/g
+basic/g/h
basic/i
basic/j
basic/k
-basic/l
-basic/g/h
basic/k/foo
+basic/l
basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_data_flow_sparse.out b/tests/test_data_flow_sparse.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_data_flow_sparse.out
+++ b/tests/test_data_flow_sparse.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_data_flow_user.out b/tests/test_data_flow_user.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_data_flow_user.out
+++ b/tests/test_data_flow_user.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_daystart.out b/tests/test_daystart.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_daystart.out
+++ b/tests/test_daystart.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_daystart_twice.out b/tests/test_daystart_twice.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_daystart_twice.out
+++ b/tests/test_daystart_twice.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_de_morgan_and.out b/tests/test_de_morgan_and.out
index 723790f..7b7afd2 100644
--- a/tests/test_de_morgan_and.out
+++ b/tests/test_de_morgan_and.out
@@ -2,9 +2,9 @@ basic
basic/c
basic/e
basic/g
+basic/g/h
basic/i
basic/j
basic/k
basic/l
-basic/g/h
basic/l/foo/bar
diff --git a/tests/test_de_morgan_or.out b/tests/test_de_morgan_or.out
index 697f6b8..2a57066 100644
--- a/tests/test_de_morgan_or.out
+++ b/tests/test_de_morgan_or.out
@@ -2,17 +2,17 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_depth.out b/tests/test_depth.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_depth.out
+++ b/tests/test_depth.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_depth_maxdepth_2.out b/tests/test_depth_maxdepth_2.out
index b79fef1..c53041e 100644
--- a/tests/test_depth_maxdepth_2.out
+++ b/tests/test_depth_maxdepth_2.out
@@ -2,15 +2,15 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
+basic/l
basic/l/foo
diff --git a/tests/test_depth_mindepth_1.out b/tests/test_depth_mindepth_1.out
index 1f00c58..3b461cf 100644
--- a/tests/test_depth_mindepth_1.out
+++ b/tests/test_depth_mindepth_1.out
@@ -1,18 +1,18 @@
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_depth_mindepth_2.out b/tests/test_depth_mindepth_2.out
index 4198bf9..6ccd80a 100644
--- a/tests/test_depth_mindepth_2.out
+++ b/tests/test_depth_mindepth_2.out
@@ -3,7 +3,7 @@ basic/e/f
basic/g/h
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_depth_overflow.out b/tests/test_depth_overflow.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_depth_overflow.out
+++ b/tests/test_depth_overflow.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_depth_slash.out b/tests/test_depth_slash.out
index 7ce7a82..77526d5 100644
--- a/tests/test_depth_slash.out
+++ b/tests/test_depth_slash.out
@@ -2,18 +2,18 @@ basic/
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_empty.out b/tests/test_empty.out
index 81bdb0a..a0f4b76 100644
--- a/tests/test_empty.out
+++ b/tests/test_empty.out
@@ -1,8 +1,8 @@
basic/a
basic/b
-basic/i
basic/c/d
basic/e/f
basic/g/h
+basic/i
basic/j/foo
basic/k/foo/bar
diff --git a/tests/test_exclude_depth.out b/tests/test_exclude_depth.out
index 40e2ea0..59e3c42 100644
--- a/tests/test_exclude_depth.out
+++ b/tests/test_exclude_depth.out
@@ -2,12 +2,12 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
basic/l
-basic/c/d
-basic/e/f
-basic/g/h
diff --git a/tests/test_exclude_name.out b/tests/test_exclude_name.out
index 40e2ea0..59e3c42 100644
--- a/tests/test_exclude_name.out
+++ b/tests/test_exclude_name.out
@@ -2,12 +2,12 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
basic/l
-basic/c/d
-basic/e/f
-basic/g/h
diff --git a/tests/test_exec.out b/tests/test_exec.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_exec.out
+++ b/tests/test_exec.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_exec_flush.out b/tests/test_exec_flush.out
index 0e6234a..fdd7b16 100644
--- a/tests/test_exec_flush.out
+++ b/tests/test_exec_flush.out
@@ -2,18 +2,18 @@ basic found
basic/a found
basic/b found
basic/c found
+basic/c/d found
basic/e found
+basic/e/f found
basic/g found
+basic/g/h found
basic/i found
basic/j found
-basic/k found
-basic/l found
-basic/c/d found
-basic/e/f found
-basic/g/h found
basic/j/foo found
+basic/k found
basic/k/foo found
-basic/l/foo found
basic/k/foo/bar found
+basic/l found
+basic/l/foo found
basic/l/foo/bar found
basic/l/foo/bar/baz found
diff --git a/tests/test_exec_plus_semicolon.out b/tests/test_exec_plus_semicolon.out
index 3805261..f33c48f 100644
--- a/tests/test_exec_plus_semicolon.out
+++ b/tests/test_exec_plus_semicolon.out
@@ -2,18 +2,18 @@ foo basic bar + baz
foo basic/a bar + baz
foo basic/b bar + baz
foo basic/c bar + baz
+foo basic/c/d bar + baz
foo basic/e bar + baz
+foo basic/e/f bar + baz
foo basic/g bar + baz
+foo basic/g/h bar + baz
foo basic/i bar + baz
foo basic/j bar + baz
-foo basic/k bar + baz
-foo basic/l bar + baz
-foo basic/c/d bar + baz
-foo basic/e/f bar + baz
-foo basic/g/h bar + baz
foo basic/j/foo bar + baz
+foo basic/k bar + baz
foo basic/k/foo bar + baz
-foo basic/l/foo bar + baz
foo basic/k/foo/bar bar + baz
+foo basic/l bar + baz
+foo basic/l/foo bar + baz
foo basic/l/foo/bar bar + baz
foo basic/l/foo/bar/baz bar + baz
diff --git a/tests/test_exec_plus_status.out b/tests/test_exec_plus_status.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_exec_plus_status.out
+++ b/tests/test_exec_plus_status.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_exec_substring.out b/tests/test_exec_substring.out
index 1c58fb2..32a6353 100644
--- a/tests/test_exec_substring.out
+++ b/tests/test_exec_substring.out
@@ -2,18 +2,18 @@
-basic/a-
-basic/b-
-basic/c-
+-basic/c/d-
-basic/e-
+-basic/e/f-
-basic/g-
+-basic/g/h-
-basic/i-
-basic/j-
--basic/k-
--basic/l-
--basic/c/d-
--basic/e/f-
--basic/g/h-
-basic/j/foo-
+-basic/k-
-basic/k/foo-
--basic/l/foo-
-basic/k/foo/bar-
+-basic/l-
+-basic/l/foo-
-basic/l/foo/bar-
-basic/l/foo/bar/baz-
diff --git a/tests/test_execdir_plus.out b/tests/test_execdir_plus.out
index 5bbb758..8866a8f 100644
--- a/tests/test_execdir_plus.out
+++ b/tests/test_execdir_plus.out
@@ -1,3 +1,4 @@
+./a ./b ./c ./e ./g ./i ./j ./k ./l
./bar
./bar
./basic
@@ -8,4 +9,3 @@
./foo
./foo
./h
-./a ./b ./c ./e ./g ./i ./j ./k ./l
diff --git a/tests/test_execdir_pwd.out b/tests/test_execdir_pwd.out
index e66db9a..a11cd25 100644
--- a/tests/test_execdir_pwd.out
+++ b/tests/test_execdir_pwd.out
@@ -13,7 +13,7 @@ basic/e
basic/g
basic/j
basic/k
-basic/l
basic/k/foo
+basic/l
basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_f.out b/tests/test_f.out
index 2998538..77eac77 100644
--- a/tests/test_f.out
+++ b/tests/test_f.out
@@ -1,4 +1,4 @@
(
--
(/b
+-
-/a
diff --git a/tests/test_files0_from_file.out b/tests/test_files0_from_file.out
index ac8aa45..1d87e6b 100644
--- a/tests/test_files0_from_file.out
+++ b/tests/test_files0_from_file.out
@@ -1,33 +1,33 @@
-!
-!-
-(
-(-
-)
-,
--
-...
-[
-\
/j
/j
+!
+!-
!-/e
!-/e
!/d
!/d
+(
+(-
(-/c
(-/c
(/b
(/b
+)
)/g
)/g
+,
,/f
,/f
+-
-/a
-/a
+...
.../h
.../h
+[
[/k
[/k
+\
\/i
\/i
diff --git a/tests/test_files0_from_stdin.out b/tests/test_files0_from_stdin.out
index ac8aa45..1d87e6b 100644
--- a/tests/test_files0_from_stdin.out
+++ b/tests/test_files0_from_stdin.out
@@ -1,33 +1,33 @@
-!
-!-
-(
-(-
-)
-,
--
-...
-[
-\
/j
/j
+!
+!-
!-/e
!-/e
!/d
!/d
+(
+(-
(-/c
(-/c
(/b
(/b
+)
)/g
)/g
+,
,/f
,/f
+-
-/a
-/a
+...
.../h
.../h
+[
[/k
[/k
+\
\/i
\/i
diff --git a/tests/test_flag_weird_names.out b/tests/test_flag_weird_names.out
index 73d0ff3..c395659 100644
--- a/tests/test_flag_weird_names.out
+++ b/tests/test_flag_weird_names.out
@@ -1,28 +1,28 @@
!-
!-
-(-
-(-
-)
-)
-,
-,
--
--
!-/e
!-/e
+(-
+(-
(-/c
(-/c
+)
+)
)/g
)/g
+,
+,
,/f
,/f
+-
+-
-/a
-/a
./!
./!
-./(
-./(
./!/d
./!/d
+./(
+./(
./(/b
./(/b
diff --git a/tests/test_follow.out b/tests/test_follow.out
index e24f4f7..ec9e861 100644
--- a/tests/test_follow.out
+++ b/tests/test_follow.out
@@ -1,17 +1,17 @@
links
links/broken
links/deeply
+links/deeply/nested
+links/deeply/nested/broken
+links/deeply/nested/dir
+links/deeply/nested/file
+links/deeply/nested/link
links/file
links/hardlink
links/notdir
links/skip
-links/symlink
-links/deeply/nested
links/skip/broken
links/skip/dir
links/skip/file
links/skip/link
-links/deeply/nested/broken
-links/deeply/nested/dir
-links/deeply/nested/file
-links/deeply/nested/link
+links/symlink
diff --git a/tests/test_follow_comma.out b/tests/test_follow_comma.out
index 64d8c51..920b3d3 100644
--- a/tests/test_follow_comma.out
+++ b/tests/test_follow_comma.out
@@ -1,23 +1,23 @@
.
./
+./ /j
./!
./!-
-./(
-./(-
-./)
-./,
-./-
-./...
-./[
-./\
-./ /j
./!-/e
./!/d
+./(
+./(-
./(-/c
./(/b
+./)
./)/g
+./,
./,/f
+./-
./-/a
+./...
./.../h
+./[
./[/k
+./\
./\/i
diff --git a/tests/test_fstype.out b/tests/test_fstype.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_fstype.out
+++ b/tests/test_fstype.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_gid.out b/tests/test_gid.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_gid.out
+++ b/tests/test_gid.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_gid_minus.out b/tests/test_gid_minus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_gid_minus.out
+++ b/tests/test_gid_minus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_gid_minus_plus.out b/tests/test_gid_minus_plus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_gid_minus_plus.out
+++ b/tests/test_gid_minus_plus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_gid_name.out b/tests/test_gid_name.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_gid_name.out
+++ b/tests/test_gid_name.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_gid_plus.out b/tests/test_gid_plus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_gid_plus.out
+++ b/tests/test_gid_plus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_gid_plus_plus.out b/tests/test_gid_plus_plus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_gid_plus_plus.out
+++ b/tests/test_gid_plus_plus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_group_id.out b/tests/test_group_id.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_group_id.out
+++ b/tests/test_group_id.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_group_name.out b/tests/test_group_name.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_group_name.out
+++ b/tests/test_group_name.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_group_nogroup.out b/tests/test_group_nogroup.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_group_nogroup.out
+++ b/tests/test_group_nogroup.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_hidden_root.out b/tests/test_hidden_root.out
index 199ae5f..8c1371b 100644
--- a/tests/test_hidden_root.out
+++ b/tests/test_hidden_root.out
@@ -1,5 +1,5 @@
...
+.../../...
./...
./...
-.../../...
././...
diff --git a/tests/test_ipath.out b/tests/test_ipath.out
index 0d36df9..ae1ae21 100644
--- a/tests/test_ipath.out
+++ b/tests/test_ipath.out
@@ -1,7 +1,7 @@
basic/e/f
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_iwholename.out b/tests/test_iwholename.out
index 0d36df9..ae1ae21 100644
--- a/tests/test_iwholename.out
+++ b/tests/test_iwholename.out
@@ -1,7 +1,7 @@
basic/e/f
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_mindepth.out b/tests/test_mindepth.out
index 1f00c58..3b461cf 100644
--- a/tests/test_mindepth.out
+++ b/tests/test_mindepth.out
@@ -1,18 +1,18 @@
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_mount.out b/tests/test_mount.out
index 005bdcf..f7839fb 100644
--- a/tests/test_mount.out
+++ b/tests/test_mount.out
@@ -1,4 +1,4 @@
scratch
scratch/foo
-scratch/mnt
scratch/foo/bar
+scratch/mnt
diff --git a/tests/test_nohidden.out b/tests/test_nohidden.out
index 0c9b73d..d3ec901 100644
--- a/tests/test_nohidden.out
+++ b/tests/test_nohidden.out
@@ -1,21 +1,21 @@
weirdnames
weirdnames/
+weirdnames/ /j
weirdnames/!
weirdnames/!-
-weirdnames/(
-weirdnames/(-
-weirdnames/)
-weirdnames/,
-weirdnames/-
-weirdnames/[
-weirdnames/\
-weirdnames/ /j
weirdnames/!-/e
weirdnames/!/d
+weirdnames/(
+weirdnames/(-
weirdnames/(-/c
weirdnames/(/b
+weirdnames/)
weirdnames/)/g
+weirdnames/,
weirdnames/,/f
+weirdnames/-
weirdnames/-/a
+weirdnames/[
weirdnames/[/k
+weirdnames/\
weirdnames/\/i
diff --git a/tests/test_nohidden_depth.out b/tests/test_nohidden_depth.out
index 0c9b73d..d3ec901 100644
--- a/tests/test_nohidden_depth.out
+++ b/tests/test_nohidden_depth.out
@@ -1,21 +1,21 @@
weirdnames
weirdnames/
+weirdnames/ /j
weirdnames/!
weirdnames/!-
-weirdnames/(
-weirdnames/(-
-weirdnames/)
-weirdnames/,
-weirdnames/-
-weirdnames/[
-weirdnames/\
-weirdnames/ /j
weirdnames/!-/e
weirdnames/!/d
+weirdnames/(
+weirdnames/(-
weirdnames/(-/c
weirdnames/(/b
+weirdnames/)
weirdnames/)/g
+weirdnames/,
weirdnames/,/f
+weirdnames/-
weirdnames/-/a
+weirdnames/[
weirdnames/[/k
+weirdnames/\
weirdnames/\/i
diff --git a/tests/test_not.out b/tests/test_not.out
index 2501b2f..b286454 100644
--- a/tests/test_not.out
+++ b/tests/test_not.out
@@ -2,15 +2,15 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/k/foo/bar
+basic/l
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_not_prune.out b/tests/test_not_prune.out
index 40e2ea0..59e3c42 100644
--- a/tests/test_not_prune.out
+++ b/tests/test_not_prune.out
@@ -2,12 +2,12 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
basic/l
-basic/c/d
-basic/e/f
-basic/g/h
diff --git a/tests/test_o.out b/tests/test_o.out
index 9a82ee2..1650c4d 100644
--- a/tests/test_o.out
+++ b/tests/test_o.out
@@ -2,12 +2,12 @@ basic
basic/c
basic/e
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
+basic/l
basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_ok_plus_semicolon.out b/tests/test_ok_plus_semicolon.out
index 85d27e5..2a3e14f 100644
--- a/tests/test_ok_plus_semicolon.out
+++ b/tests/test_ok_plus_semicolon.out
@@ -2,18 +2,18 @@ basic +
basic/a +
basic/b +
basic/c +
+basic/c/d +
basic/e +
+basic/e/f +
basic/g +
+basic/g/h +
basic/i +
basic/j +
-basic/k +
-basic/l +
-basic/c/d +
-basic/e/f +
-basic/g/h +
basic/j/foo +
+basic/k +
basic/k/foo +
-basic/l/foo +
basic/k/foo/bar +
+basic/l +
+basic/l/foo +
basic/l/foo/bar +
basic/l/foo/bar/baz +
diff --git a/tests/test_ok_stdin.out b/tests/test_ok_stdin.out
index 30b57fd..7acf711 100644
--- a/tests/test_ok_stdin.out
+++ b/tests/test_ok_stdin.out
@@ -1,19 +1,19 @@
-basic? y
basic/a? y
basic/b? y
+basic/c/d? y
basic/c? y
+basic/e/f? y
basic/e? y
+basic/g/h? y
basic/g? y
basic/i? y
-basic/j? y
-basic/k? y
-basic/l? y
-basic/c/d? y
-basic/e/f? y
-basic/g/h? y
basic/j/foo? y
-basic/k/foo? y
-basic/l/foo? y
+basic/j? y
basic/k/foo/bar? y
-basic/l/foo/bar? y
+basic/k/foo? y
+basic/k? y
basic/l/foo/bar/baz? y
+basic/l/foo/bar? y
+basic/l/foo? y
+basic/l? y
+basic? y
diff --git a/tests/test_or.out b/tests/test_or.out
index 9a82ee2..1650c4d 100644
--- a/tests/test_or.out
+++ b/tests/test_or.out
@@ -2,12 +2,12 @@ basic
basic/c
basic/e
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
+basic/l
basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_path.out b/tests/test_path.out
index 0d36df9..ae1ae21 100644
--- a/tests/test_path.out
+++ b/tests/test_path.out
@@ -1,7 +1,7 @@
basic/e/f
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_path_d.out b/tests/test_path_d.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_path_d.out
+++ b/tests/test_path_d.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_precedence.out b/tests/test_precedence.out
index b3d7a51..7f589f2 100644
--- a/tests/test_precedence.out
+++ b/tests/test_precedence.out
@@ -1,4 +1,4 @@
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar/baz
diff --git a/tests/test_printf.out b/tests/test_printf.out
index 801ddbb..77ce17a 100644
--- a/tests/test_printf.out
+++ b/tests/test_printf.out
@@ -2,18 +2,18 @@
%p(basic/a) %d(1) %f(a) %h(basic) %H(basic) %P(a) %m(644) %M(-rw-r--r--) %y(f)
%p(basic/b) %d(1) %f(b) %h(basic) %H(basic) %P(b) %m(644) %M(-rw-r--r--) %y(f)
%p(basic/c) %d(1) %f(c) %h(basic) %H(basic) %P(c) %m(755) %M(drwxr-xr-x) %y(d)
+%p(basic/c/d) %d(2) %f(d) %h(basic/c) %H(basic) %P(c/d) %m(644) %M(-rw-r--r--) %y(f)
%p(basic/e) %d(1) %f(e) %h(basic) %H(basic) %P(e) %m(755) %M(drwxr-xr-x) %y(d)
+%p(basic/e/f) %d(2) %f(f) %h(basic/e) %H(basic) %P(e/f) %m(644) %M(-rw-r--r--) %y(f)
%p(basic/g) %d(1) %f(g) %h(basic) %H(basic) %P(g) %m(755) %M(drwxr-xr-x) %y(d)
+%p(basic/g/h) %d(2) %f(h) %h(basic/g) %H(basic) %P(g/h) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/i) %d(1) %f(i) %h(basic) %H(basic) %P(i) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/j) %d(1) %f(j) %h(basic) %H(basic) %P(j) %m(755) %M(drwxr-xr-x) %y(d)
-%p(basic/k) %d(1) %f(k) %h(basic) %H(basic) %P(k) %m(755) %M(drwxr-xr-x) %y(d)
-%p(basic/l) %d(1) %f(l) %h(basic) %H(basic) %P(l) %m(755) %M(drwxr-xr-x) %y(d)
-%p(basic/c/d) %d(2) %f(d) %h(basic/c) %H(basic) %P(c/d) %m(644) %M(-rw-r--r--) %y(f)
-%p(basic/e/f) %d(2) %f(f) %h(basic/e) %H(basic) %P(e/f) %m(644) %M(-rw-r--r--) %y(f)
-%p(basic/g/h) %d(2) %f(h) %h(basic/g) %H(basic) %P(g/h) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/j/foo) %d(2) %f(foo) %h(basic/j) %H(basic) %P(j/foo) %m(644) %M(-rw-r--r--) %y(f)
+%p(basic/k) %d(1) %f(k) %h(basic) %H(basic) %P(k) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/k/foo) %d(2) %f(foo) %h(basic/k) %H(basic) %P(k/foo) %m(755) %M(drwxr-xr-x) %y(d)
-%p(basic/l/foo) %d(2) %f(foo) %h(basic/l) %H(basic) %P(l/foo) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/k/foo/bar) %d(3) %f(bar) %h(basic/k/foo) %H(basic) %P(k/foo/bar) %m(644) %M(-rw-r--r--) %y(f)
+%p(basic/l) %d(1) %f(l) %h(basic) %H(basic) %P(l) %m(755) %M(drwxr-xr-x) %y(d)
+%p(basic/l/foo) %d(2) %f(foo) %h(basic/l) %H(basic) %P(l/foo) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/l/foo/bar) %d(3) %f(bar) %h(basic/l/foo) %H(basic) %P(l/foo/bar) %m(755) %M(drwxr-xr-x) %y(d)
%p(basic/l/foo/bar/baz) %d(4) %f(baz) %h(basic/l/foo/bar) %H(basic) %P(l/foo/bar/baz) %m(644) %M(-rw-r--r--) %y(f)
diff --git a/tests/test_printf_H.out b/tests/test_printf_H.out
index 116b425..6b605ff 100644
--- a/tests/test_printf_H.out
+++ b/tests/test_printf_H.out
@@ -1,32 +1,32 @@
%p(basic) %d(0) %f(basic) %h(.) %H(basic) %P() %y(d)
-%p(links) %d(0) %f(links) %h(.) %H(links) %P() %y(d)
%p(basic/a) %d(1) %f(a) %h(basic) %H(basic) %P(a) %y(f)
%p(basic/b) %d(1) %f(b) %h(basic) %H(basic) %P(b) %y(f)
%p(basic/c) %d(1) %f(c) %h(basic) %H(basic) %P(c) %y(d)
+%p(basic/c/d) %d(2) %f(d) %h(basic/c) %H(basic) %P(c/d) %y(f)
%p(basic/e) %d(1) %f(e) %h(basic) %H(basic) %P(e) %y(d)
+%p(basic/e/f) %d(2) %f(f) %h(basic/e) %H(basic) %P(e/f) %y(f)
%p(basic/g) %d(1) %f(g) %h(basic) %H(basic) %P(g) %y(d)
+%p(basic/g/h) %d(2) %f(h) %h(basic/g) %H(basic) %P(g/h) %y(d)
%p(basic/i) %d(1) %f(i) %h(basic) %H(basic) %P(i) %y(d)
%p(basic/j) %d(1) %f(j) %h(basic) %H(basic) %P(j) %y(d)
+%p(basic/j/foo) %d(2) %f(foo) %h(basic/j) %H(basic) %P(j/foo) %y(f)
%p(basic/k) %d(1) %f(k) %h(basic) %H(basic) %P(k) %y(d)
+%p(basic/k/foo) %d(2) %f(foo) %h(basic/k) %H(basic) %P(k/foo) %y(d)
+%p(basic/k/foo/bar) %d(3) %f(bar) %h(basic/k/foo) %H(basic) %P(k/foo/bar) %y(f)
%p(basic/l) %d(1) %f(l) %h(basic) %H(basic) %P(l) %y(d)
+%p(basic/l/foo) %d(2) %f(foo) %h(basic/l) %H(basic) %P(l/foo) %y(d)
+%p(basic/l/foo/bar) %d(3) %f(bar) %h(basic/l/foo) %H(basic) %P(l/foo/bar) %y(d)
+%p(basic/l/foo/bar/baz) %d(4) %f(baz) %h(basic/l/foo/bar) %H(basic) %P(l/foo/bar/baz) %y(f)
+%p(links) %d(0) %f(links) %h(.) %H(links) %P() %y(d)
%p(links/broken) %d(1) %f(broken) %h(links) %H(links) %P(broken) %y(l)
%p(links/deeply) %d(1) %f(deeply) %h(links) %H(links) %P(deeply) %y(d)
-%p(links/file) %d(1) %f(file) %h(links) %H(links) %P(file) %y(f)
-%p(links/hardlink) %d(1) %f(hardlink) %h(links) %H(links) %P(hardlink) %y(f)
-%p(links/notdir) %d(1) %f(notdir) %h(links) %H(links) %P(notdir) %y(l)
-%p(links/skip) %d(1) %f(skip) %h(links) %H(links) %P(skip) %y(l)
-%p(links/symlink) %d(1) %f(symlink) %h(links) %H(links) %P(symlink) %y(l)
-%p(basic/c/d) %d(2) %f(d) %h(basic/c) %H(basic) %P(c/d) %y(f)
-%p(basic/e/f) %d(2) %f(f) %h(basic/e) %H(basic) %P(e/f) %y(f)
-%p(basic/g/h) %d(2) %f(h) %h(basic/g) %H(basic) %P(g/h) %y(d)
-%p(basic/j/foo) %d(2) %f(foo) %h(basic/j) %H(basic) %P(j/foo) %y(f)
-%p(basic/k/foo) %d(2) %f(foo) %h(basic/k) %H(basic) %P(k/foo) %y(d)
-%p(basic/l/foo) %d(2) %f(foo) %h(basic/l) %H(basic) %P(l/foo) %y(d)
%p(links/deeply/nested) %d(2) %f(nested) %h(links/deeply) %H(links) %P(deeply/nested) %y(d)
-%p(basic/k/foo/bar) %d(3) %f(bar) %h(basic/k/foo) %H(basic) %P(k/foo/bar) %y(f)
-%p(basic/l/foo/bar) %d(3) %f(bar) %h(basic/l/foo) %H(basic) %P(l/foo/bar) %y(d)
%p(links/deeply/nested/broken) %d(3) %f(broken) %h(links/deeply/nested) %H(links) %P(deeply/nested/broken) %y(l)
%p(links/deeply/nested/dir) %d(3) %f(dir) %h(links/deeply/nested) %H(links) %P(deeply/nested/dir) %y(d)
%p(links/deeply/nested/file) %d(3) %f(file) %h(links/deeply/nested) %H(links) %P(deeply/nested/file) %y(f)
%p(links/deeply/nested/link) %d(3) %f(link) %h(links/deeply/nested) %H(links) %P(deeply/nested/link) %y(l)
-%p(basic/l/foo/bar/baz) %d(4) %f(baz) %h(basic/l/foo/bar) %H(basic) %P(l/foo/bar/baz) %y(f)
+%p(links/file) %d(1) %f(file) %h(links) %H(links) %P(file) %y(f)
+%p(links/hardlink) %d(1) %f(hardlink) %h(links) %H(links) %P(hardlink) %y(f)
+%p(links/notdir) %d(1) %f(notdir) %h(links) %H(links) %P(notdir) %y(l)
+%p(links/skip) %d(1) %f(skip) %h(links) %H(links) %P(skip) %y(l)
+%p(links/symlink) %d(1) %f(symlink) %h(links) %H(links) %P(symlink) %y(l)
diff --git a/tests/test_printf_Y_error.out b/tests/test_printf_Y_error.out
index 00d6ee7..410a9b5 100644
--- a/tests/test_printf_Y_error.out
+++ b/tests/test_printf_Y_error.out
@@ -1,3 +1,3 @@
(scratch) () d d
-(scratch/foo) () d d
(scratch/bar) (foo/bar) l ?
+(scratch/foo) () d d
diff --git a/tests/test_printf_color.out b/tests/test_printf_color.out
index dc04d14..d9cd1a4 100644
--- a/tests/test_printf_color.out
+++ b/tests/test_printf_color.out
@@ -2,6 +2,7 @@
. ./rainbow exec.sh ./rainbow/exec.sh rainbow/exec.sh
. ./rainbow socket ./rainbow/socket rainbow/socket
. ./rainbow broken ./rainbow/broken rainbow/broken nowhere
+. ./rainbow chardev_link ./rainbow/chardev_link rainbow/chardev_link /dev/null
. ./rainbow link.txt ./rainbow/link.txt rainbow/link.txt file.txt
. ./rainbow sticky_ow ./rainbow/sticky_ow rainbow/sticky_ow
. ./rainbow sgid ./rainbow/sgid rainbow/sgid
@@ -17,4 +18,3 @@
. ./rainbow star.gz ./rainbow/star.gz rainbow/star.gz
. ./rainbow star.tar ./rainbow/star.tar rainbow/star.tar
. ./rainbow star.tar.gz ./rainbow/star.tar.gz rainbow/star.tar.gz
-. ./rainbow chardev_link ./rainbow/chardev_link rainbow/chardev_link /dev/null
diff --git a/tests/test_printf_flags.out b/tests/test_printf_flags.out
index 1a92b6e..c2c1f0a 100644
--- a/tests/test_printf_flags.out
+++ b/tests/test_printf_flags.out
@@ -2,18 +2,18 @@
|basic/a | +01 0644
|basic/b | +01 0644
|basic/c | +01 0755
+|basic/c/d | +02 0644
|basic/e | +01 0755
+|basic/e/f | +02 0644
|basic/g | +01 0755
+|basic/g/h | +02 0755
|basic/i | +01 0755
|basic/j | +01 0755
-|basic/k | +01 0755
-|basic/l | +01 0755
-|basic/c/d | +02 0644
-|basic/e/f | +02 0644
-|basic/g/h | +02 0755
|basic/j/fo| +02 0644
+|basic/k | +01 0755
|basic/k/fo| +02 0755
|basic/k/fo| +03 0644
+|basic/l | +01 0755
|basic/l/fo| +02 0755
|basic/l/fo| +03 0755
|basic/l/fo| +04 0644
diff --git a/tests/test_printf_l_nonlink.out b/tests/test_printf_l_nonlink.out
index 66e2908..30df155 100644
--- a/tests/test_printf_l_nonlink.out
+++ b/tests/test_printf_l_nonlink.out
@@ -1,11 +1,11 @@
| links -> |
| links/file -> |
+| links/skip -> deeply/nested |
| links/broken -> nowhere |
| links/deeply -> |
+| links/notdir -> symlink/file |
| links/symlink -> file |
| links/hardlink -> |
-| links/skip -> deeply/nested |
-| links/notdir -> symlink/file |
| links/deeply/nested -> |
| links/deeply/nested/dir -> |
| links/deeply/nested/file -> |
diff --git a/tests/test_printf_trailing_slash.out b/tests/test_printf_trailing_slash.out
index 0aa4ffc..017ac0d 100644
--- a/tests/test_printf_trailing_slash.out
+++ b/tests/test_printf_trailing_slash.out
@@ -1,3 +1,4 @@
+(.)/(basic/)
(basic)/(a)
(basic)/(b)
(basic)/(c)
@@ -7,13 +8,12 @@
(basic)/(j)
(basic)/(k)
(basic)/(l)
-(.)/(basic/)
(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)
(basic/l/foo)/(bar)
(basic/l/foo/bar)/(baz)
diff --git a/tests/test_printf_trailing_slashes.out b/tests/test_printf_trailing_slashes.out
index cbb54a8..fd27101 100644
--- a/tests/test_printf_trailing_slashes.out
+++ b/tests/test_printf_trailing_slashes.out
@@ -1,3 +1,4 @@
+(.)/(basic///)
(basic//)/(a)
(basic//)/(b)
(basic//)/(c)
@@ -7,13 +8,12 @@
(basic//)/(j)
(basic//)/(k)
(basic//)/(l)
-(.)/(basic///)
(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)
(basic///l/foo)/(bar)
(basic///l/foo/bar)/(baz)
diff --git a/tests/test_printf_types.out b/tests/test_printf_types.out
index 9cfe347..8144c7c 100644
--- a/tests/test_printf_types.out
+++ b/tests/test_printf_types.out
@@ -1,11 +1,11 @@
(loops) () d d
(loops/broken) (nowhere) l N
(loops/deeply) () d d
+(loops/deeply/nested) () d d
+(loops/deeply/nested/dir) () d d
+(loops/deeply/nested/loop) (../../deeply) l d
(loops/file) () f f
(loops/loop) (loop) l L
-(loops/symlink) (file) l f
-(loops/deeply/nested) () d d
(loops/notdir) (symlink/file) l N
-(loops/deeply/nested/dir) () d d
(loops/skip) (deeply/nested/loop/nested) l d
-(loops/deeply/nested/loop) (../../deeply) l d
+(loops/symlink) (file) l f
diff --git a/tests/test_printx.out b/tests/test_printx.out
index dd87a45..04bf9a9 100644
--- a/tests/test_printx.out
+++ b/tests/test_printx.out
@@ -1,23 +1,23 @@
weirdnames
weirdnames/!
weirdnames/!-
-weirdnames/(
-weirdnames/(-
-weirdnames/)
-weirdnames/,
-weirdnames/-
-weirdnames/...
-weirdnames/[
-weirdnames/\
-weirdnames/\\
weirdnames/!-/e
weirdnames/!/d
+weirdnames/(
+weirdnames/(-
weirdnames/(-/c
weirdnames/(/b
+weirdnames/)
weirdnames/)/g
+weirdnames/,
weirdnames/,/f
+weirdnames/-
weirdnames/-/a
+weirdnames/...
weirdnames/.../h
+weirdnames/[
weirdnames/[/k
+weirdnames/\
weirdnames/\ /j
+weirdnames/\\
weirdnames/\\/i
diff --git a/tests/test_prune_or_print.out b/tests/test_prune_or_print.out
index 40e2ea0..59e3c42 100644
--- a/tests/test_prune_or_print.out
+++ b/tests/test_prune_or_print.out
@@ -2,12 +2,12 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
basic/k
basic/l
-basic/c/d
-basic/e/f
-basic/g/h
diff --git a/tests/test_regextype_emacs.out b/tests/test_regextype_emacs.out
index 8cd18de..95942b4 100644
--- a/tests/test_regextype_emacs.out
+++ b/tests/test_regextype_emacs.out
@@ -1,6 +1,6 @@
basic/e/f
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_stderr_fails_silently.out b/tests/test_stderr_fails_silently.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_stderr_fails_silently.out
+++ b/tests/test_stderr_fails_silently.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_true.out b/tests/test_true.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_true.out
+++ b/tests/test_true.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_type_d.out b/tests/test_type_d.out
index 1e72fd9..e604709 100644
--- a/tests/test_type_d.out
+++ b/tests/test_type_d.out
@@ -2,11 +2,11 @@ basic
basic/c
basic/e
basic/g
+basic/g/h
basic/i
basic/j
basic/k
-basic/l
-basic/g/h
basic/k/foo
+basic/l
basic/l/foo
basic/l/foo/bar
diff --git a/tests/test_type_multi.out b/tests/test_type_multi.out
index d22ed9f..3cae08a 100644
--- a/tests/test_type_multi.out
+++ b/tests/test_type_multi.out
@@ -1,7 +1,7 @@
links
links/deeply
-links/file
-links/hardlink
links/deeply/nested
links/deeply/nested/dir
links/deeply/nested/file
+links/file
+links/hardlink
diff --git a/tests/test_uid.out b/tests/test_uid.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_uid.out
+++ b/tests/test_uid.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_uid_minus.out b/tests/test_uid_minus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_uid_minus.out
+++ b/tests/test_uid_minus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_uid_minus_plus.out b/tests/test_uid_minus_plus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_uid_minus_plus.out
+++ b/tests/test_uid_minus_plus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_uid_name.out b/tests/test_uid_name.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_uid_name.out
+++ b/tests/test_uid_name.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_uid_plus.out b/tests/test_uid_plus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_uid_plus.out
+++ b/tests/test_uid_plus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_uid_plus_plus.out b/tests/test_uid_plus_plus.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_uid_plus_plus.out
+++ b/tests/test_uid_plus_plus.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_unique_depth.out b/tests/test_unique_depth.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_unique_depth.out
+++ b/tests/test_unique_depth.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_user_id.out b/tests/test_user_id.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_user_id.out
+++ b/tests/test_user_id.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_user_name.out b/tests/test_user_name.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_user_name.out
+++ b/tests/test_user_name.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_user_nouser.out b/tests/test_user_nouser.out
index bb3cd8d..a7ccfe4 100644
--- a/tests/test_user_nouser.out
+++ b/tests/test_user_nouser.out
@@ -2,18 +2,18 @@ basic
basic/a
basic/b
basic/c
+basic/c/d
basic/e
+basic/e/f
basic/g
+basic/g/h
basic/i
basic/j
-basic/k
-basic/l
-basic/c/d
-basic/e/f
-basic/g/h
basic/j/foo
+basic/k
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_weird_names.out b/tests/test_weird_names.out
index 73d0ff3..c395659 100644
--- a/tests/test_weird_names.out
+++ b/tests/test_weird_names.out
@@ -1,28 +1,28 @@
!-
!-
-(-
-(-
-)
-)
-,
-,
--
--
!-/e
!-/e
+(-
+(-
(-/c
(-/c
+)
+)
)/g
)/g
+,
+,
,/f
,/f
+-
+-
-/a
-/a
./!
./!
-./(
-./(
./!/d
./!/d
+./(
+./(
./(/b
./(/b
diff --git a/tests/test_wholename.out b/tests/test_wholename.out
index 0d36df9..ae1ae21 100644
--- a/tests/test_wholename.out
+++ b/tests/test_wholename.out
@@ -1,7 +1,7 @@
basic/e/f
basic/j/foo
basic/k/foo
-basic/l/foo
basic/k/foo/bar
+basic/l/foo
basic/l/foo/bar
basic/l/foo/bar/baz
diff --git a/tests/test_xdev.out b/tests/test_xdev.out
index 005bdcf..f7839fb 100644
--- a/tests/test_xdev.out
+++ b/tests/test_xdev.out
@@ -1,4 +1,4 @@
scratch
scratch/foo
-scratch/mnt
scratch/foo/bar
+scratch/mnt
diff --git a/tests/test_xtype_f.out b/tests/test_xtype_f.out
index dbe0c3f..e6ba322 100644
--- a/tests/test_xtype_f.out
+++ b/tests/test_xtype_f.out
@@ -1,5 +1,5 @@
+links/deeply/nested/file
+links/deeply/nested/link
links/file
links/hardlink
links/symlink
-links/deeply/nested/file
-links/deeply/nested/link
diff --git a/tests/test_xtype_l.out b/tests/test_xtype_l.out
index 62d3ae4..f29c978 100644
--- a/tests/test_xtype_l.out
+++ b/tests/test_xtype_l.out
@@ -1,3 +1,3 @@
links/broken
-links/notdir
links/deeply/nested/broken
+links/notdir
diff --git a/tests/test_xtype_multi.out b/tests/test_xtype_multi.out
index 171c580..558e89c 100644
--- a/tests/test_xtype_multi.out
+++ b/tests/test_xtype_multi.out
@@ -1,10 +1,10 @@
links
links/deeply
-links/file
-links/hardlink
-links/skip
-links/symlink
links/deeply/nested
links/deeply/nested/dir
links/deeply/nested/file
links/deeply/nested/link
+links/file
+links/hardlink
+links/skip
+links/symlink