Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | tests: Fix a possible infinite loop | Tavian Barnes | 2023-11-15 | 1 | -2/+4 |
| | | | | | | | | | | | | | | | | | | | The POSIX spec for readdir() [1] says: > If a file is removed from or added to the directory after the most > recent call to opendir() or rewinddir(), whether a subsequent call > to readdir() returns an entry for that file is unspecified. which implies that a loop of readdir()/unlink()/creat() may continue to return new files unendingly. This was even observed on a Linux 6.6 tmpfs mount [2]. It's not clear whether find(1) is also permitted to loop endlessly in this case, but in case it is, let's avoid the whole problem by limiting the -exec to happen at most once. [1]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/readdir.html [2]: https://lore.kernel.org/linux-fsdevel/20231113180616.2831430-1-tavianator@tavianator.com/ | ||||
* | tests: Fix --verbose=commands with --bfs="wrapper bfs" | Tavian Barnes | 2023-11-13 | 1 | -1/+1 |
| | |||||
* | Revert "bit: Implement a branchless has_single_bit()" | Tavian Barnes | 2023-11-11 | 1 | -0/+1 |
| | | | | | | Doesn't work for the highest bit due to overflow. This reverts commit 208376ef99da243545efcd6fb02d3469b4c068ed. | ||||
* | bit: Implement a branchless has_single_bit() | Tavian Barnes | 2023-11-10 | 1 | -0/+3 |
| | |||||
* | config: Add (de)allocator attributes | Tavian Barnes | 2023-11-09 | 1 | -0/+4 |
| | |||||
* | parse: Reject -{exec,ok}dir if $PATH contains a relative path | Tavian Barnes | 2023-11-07 | 6 | -0/+6 |
| | | | | This matches the behaviour of GNU find. | ||||
* | tests: Fix output interleaving with -j1 | Tavian Barnes | 2023-11-07 | 1 | -5/+5 |
| | |||||
* | Treat NO_COLOR="" the same as unset | Tavian Barnes | 2023-11-06 | 2 | -0/+32 |
| | | | | | | | | | | | | | | The docs say > Command-line software which adds ANSI color to its output by default > should check for a NO_COLOR environment variable that, when present > and not an empty string (regardless of its value), prevents the > addition of ANSI color. but we were not checking for the empty string. Link: https://no-color.org/ Link: https://github.com/sharkdp/fd/pull/1421 | ||||
* | tests: Add tests for ulimit -n after -exec | Tavian Barnes | 2023-11-02 | 4 | -0/+36 |
| | |||||
* | tests/bfs/help: Fix exit status | Tavian Barnes | 2023-10-23 | 1 | -4/+4 |
| | |||||
* | tests/bfs/help: Use ... && fail instead of ! ... | Tavian Barnes | 2023-10-23 | 2 | -5/+4 |
| | | | | ! false doesn't trigger an error with set -e. | ||||
* | tests/bfs/printf_color: Fix race condition | Tavian Barnes | 2023-10-23 | 2 | -1/+2 |
| | | | | | Invoking bfs in the top directory can lead it to explore other tests' scratch directories, so explicitly exclude them. | ||||
* | tests: Document -j | Tavian Barnes | 2023-10-23 | 1 | -21/+20 |
| | |||||
* | tests: Clean up verbose logging a bit | Tavian Barnes | 2023-10-23 | 1 | -20/+36 |
| | |||||
* | tests: Fix Bash 3 compatibility | Tavian Barnes | 2023-10-23 | 7 | -37/+47 |
| | |||||
* | tests: Run test cases in parallel | Tavian Barnes | 2023-10-23 | 2 | -15/+58 |
| | |||||
* | tests: Use test-specific scratch directories | Tavian Barnes | 2023-10-22 | 77 | -368/+330 |
| | |||||
* | tests: Fix column detection with redirected stderr | Tavian Barnes | 2023-10-20 | 1 | -1/+1 |
| | |||||
* | tests/color: Remove some useless cats | Tavian Barnes | 2023-10-20 | 4 | -53/+50 |
| | |||||
* | tests: Use xtouch to create the whole deep tree at once | Tavian Barnes | 2023-10-20 | 1 | -15/+6 |
| | |||||
* | tests/xtouch: Recover from ENAMETOOLONG | Tavian Barnes | 2023-10-20 | 1 | -45/+84 |
| | |||||
* | tests: Don't unset array[-1] | Tavian Barnes | 2023-10-19 | 1 | -6/+7 |
| | | | | This was only added in Bash 4.3 which is too new for macOS. | ||||
* | tests: Refactor implementation into separate files | Tavian Barnes | 2023-10-19 | 13 | -823/+906 |
| | |||||
* | tests: Update bash coding style | Tavian Barnes | 2023-10-19 | 1 | -32/+32 |
| | |||||
* | tests: Clean up colorization | Tavian Barnes | 2023-10-19 | 1 | -76/+102 |
| | |||||
* | tests: Use the ERR trap to print the failing command | Tavian Barnes | 2023-10-19 | 1 | -4/+46 |
| | |||||
* | tests: Fix uses of $? with set -e | Tavian Barnes | 2023-10-19 | 1 | -10/+12 |
| | |||||
* | tests: New defer function | Tavian Barnes | 2023-10-19 | 18 | -34/+54 |
| | |||||
* | tests: Rename --noclean -> --no-clean | Tavian Barnes | 2023-10-19 | 1 | -3/+3 |
| | |||||
* | parse: Set BFTW_WHITEOUTS when parsing -type w | Tavian Barnes | 2023-10-17 | 2 | -0/+102 |
| | |||||
* | dir: Fix FreeBSD union mounts | Tavian Barnes | 2023-10-17 | 4 | -0/+28 |
| | |||||
* | tests: Move closed_std* tests out of the POSIX group | Tavian Barnes | 2023-10-14 | 6 | -2/+8 |
| | | | | | | | | | | | | | POSIX actually says > If the utility would be executed with file descriptor 0, 1, or 2 > closed, implementations may execute the utility with the file > descriptor open to an unspecified file. So we're not guaranteed to be able to detect the situation in the first place. Add a best-effort check for these platforms and skip the test. Link: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01_01 | ||||
* | tests: Always create the scratch directory | Tavian Barnes | 2023-10-13 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | Otherwise, some tests that try to check for flag support like invoke_bfs scratch -quit -xattr || skip can be accidentally skipped if ./scratch doesn't exist yet: $ ./tests/tests.sh bsd/xattr tests skipped: 1 After this patch, we get the expected $ ./tests/tests.sh bsd/xattr tests passed: 1 | ||||
* | tests: Don't crash if unbuffer isn't installed | Tavian Barnes | 2023-10-12 | 1 | -1/+1 |
| | |||||
* | diag: Move enum debug_flags out of ctx.h | Tavian Barnes | 2023-10-12 | 1 | -0/+1 |
| | |||||
* | alloc: Test allocation size overflows | Tavian Barnes | 2023-10-06 | 1 | -2/+10 |
| | |||||
* | tests/bfs/status: Try to test SIGWINCH | Tavian Barnes | 2023-10-06 | 1 | -1/+1 |
| | |||||
* | tests: Check for expect_unbuffer too | Tavian Barnes | 2023-10-06 | 1 | -2/+8 |
| | | | | That's where FreeBSD installs it. | ||||
* | tests: New bfs_pty wrapper for unbuffer | Tavian Barnes | 2023-10-06 | 4 | -7/+17 |
| | |||||
* | tests/bfs: Add a test that runs -status | Tavian Barnes | 2023-10-05 | 1 | -0/+3 |
| | |||||
* | tests/bfs: Add tests for color autodetection | Tavian Barnes | 2023-10-05 | 4 | -0/+65 |
| | |||||
* | tests: Respect $NO_COLOR | Tavian Barnes | 2023-10-05 | 1 | -9/+15 |
| | |||||
* | bfstd: Add a thread-safe wrapper for strerror() | Tavian Barnes | 2023-10-05 | 3 | -6/+6 |
| | |||||
* | tests: Fix make_deep() on FreeBSD | Tavian Barnes | 2023-10-02 | 1 | -9/+10 |
| | | | | I keep forgetting that PATH_MAX is only 1024 there. | ||||
* | Merge branch 'benchmarks' | Tavian Barnes | 2023-10-02 | 1 | -15/+24 |
|\ | |||||
| * | tests/xtouch: Try creating the immediate parent first | Tavian Barnes | 2023-09-29 | 1 | -15/+24 |
| | | |||||
* | | tests: Don't cd into paths longer than PATH_MAX | Tavian Barnes | 2023-10-02 | 1 | -12/+8 |
|/ | | | | | | This fixes a warning on at least Alpine Linux that looks like cd: error retrieving current directory: getcwd: cannot access parent directories: Filename too long | ||||
* | Formatting fixes | Tavian Barnes | 2023-09-27 | 4 | -7/+7 |
| | |||||
* | Use the new list macros | Tavian Barnes | 2023-09-25 | 1 | -2/+2 |
| | |||||
* | bfstd: Fix printable_len() off-by-one | Tavian Barnes | 2023-09-06 | 1 | -0/+15 |
| | | | | | | | If xmbrtowc() fails, or if xiswprint() is false, then we shouldn't include that wide char in the printable length. Fixes: 19c96abe0a1ee56cf206fd5e87defb1fd3e0daa5 |