20 Commits
Author SHA1 Message Date
Sylvestre Ledru 2a3eac9893 ci: don't count a test that stopped running as an improvement
improvements was "failing in the reference, not failing now", which is
also true of a test that produced no result because it hung. That is how
a hang in find got reported as "+ gnu/okdir_path_empty". List those
separately instead; they don't fail the job, since an upstream rename
looks the same.
2026-08-18 19:20:00 +02:00
Sylvestre Ledru bb6a5ba53e ci: per-test GNU/bfs comparison and comment, like uutils sed/grep
The old comparison only commented when the PASS/FAIL/ERROR/SKIP *counts*
changed vs main, so it was blind to net-zero changes (one test fixed, one
broken). diff-gnu.sh also compared against an unextracted (empty) baseline,
flagging every current failure as a regression, and the published baseline
could be stale.

Adopt the sed/grep design:

- build-gnu.sh / build-bfs.sh now emit a per-test JSON summary
  (findutils-gnu-full-result.json / bfs-full-result.json) listing every
  test's name + PASS/FAIL/SKIP, via the new gnu_json_result.py /
  bfs_json_result.py.
- compare_test_results.py diffs the set of failing test names against a
  reference, writing a human-readable result file (empty when nothing
  changed) and exiting non-zero only on new, non-intermittent failures.
- compat.yml fetches the reference *-full-result.json from the default
  branch's latest run (dawidd6/action-download-artifact) and uploads a
  comparison artifact per suite.
- comment.yml posts a PR comment whenever the comparison is non-empty,
  i.e. on any per-test improvement or regression regardless of net count.
- ignore-intermittent.txt lists known-flaky tests, reported but not
  failing the job.

Remove the superseded compare_gnu_result.py / compare_bfs_result.py /
diff-gnu.sh / diff-bfs.sh.
2026-06-13 09:10:55 +02:00
oech3 3fb0a98ad7 build-gnu.sh: Support any profile 2026-04-08 16:40:31 +02:00
Tavian Barnes abf851dd7d ci: Update bfs to 4.0 (#446)
And fix diff-bfs.sh for the new test result format.
2024-08-17 08:13:30 +01:00
hanbings f145469cfd Comments are only sent when GNU/BFS test compatibility changes. (#407) 2024-06-28 08:56:32 +02:00
Tavian Barnes 5cbb3142e0 ci: Update bfs to 3.1.3 2024-03-19 13:29:08 -04:00
Tavian Barnes be8adfa390 ci: Update bfs to 3.0.3 2023-10-12 22:47:11 -04:00
Tavian Barnes 366c8b019f ci: Update bfs to 2.6.2 2022-10-21 12:04:44 -04:00
Tavian Barnes e04cd34384 ci: Update bfs testsuite to version 2.6
The latest bfs properly groups the --sudo tests, so we can test things
that require root like -xdev.
2022-05-25 13:23:55 -04:00
Tavian Barnes ce375a71b0 ci: Fix BFS tests comparison with zero skipped tests
Now that -path/-ipath is implemented, no tests are skipped any more.
Fix CI by using zero instead of the empty string, which breaks the
compare_bfs_result.py script.
2022-02-23 21:33:32 -05:00
Tavian Barnes cead712118 ci: Fix GNU testsuite comparison
The uploaded log artifact maintains the directory structure, so just
compare it directly to the GNU find directory.
2022-02-22 14:30:56 -05:00
Tavian Barnes 7be2715f07 ci: Update BFS testsuite to version 2.4 2022-02-22 13:41:43 -05:00
Tavian Barnes 43027d0808 ci: Also run the dejagnu tests from GNU findutils 2022-02-08 12:05:00 -05:00
Ryan Gonzalez 3a1c42123f Add an initial implementation of xargs
This includes much of the core xargs functionality, with the following
notable exceptions:

- Parallel execution (`-P`): This option currently just does
  nothing, that way anything that passes -P can at least run without a
  notable behavior shift (other than simply being slower).
- Replacement strings (`-I`): This can easily be worked around via an
  intermediate shell invocation (e.g. `xargs -L1 sh -c 'do-things-with
  $@' --`).
- EOF strings (`-E`): I've honestly never seen this actually used,
  though it would not be particularly difficult to implement given the
  current architecture.

Closes #37

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2022-01-22 20:22:01 -06:00
Ryan Gonzalez 165d72efd2 Add remaining portions of automated compatibility tests
This adds the rest of the compatibility test workflow, in order to
automatically run against the GNU findutils & BFS test suites as part of
standard CI and compare the results to the latest from the 'main'
branch.

Closes #128

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2022-01-21 16:18:35 -06:00
Ryan Gonzalez 97ea4ae294 Add initial parts of automated compatibility tests
This is the first half of the needed changes to set up automated
compatibility tests against GNU findutils and bfs, handling the uploads
of the build logs and JSON results. The workflow itself is heavily based
on the one from uutils/coreutils:

https://github.com/uutils/coreutils/blob/main/.github/workflows/GnuTests.yml

but with various cleanups & tweaks to better suit findutils.

This does *not* include the actual regression comparisons, because those
will only pass once archives of these files are up on the main branch.

Ref #128

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2022-01-21 16:15:48 -06:00
Tavian Barnes 8b7bf9e0d1 ci: Run the bfs testsuite 2021-09-15 09:57:18 -04:00
Sylvestre Ledru bcb7fab917 GNU: allow to run a specific arg 2021-09-07 23:23:29 +02:00
Sylvestre Ledru 94c830661b GNU: Don't build it everytime 2021-09-07 23:22:58 +02:00
Sylvestre Ledru 28989171ab add a script to run the tests with the GNU testsuite 2021-09-07 23:01:43 +02:00