summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* tests/posix: Avoid catastrophic backtrackingTavian Barnes2024-01-172-11/+2
| | | | | | Using -path 'deep/*/*/.../*' to simulate -mindepth 18 falls off a performance cliff on systems that use backtracking for fnmatch(). This was observed on macOS 12.4. Instead, just use -type f.
* tests: Properly filter escape sequences with --verbose=testsTavian Barnes2024-01-131-1/+1
|
* bfstd: New {error,errno}_is_like() functionsTavian Barnes2024-01-131-14/+3
| | | | | | | We used to have is_nonexistence_error() to consistently treat ENOENT and ENOTDIR the same. Recently, we started considering EFAULT the same as ENAMETOOLONG on DragonFly BSD to work around a kernel bug. Unify both of these behind a more generic interface.
* tests.h: Add a header guardTavian Barnes2024-01-131-0/+5
|
* tests: Merge unit test executables into oneTavian Barnes2024-01-127-13/+149
|
* tests: New output formatTavian Barnes2024-01-111-13/+28
|
* tests: Don't do chmod +sTavian Barnes2024-01-091-2/+3
| | | | | | | | | | | | | | | | | | POSIX says > When using the symbolic mode form on a regular file, it is > implementation-defined whether or not: > > - Requests to set the set-user-ID-on-execution or set-group-ID-on- > execution bit when all execute bits are currently clear and none > are being set are ignored. And indeed, illumos ignores them with a warning: chmod: WARNING: /tmp/bfs.XXXX7KaGWb/rainbow/suid: Execute permission required for set-ID on execution Link: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html
* tests/bfs/D_opt: New test for more -D opt coverageTavian Barnes2024-01-072-0/+19
|
* Work around DragonFly BSD kernel bugTavian Barnes2024-01-041-0/+6
| | | | | | | | | DragonFly's x86_64 assembly implementation of copyinstr() checks the wrong pointer when deciding whether to return EFAULT or ENAMETOOLONG, causing it to always return EFAULT for overlong paths. Work around it by treating EFAULT the same as ENAMETOOLONG on DragonFly. Link: https://twitter.com/tavianator/status/1742991411203485713
* tests/posix/name_bracket: Skip on NetBSD tooTavian Barnes2024-01-031-2/+6
|
* tests/bsd/type_w: Check for truncate(1) before using itTavian Barnes2024-01-031-1/+5
|
* tests: Remove unneeded command -v unbuffer || skipTavian Barnes2024-01-012-4/+0
|
* parse: Reject integers that start with whitespaceTavian Barnes2023-12-091-0/+1
|
* tests: Set abort_on_error for the sanitizersTavian Barnes2023-11-231-1/+1
|
* tests: Fix --stopTavian Barnes2023-11-231-0/+6
|
* tests: Fix a possible infinite loopTavian Barnes2023-11-151-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 Barnes2023-11-131-1/+1
|
* Revert "bit: Implement a branchless has_single_bit()"Tavian Barnes2023-11-111-0/+1
| | | | | | Doesn't work for the highest bit due to overflow. This reverts commit 208376ef99da243545efcd6fb02d3469b4c068ed.
* bit: Implement a branchless has_single_bit()Tavian Barnes2023-11-101-0/+3
|
* config: Add (de)allocator attributesTavian Barnes2023-11-091-0/+4
|
* parse: Reject -{exec,ok}dir if $PATH contains a relative pathTavian Barnes2023-11-076-0/+6
| | | | This matches the behaviour of GNU find.
* tests: Fix output interleaving with -j1Tavian Barnes2023-11-071-5/+5
|
* Treat NO_COLOR="" the same as unsetTavian Barnes2023-11-062-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 -execTavian Barnes2023-11-024-0/+36
|
* tests/bfs/help: Fix exit statusTavian Barnes2023-10-231-4/+4
|
* tests/bfs/help: Use ... && fail instead of ! ...Tavian Barnes2023-10-232-5/+4
| | | | ! false doesn't trigger an error with set -e.
* tests/bfs/printf_color: Fix race conditionTavian Barnes2023-10-232-1/+2
| | | | | Invoking bfs in the top directory can lead it to explore other tests' scratch directories, so explicitly exclude them.
* tests: Document -jTavian Barnes2023-10-231-21/+20
|
* tests: Clean up verbose logging a bitTavian Barnes2023-10-231-20/+36
|
* tests: Fix Bash 3 compatibilityTavian Barnes2023-10-237-37/+47
|
* tests: Run test cases in parallelTavian Barnes2023-10-232-15/+58
|
* tests: Use test-specific scratch directoriesTavian Barnes2023-10-2277-368/+330
|
* tests: Fix column detection with redirected stderrTavian Barnes2023-10-201-1/+1
|
* tests/color: Remove some useless catsTavian Barnes2023-10-204-53/+50
|
* tests: Use xtouch to create the whole deep tree at onceTavian Barnes2023-10-201-15/+6
|
* tests/xtouch: Recover from ENAMETOOLONGTavian Barnes2023-10-201-45/+84
|
* tests: Don't unset array[-1]Tavian Barnes2023-10-191-6/+7
| | | | This was only added in Bash 4.3 which is too new for macOS.
* tests: Refactor implementation into separate filesTavian Barnes2023-10-1913-823/+906
|
* tests: Update bash coding styleTavian Barnes2023-10-191-32/+32
|
* tests: Clean up colorizationTavian Barnes2023-10-191-76/+102
|
* tests: Use the ERR trap to print the failing commandTavian Barnes2023-10-191-4/+46
|
* tests: Fix uses of $? with set -eTavian Barnes2023-10-191-10/+12
|
* tests: New defer functionTavian Barnes2023-10-1918-34/+54
|
* tests: Rename --noclean -> --no-cleanTavian Barnes2023-10-191-3/+3
|
* parse: Set BFTW_WHITEOUTS when parsing -type wTavian Barnes2023-10-172-0/+102
|
* dir: Fix FreeBSD union mountsTavian Barnes2023-10-174-0/+28
|
* tests: Move closed_std* tests out of the POSIX groupTavian Barnes2023-10-146-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 directoryTavian Barnes2023-10-131-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 installedTavian Barnes2023-10-121-1/+1
|
* diag: Move enum debug_flags out of ctx.hTavian Barnes2023-10-121-0/+1
|