diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2025-05-26 10:35:24 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2025-05-26 10:45:45 -0400 |
commit | 6fa72ff42d95dfd883d59ce7cf6bdc74abebf015 (patch) | |
tree | ba257f3e9dd30701d9c8d17024295e358c7d3a06 | |
parent | d26458b7235e70edf4ca57d8d8db70a01e1afbf4 (diff) | |
download | bfs-6fa72ff42d95dfd883d59ce7cf6bdc74abebf015.tar.xz |
tests/posix: Add a test for POSIX bug 1859
... which requires we process root paths strictly in-order.
-rw-r--r-- | src/bftw.c | 3 | ||||
-rw-r--r-- | tests/posix/root_order.out | 4 | ||||
-rw-r--r-- | tests/posix/root_order.sh | 6 |
3 files changed, 12 insertions, 1 deletions
@@ -1485,7 +1485,8 @@ fail: /** Check if we should stat() a file asynchronously. */ static bool bftw_should_ioq_stat(struct bftw_state *state, struct bftw_file *file) { - // To avoid surprising users too much, process the roots in order + // POSIX wants the root paths to be processed in order + // See https://www.austingroupbugs.net/view.php?id=1859 if (file->depth == 0) { return false; } diff --git a/tests/posix/root_order.out b/tests/posix/root_order.out new file mode 100644 index 0000000..ea94276 --- /dev/null +++ b/tests/posix/root_order.out @@ -0,0 +1,4 @@ +basic/a +basic/b +basic/c/d +basic/e/f diff --git a/tests/posix/root_order.sh b/tests/posix/root_order.sh new file mode 100644 index 0000000..86adf20 --- /dev/null +++ b/tests/posix/root_order.sh @@ -0,0 +1,6 @@ +# Root paths must be processed in order +# https://www.austingroupbugs.net/view.php?id=1859 + +# -size forces a stat(), which we don't want to be async +invoke_bfs basic/{a,b,c/d,e/f} -size -1000 >"$OUT" +diff_output |