Transferred the canonical repository from helly25/bashtest to mboworks/bashtest; future releases use the new mboworks_bashtest module
name.
Added managed per-fixture scratch directories through test_tmpdir, with
configurable retention and cleanup.
0.6.0
Added skip_test "${REASON}": marks the current test as skipped and reports the reason. Use skip_test "reason" && return to end the test body.
Added --no-skip, which turns every skip_test into a failure. For an environment that
GUARANTEES the capability a test probes for, where a skip means the guarantee broke.
Fixed: a fatal abort inside a test no longer reports success. The EXIT trap's own last command
became the script's exit status, so a failing run could exit 0. This repository's own test suite
was dying at case 5 of 12 under set -u and still reporting PASS, hiding the seven that never
ran.
Fixed: expect_contains / expect_not_contains aborted the shell when given an EMPTY array.
bash 3.2 (which macOS ships) treats "${@}" and "${array[@]}" as unbound under set -u.
expect_matches / expect_not_matches: extended regular expression (ERE) checks via bash's built-in [[ =~ ]] (no subprocess, so SIGPIPE-safe under set -o pipefail). ^/$ anchor the whole text, not individual lines.
expect_pcre_matches / expect_pcre_not_matches: Perl Compatible Regular Expression checks. These shell out to an external tool (grep -P, ggrep -P, pcre2grep, or pcregrep) via a here-string and fail with an actionable message when none is available.
Documented the cmd | grep -q SIGPIPE-under-pipefail pitfall in the README.
0.4.0
Renamed the module repo to helly25_bashtest and dropped the com_helly25_bashtest alias. The bashtest macro now resolves its runtime via a repo-relative Label, so it works regardless of the apparent repo name. Consumers must update load("@helly25_bashtest//bashtest:bashtest.bzl", "bashtest") (previously @com_helly25_bashtest).
Dropped legacy WORKSPACE support; the module is now bzlmod-only.
Extended the BCR presubmit support matrix: added Bazel 9.x and the Linux platforms ubuntu 22.04, Debian 12, and Rocky Linux 8 (alongside the existing ubuntu 24.04 and macOS).
0.3.1
Re-release of 0.3.0 (no functional changes).
0.3.0
Added explicit load of sh_library (needed for bazel 9).