summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* tests: Fix color NUL byte test on platforms where sort expects textTavian Barnes2019-03-282-0/+0
|
* color: Implement ln=targetTavian Barnes2019-03-281-0/+20
| | | | | With ln=target in LS_COLORS, links should be colored according to their target's stat() info, not their own.
* color: Implement escape sequence parsingTavian Barnes2019-03-282-0/+20
| | | | | GNU ls allows custom escape sequences inside color values, including control characters and embedded NULs.
* opt: Optimize redundant comma expressionsTavian Barnes2019-03-212-0/+2
|
* opt: Replace -a -false/-o -true with -not when possibleTavian Barnes2019-03-201-0/+1
|
* tests: Add utilities for comparing colors to lsTavian Barnes2019-03-192-0/+92
|
* tests: Use archive extensions for color testsTavian Barnes2019-03-1725-4/+79
|
* color: Match the behaviour of GNU ls more closelyTavian Barnes2019-03-1725-25/+212
|
* tests: Add a test for extension overridesTavian Barnes2019-03-072-0/+34
|
* eval: Fix -unique with -depthTavian Barnes2019-03-072-0/+22
|
* Implement -uniqueTavian Barnes2019-03-013-0/+6
| | | | Closes #48
* tests: Add a test for symlink coloring to a deviceTavian Barnes2019-02-1812-0/+28
|
* tests: Add tests for -no{group,user} under fd pressureTavian Barnes2019-02-072-0/+0
|
* tests: New utility for making and testing socket filesTavian Barnes2019-02-0112-0/+142
|
* main: Fix closed standard stream handlingTavian Barnes2019-02-013-0/+19
| | | | | bfs >&- should complain about a missing file descriptor, rather than silently succeeding.
* color: Fix more incompatibilities with GNU lsTavian Barnes2019-01-0212-12/+165
|
* tests: Fix test_exit() to not depend on breadth-first orderingTavian Barnes2018-12-281-15/+0
|
* color: Don't print the leading directory color if there's no leading directoryTavian Barnes2018-12-171-1/+1
|
* tests: Don't assume find continues after filesystem loopsTavian Barnes2018-11-1418-24/+55
| | | | | | | | | | | POSIX says > When it detects an infinite loop, find shall write a diagnostic > message to standard error and shall either recover its position in the > hierarchy or terminate. So make the 'links' folder not have any loops, and add a new 'loops' folder for testing the GNU/bfs behaviour.
* tests: Add testcases for -pruneTavian Barnes2018-11-013-0/+29
|
* spawn: New posix_spawn()-like API for execTavian Barnes2018-09-181-16/+0
|
* opt: Re-run optimizations after reordering expressionsTavian Barnes2018-08-182-0/+24
| | | | | This catches new data flow inferences that can be made after swapping the children of an expression.
* tests: Add tests for mode 000Tavian Barnes2018-07-204-0/+25
|
* printf: Output ? for errors in %YTavian Barnes2018-07-201-0/+3
|
* eval: Fix -delete when following symlinks.Tavian Barnes2018-07-121-0/+2
| | | | | Same bug as https://savannah.gnu.org/bugs/?46305. Please don't ever do this though.
* tests: Add some more tests for broken symlinksTavian Barnes2018-07-078-0/+10
|
* tests: Relax test_depth_errorTavian Barnes2018-06-241-2/+0
| | | | | Whether bfs can return children of a directory without search permission depends on whether d_type is filled in, which can't be guaranteed.
* tests: New test for -depth in the presence of read errorsTavian Barnes2018-06-231-0/+4
|
* printf: Add %w and %Wk for file birth timesTavian Barnes2018-01-201-0/+0
| | | | | %w and %W were chosen to match the format specifiers for file birth times from stat(1)
* exec: Recover from E2BIGTavian Barnes2017-11-121-0/+16
|
* parse: Support -perm +7777, for compatibility with BSD and old GNU findTavian Barnes2017-11-052-0/+12
|
* parse: Keep track of what files are already openTavian Barnes2017-10-211-0/+57
| | | | Fixes #22
* opt: Fix -depth with arguments bigger than INT_MAXTavian Barnes2017-09-171-0/+19
|
* tests: Add tests that trigger some optimizationsTavian Barnes2017-09-168-0/+47
|
* Revert "tests: Test hardlinks to symlinks"Tavian Barnes2017-09-0712-18/+0
| | | | | | Apparently macOS doesn't support ln -P. This reverts commit 80eec18020f531abbdb2abbb919ab6c6fa34107c.
* parse: Don't reorder or remove tests with potential side effectsTavian Barnes2017-09-061-0/+0
| | | | | | -empty and -xtype may have side effects like reporting permission errors, which even affect the exit status of bfs. We shouldn't remove these effects without -Ofast.
* tests: Test hardlinks to symlinksTavian Barnes2017-09-0612-0/+18
|
* tests: Make test_deep pass with other find implementationsTavian Barnes2017-09-042-16/+32
| | | | | And move test_deep_strict to the bfs-specific tests, since it's not likely to ever pass for other implementations.
* tests: Use human-readable filenames in links/Tavian Barnes2017-09-0232-116/+101
|
* tests: Remove unnecessary sort-args.sh invocationsTavian Barnes2017-08-162-38/+38
|
* Unify broken symlink handlingTavian Barnes2017-08-125-0/+6
| | | | | | | | | Rather than open-code the fallback logic for broken symlinks everywhere it's needed, introduce a new xfstatat() utility function that performs the fallback automatically. Using xfstatat() consistently fixes a few bugs, including cases where broken symlinks are given as arguments to predicates like -samefile.
* tests: Add a test for -exec ... {} + with a failing commandTavian Barnes2017-08-121-0/+19
|
* exec: Fix more corner cases with -ok ... +Tavian Barnes2017-07-292-0/+38
| | | | -ok should look for a ; even if it sees {} +, according to POSIX.
* exec: Don't allow anything between {} and +Tavian Barnes2017-07-294-12/+38
| | | | | | | | | POSIX explicitly forbids this extension: > Only a <plus-sign> that immediately follows an argument containing > only the two characters "{}" shall punctuate the end of the primary > expression. Other uses of the <plus-sign> shall not be treated as > special.
* Fix a couple terrible optimizer bugsTavian Barnes2017-07-212-0/+0
| | | | | | | Just because an expression is always true or false, doesn't mean we can execute it more often than it otherwise would be, unless it's also pure. But that's equivalent to being identically -true/-false, so just check that.
* Implement -printxTavian Barnes2017-07-211-0/+21
| | | | Also from NetBSD.
* eval: Add some sanity checksTavian Barnes2017-07-202-0/+19
|
* Implement -exit [STATUS]Tavian Barnes2017-07-201-0/+16
| | | | From NetBSD again.
* Implement -rm as an alias for -deleteTavian Barnes2017-07-202-0/+2
| | | | From NetBSD.
* Handle ENOTDIR the same as ENOENTTavian Barnes2017-07-097-0/+7
| | | | | | For a/b/c, ENOTDIR is returned instead of ENOENT if a or b are not directories. Handle this uniformly when detecting broken symlinks, readdir races, etc.