From c57eae80c7b302a38a38ad154ed50c6a51fa5b2b Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Fri, 30 Oct 2026 02:19:18 +0100 Subject: [PATCH 1/2] docs: group unreleased changelog notes --- CHANGELOG.md | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a21f68ea..b671901c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,35 +8,35 @@ ### Fixed +#### Assertions and doubles + - Date assertions reject trailing text on macOS and parse colon-separated timezone offsets consistently across platforms (#1404) -- `assert_string_not_starts_with` joins every haystack argument and keeps the test name as its failure label, like its siblings (#1403) +- `assert_string_not_starts_with` joins every haystack argument and uses the test name as its failure label, matching its siblings (#1403). `assert_matches` and `assert_not_matches` accept patterns starting with `-` and fail when grep rejects a pattern (#1398) +- `assert_files_equals` and `assert_files_not_equals` fail and name the missing path when either file does not exist (#1397) - Snapshots record and update literal `-n`, `-e`, `-E` and combined echo flag values correctly (#1402) -- Generated workflows run test directories containing whitespace as a single path without requiring a committed `.env` (#1425) -- Annotations, tags, header counts and duplicate checks support functions declared without parentheses (#1422) +- Spies keep multiline arguments in one recorded call, including comparisons and failure logs (#1399). Call argument assertions fail when the spy was never called or the requested call index does not exist (#1400) +- `bashunit::unmock` restores shell functions replaced by spies, mocks or mock sequences (#1401) + +#### Setup and selection + +- `install.sh` and `upgrade` keep the installed binary when a download fails or is empty; installation also keeps it when checksum verification fails (#1406, #1407) +- `install.sh` resolves relative destinations from the caller's directory, reports the resolved path (#1408), and rejects prefixed or incomplete version numbers instead of treating them as directories (#1409) +- `init` quotes the bootstrap path and custom tests directory in `.env`, so paths containing spaces work on later runs (#1411). Generated workflows pass a tests directory containing whitespace as one path without requiring a committed `.env` (#1425) +- `.bashunitrc` suite options stay out of the environment; global settings before and after suite sections still apply (#1410) +- Include, inline and exclusion filters preserve `test_` inside names such as `latest_version` (#1414). `--debug` keeps an existing test file or directory as the test path instead of taking it as the trace file (#1405) + +#### Test discovery and execution + +- Annotations, tags, header counts and duplicate checks support functions declared without parentheses (#1422). Duplicate definitions with an opening brace on the next line are reported instead of replacing the first definition (#1421) - Echo data providers preserve words containing `#` or parentheses and report malformed rows without dropping later rows (#1419) -- A green file or filtered subset preserves rerun-cache entries for tests it did not execute (#1418) -- SIGTERM and SIGHUP run teardown hooks, stop parallel workers, and remove the run's scratch files before exiting with status 1 (#1417) -- Sequential stop-on-failure runs write requested reports and the rerun cache for the tests that ran (#1415) -- Include, inline, and exclusion filters preserve `test_` inside names such as `latest_version` (#1414) -- `.bashunitrc` suite options stay out of the environment, while global settings before and after suite sections still apply (#1410) -- `install.sh` rejects prefixed or incomplete version numbers instead of treating them as directories (#1409) -- `install.sh` resolves relative destinations from the caller's directory and reports the resolved installation path (#1408) -- `bashunit::unmock` restores a shell function replaced by a spy, mock, or mock sequence (#1401) -- Spies keep a multiline argument in one recorded call, including call comparisons and failure logs (#1399) -- Parallel results and hook output stay separate for test paths that differ by slashes and underscores (#1416) -- Coverage report paths are checked before tests run, and LCOV or HTML write failures make the run fail instead of reporting success (#1412) -- `upgrade` keeps the installed binary when a download fails or returns an empty file (#1407) -- `install.sh` keeps the installed binary when a download fails, is empty, or fails checksum verification (#1406) -- `--debug` leaves an existing test file or directory as the test path instead of taking it as the trace file (#1405) -- Call argument assertions fail when the spy was never called or the requested call index does not exist (#1400) -- `assert_matches` and `assert_not_matches` accept patterns starting with `-` and fail when grep rejects a pattern (#1398) -- `assert_files_equals` and `assert_files_not_equals` fail and name the missing path when either file does not exist (#1397) -- TAP reports keep test titles containing line breaks on a single result line (#1413) +- SIGTERM and SIGHUP run teardown hooks, stop parallel workers and remove scratch files before exiting with status 1 (#1417) +- Parallel results and hook output stay separate for paths that differ by slashes and underscores (#1416). Relative hidden paths are counted and keep separate results from matching visible paths (#1393) + +#### Reports and reruns -- `init` writes the bootstrap path and a custom tests directory to `.env` quoted, so a directory with a space runs afterwards instead of breaking every next run (#1411) +- Sequential stop-on-failure runs write requested reports and the rerun cache for tests that ran (#1415). A green file or filtered subset preserves cache entries for tests it did not execute (#1418) +- Coverage report paths are checked before tests run; LCOV or HTML write failures make the run fail (#1412). TAP reports keep test titles containing line breaks on one result line (#1413) - Failure source context stays inside a one-line test instead of listing the next function's assertions (#1420) -- Parallel runs count tests under relative hidden paths and keep their results separate from matching visible paths (#1393) -- Duplicate test functions are detected when the opening brace is on the next line instead of silently replacing the first definition (#1421) ### Changed From 39dc7223f1300dab3c3d29b6f9fb193ed49d4e15 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Fri, 30 Oct 2026 07:32:28 +0100 Subject: [PATCH 2/2] docs: bound validation workers --- .agnostic-ai/AGNOSTIC_AI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.agnostic-ai/AGNOSTIC_AI.md b/.agnostic-ai/AGNOSTIC_AI.md index 1c985231..20695bcf 100644 --- a/.agnostic-ai/AGNOSTIC_AI.md +++ b/.agnostic-ai/AGNOSTIC_AI.md @@ -13,8 +13,8 @@ Preserve Bash 3.0 parsing and public APIs; follow sibling tests/code. Update doc Main selects checks by changed behavior/risk and reuses unchanged passes. Small fixes: affected tests, ShellCheck, `make lint`; strict mode for options, errors, hooks, or workers. Cross-cutting runtime changes/releases need: ```bash -make test -make test/strict +BASHUNIT_PARALLEL_JOBS=4 make test +BASHUNIT_PARALLEL_JOBS=4 make test/strict make sa make lint ```