summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* bftw: Fix ENAMETOOLONG handling when the root is closedTavian Barnes2017-07-082-8/+16
| | | | | The root has depth == 0, but we still need to include it in the components array.
* bftw: Recover from ENAMETOOLONGTavian Barnes2017-07-081-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | It is always possible to force a breadth-first traversal to encounter ENAMETOOLONG, regardless of the dircache eviction policy. As a concrete example, consider this directory structure: ./1/{NAME_MAX}/{NAME_MAX}/{NAME_MAX}/... (longer than {PATH_MAX}) ./2/{NAME_MAX}/{NAME_MAX}/{NAME_MAX}/... ./3/{NAME_MAX}/{NAME_MAX}/{NAME_MAX}/... ... (more than RLIMIT_NOFILE directories under .) Eventually, the next file to be processed will not have any parents in the cache, as the cache can only hold RLIMIT_NOFILE entries. Then the whole path must be traversed from ., which will exceed {PATH_MAX} bytes. Work around this by performing a component-by-component traversal manually when we see ENAMETOOLONG. This is required by POSIX: > The find utility shall be able to descend to arbitrary depths in a file > hierarchy and shall not fail due to path length limitations (unless a > path operand specified by the application exceeds {PATH_MAX} > requirements).
* -perm: Handle permcopy (e.g. u=rw,g=u) correctlyTavian Barnes2017-06-151-0/+1
|
* tests: Fix test_printf_nul with non-GNU sortTavian Barnes2017-06-111-0/+0
| | | | | Other UNIX sort implementations seem to truncate at the nul bytes, so open-code it without the sort.
* printf: Fix embedded nul bytesTavian Barnes2017-06-101-0/+0
| | | | Fixes #26.
* Don't make -quit disable the implicit -printTavian Barnes2017-05-111-0/+1
|
* Implement -fstypeTavian Barnes2017-04-231-0/+19
| | | | Fixes #6!
* Implement -XTavian Barnes2017-04-163-0/+25
|
* tests: Add tests for bfs extensions to -exec ... +Tavian Barnes2017-04-162-0/+12
|
* Implement -exec/-execdir ... +Tavian Barnes2017-04-153-0/+16
|
* tests: Run everything in UTCTavian Barnes2017-03-111-3/+3
|
* Add a test for colored outputTavian Barnes2017-03-111-0/+10
|
* Implement -printf %Ak, %Ck, and %TkTavian Barnes2017-03-111-0/+3
|
* Add some tests for the operators themselvesTavian Barnes2017-02-118-0/+68
|
* Add tests for bfs's flexible command line parsingTavian Barnes2017-02-105-0/+10
|
* bftw: Make the nameoff of "///" point to "/"Tavian Barnes2017-02-092-2/+2
| | | | This simplifies a few things such as -name handling for ///.
* Give the test cases human-readable namesTavian Barnes2017-02-09137-0/+19
|
* Don't close stdin for -ok or -okdirTavian Barnes2017-02-092-0/+38
| | | | Turns out it violates POSIX, even though GNU find does it.
* Add support for -x?type with multiple typesTavian Barnes2017-02-082-0/+15
| | | | This functionality is already part of GNU findutils git.
* Fix a memory leak parsing -printfTavian Barnes2017-02-061-0/+1
|
* Make -quit happen immediately, not at the end of the current expressionTavian Barnes2017-02-052-0/+1
|
* bftw: Compute nameoff correctly for the root in BFTW_DEPTH modeTavian Barnes2017-02-051-0/+1
|
* Implement -printf/-fprintfTavian Barnes2017-02-058-0/+89
| | | | | Based on a patch by Fangrui Song <i@maskray.me>. Closes #16.
* Implement -nouser and -nogroupTavian Barnes2017-02-042-0/+0
|
* tests: Add a test for -inumTavian Barnes2017-01-031-0/+1
|
* tests: Add tests for -quitTavian Barnes2017-01-024-0/+6
|
* Set _FILE_OFFSET_BITS to 64Tavian Barnes2016-12-211-0/+1
| | | | | With the new support for -size n[TP], this is needed to avoid overflow on 32-bit platforms.
* Implement -mnewerTavian Barnes2016-12-202-0/+8
|
* Support -[gu]id NAME like BSD findTavian Barnes2016-12-202-0/+38
|
* Implement BSD find's -depth NTavian Barnes2016-12-186-0/+38
|
* tests: Allow limiting the testsuite to POSIX, BSD, GNU, and bfs-specific ↵Tavian Barnes2016-12-186-0/+60
| | | | features
* Implement -regex, -iregex, and -regextype/-ETavian Barnes2016-12-186-0/+10
|
* tests: Don't check -size for directoriesTavian Barnes2016-12-054-26/+2
|
* tests: Don't check -links for directoriesTavian Barnes2016-12-053-9/+0
|
* Allow // to be different from /Tavian Barnes2016-11-242-2/+2
| | | | | | POSIX says that // may be resolved in an implementation-defined way (generally, to access network shares). So don't use it in tests, and don't canonicalize it to '/' in -execdir.
* tests: Mkae LC_ALL=C apply to the whole pipeline when sorting.Tavian Barnes2016-11-223-39/+39
|
* Support -perm +MODE for symbolic modes.Tavian Barnes2016-11-211-0/+0
| | | | Only things like -perm +777 are disallowed by GNU find.
* Fix -execdir for /Tavian Barnes2016-11-213-0/+3
|
* Fix -execdir for root paths with no slashes.Tavian Barnes2016-11-211-1/+1
|
* tests: Don't rely on the system 'find' for the expected output.Tavian Barnes2016-11-2187-0/+800
|
* Implement -ignore_readdir_race.Tavian Barnes2016-10-241-0/+10