Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | pwcache: Fill the user/group caches lazily | Tavian Barnes | 2022-11-09 | 2 | -2/+11 |
| | | | | | | | Iterating all the users/groups can be expensive, especially with NSS. Android has so many that it doesn't even return them all from get{pw,gr}ent() for performance reasons, leading to incorrect behaviour of -user/-group/etc. | ||||
* | tests/xtouch: Add some missing POSIX touch features | Tavian Barnes | 2022-11-08 | 2 | -51/+104 |
| | |||||
* | tests/xtouch: New utility | Tavian Barnes | 2022-11-07 | 22 | -88/+255 |
| | | | | | | POSIX touch(1) doesn't include the -h option, and indeed OpenBSD doesn't implement it. Making our own utility also lets us add some handy extensions like -p (create parents) and -M (set permissions). | ||||
* | tests: Skip fstype tests if the mtab isn't available | Tavian Barnes | 2022-11-06 | 2 | -1/+8 |
| | |||||
* | trie: Make leaves into a linked list | Tavian Barnes | 2022-10-29 | 1 | -0/+15 |
| | |||||
* | tests: Fix privilege dropping when run as root | Tavian Barnes | 2022-10-21 | 1 | -1/+1 |
| | | | | Fixes: 412102712921e2b051da1d2ae9171d67a2a4bd61 | ||||
* | tests/gnu/inum_automount: Work around systemd-mount race | Tavian Barnes | 2022-10-21 | 2 | -6/+6 |
| | | | | | | | | | | | | This test used systemd-mount to set up an automount on scratch/mnt. If a previous test mounted something there, systemd will notice that asynchronously and may not have noticed the unmount by the time that test runs. This led to the test randomly being skipped sometimes when systemd-mount failed. It could be reproduced with a loop like this: $ for _ in {1..10}; ./tests/tests.sh common/L_mount gnu/inum_automount Work around it by using scratch/automnt instead to avoid conflicts. | ||||
* | tests: Always clean scratch before using it | Tavian Barnes | 2022-10-20 | 4 | -0/+4 |
| | |||||
* | tests: Add a helper for cleaning scratch | Tavian Barnes | 2022-10-20 | 27 | -38/+50 |
| | | | | And try to unmount things if the a test left them mounted. | ||||
* | tests: Coverage number go up | Tavian Barnes | 2022-10-19 | 22 | -2/+101 |
| | |||||
* | tests: Split test cases into separate files | Tavian Barnes | 2022-10-19 | 770 | -2857/+902 |
| | |||||
* | tests: Test -exec with a nonexistent command | Tavian Barnes | 2022-10-05 | 5 | -0/+116 |
| | |||||
* | tests: POSIX doesn't *require* -ok ... {} + to be unsupported | Tavian Barnes | 2022-09-18 | 1 | -2/+11 |
| | |||||
* | tests: Don't pass NUL bytes to sort | Tavian Barnes | 2022-07-18 | 4 | -5/+11 |
| | | | | The tests now pass with busybox instead of coreutils. | ||||
* | tests: Limit path lengths passed to mkdir | Tavian Barnes | 2022-07-13 | 1 | -4/+7 |
| | | | | FreeBSD limits mkdir() to 1023 bytes, not 4096. | ||||
* | tests: Set colors to the empty string for non-ttys | Tavian Barnes | 2022-07-13 | 1 | -0/+9 |
| | |||||
* | tests: Use set -u | Tavian Barnes | 2022-07-13 | 1 | -2/+2 |
| | |||||
* | tests: Optimize startup | Tavian Barnes | 2022-07-13 | 1 | -14/+14 |
| | | | | ./tests.sh is about 110ms faster on my machine with this patch. | ||||
* | tests: Add tests for parsing failures in more locations | Tavian Barnes | 2022-07-13 | 1 | -0/+15 |
| | |||||
* | tests: New test for -exec with unset $PATH | Tavian Barnes | 2022-07-12 | 2 | -0/+30 |
| | |||||
* | tests: Simplify snapshot testing without bfs_diff | Tavian Barnes | 2022-07-12 | 1 | -102/+51 |
| | |||||
* | tests: Add a test for every printf directive | Tavian Barnes | 2022-06-01 | 1 | -0/+13 |
| | |||||
* | tests: Add tests for -warn/-nowarn | Tavian Barnes | 2022-05-29 | 1 | -0/+13 |
| | |||||
* | tests: Don't print test names to non-ttys without --verbose=tests | Tavian Barnes | 2022-05-20 | 1 | -6/+15 |
| | | | | This should shrink the CI logs appreciably. | ||||
* | Makefile: Add a BUILDDIR variable for out-of-tree builds | Tavian Barnes | 2022-05-20 | 1 | -1/+6 |
| | | | | bfs can now be built from a read-only source tree. | ||||
* | Makefile: Split build into bin and obj directories | Tavian Barnes | 2022-05-16 | 1 | -0/+3433 |
| | | | | | This also moves the main binary from ./bfs to ./bin/bfs, and ./tests.sh to ./tests/tests.sh, with the goal of keeping the repository root clean. | ||||
* | tests: Use skip_if for sudo tests | Tavian Barnes | 2022-05-12 | 1 | -0/+0 |
| | | | | | | This lets us categorize the sudo tests properly, which fixes e.g. $ ./tests.sh --posix --sudo | ||||
* | stat: Pass AT_NO_AUTOMOUNT if possible | Tavian Barnes | 2022-05-12 | 1 | -0/+1 |
| | | | | | Previously bfs would trigger automounts even when it didn't descend into the mount directory, while GNU find does not. | ||||
* | Source / Include Folder (#88) | トトも | 2022-04-16 | 2 | -2/+2 |
| | | | Moved Source Files Into `src` Folder | ||||
* | tests: Use bfs_diff in more cases | Tavian Barnes | 2022-03-15 | 1 | -0/+0 |
| | |||||
* | tests: Shell style fixes | Tavian Barnes | 2022-03-14 | 1 | -1/+1 |
| | | | | We now support `./tests.sh --bfs="path/with\ spaces/bfs"` | ||||
* | tests: Use -print0 instead of -printf '%p ' for exec flush tests | Tavian Barnes | 2022-03-13 | 2 | -0/+0 |
| | |||||
* | tests: Use plain sort, not bfs_sort | Tavian Barnes | 2022-03-13 | 112 | -531/+531 |
| | | | | | bfs_sort existed to keep the test outputs nicely in breadth-first order. Unfortunately the implementation using awk didn't support NUL bytes. | ||||
* | Don't shadow standard headers | Tavian Barnes | 2022-03-12 | 1 | -1/+1 |
| | | | | | | | | | | | | | @italic on the AUR stated that bfs from the AUR fails to build on Manjaro. From the build log, it seems like <time.h> doesn't get included properly. I assume it's picking up ./time.h instead. I couldn't reproduce the build issue in the default configuration, but it does fail with EXTRA_CFLAGS="-I." which isn't good. So rename everything with an x prefix to stop clashing. Link: https://aur.archlinux.org/packages/bfs#comment-856102 Link: https://paste.rs/eqR | ||||
* | regex: Use the encoding from the current locale | Tavian Barnes | 2022-02-24 | 1 | -0/+1 |
| | |||||
* | exec: Flush I/O streams before executing anything | Tavian Barnes | 2022-02-11 | 3 | -0/+21 |
| | | | | | | Otherwise output from commands may appear unexpectedly earlier than output from bfs. We use fflush(NULL) to flush all streams, which is more than GNU find does, but seems to be a useful extension. | ||||
* | tests: Add a test that -exit suppresses the implicit -print | Tavian Barnes | 2022-02-10 | 1 | -0/+0 |
| | |||||
* | regex: Add support for emacs and grep types | Tavian Barnes | 2022-02-04 | 2 | -0/+10 |
| | |||||
* | tests: Add tests for syntactically invalid globs | Tavian Barnes | 2022-02-02 | 12 | -0/+22 |
| | |||||
* | tests: New tests for -i?wholename | Tavian Barnes | 2022-02-01 | 2 | -0/+14 |
| | |||||
* | tests: New test for ** in a glob | Tavian Barnes | 2022-02-01 | 1 | -0/+4 |
| | |||||
* | tests: New test for -prune on a non-directory | Tavian Barnes | 2022-02-01 | 1 | -0/+10 |
| | |||||
* | parse: Add support for ed and sed regexes | Tavian Barnes | 2022-01-30 | 2 | -0/+2 |
| | | | | They're apparently the same as POSIX basic regexes. | ||||
* | Revert "tests: Add a test for posix-basic alternation" | Tavian Barnes | 2022-01-29 | 1 | -2/+0 |
| | | | | | | | Turns out alternation is not actually part of the POSIX basic regular expression language, it's just a glibc extension. This reverts commit c898af13a671ee92a056467d324f16823594eb1c. | ||||
* | tests: Add a test for posix-basic alternation | Tavian Barnes | 2022-01-29 | 1 | -0/+2 |
| | |||||
* | tests: Add missing license headers | Tavian Barnes | 2022-01-18 | 2 | -0/+32 |
| | |||||
* | tests/trie: Fix "handling" typo | Tavian Barnes | 2022-01-18 | 1 | -1/+1 |
| | |||||
* | printf: Colorize file names/paths in simple cases | Tavian Barnes | 2021-10-09 | 1 | -0/+20 |
| | |||||
* | Don't truncate files until we know they're not duplicates | Tavian Barnes | 2021-09-26 | 2 | -0/+39 |
| | |||||
* | ctx: Also deduplicate the standard streams | Tavian Barnes | 2021-09-21 | 2 | -0/+57 |
| | | | | | | This fixes some potential missing output when the same file is used in a redirection and something like -fprint. The main benefit is smarter handling of /dev/stdout, which will now share the CFILE* with cout. |