ci(bash-3.0): add --strict job to the Bash 3.0 matrix#692
Merged
Conversation
The strict job ran only on Bash 5 (Ubuntu), so set -e regressions specific to Bash 3.x went undetected — e.g. a bare non-zero call aborting a test body under set -euo pipefail. Add a '--simple --parallel --strict' variant to the Bash 3.0 matrix.
The acceptance suite drives ./bashunit as a subprocess and has many pre-existing Bash 3.0 strict-mode failures; the full strict run is covered on Bash 5 (Ubuntu - strict). On Bash 3.0, run the strict variant over unit + functional, which guard the set -e correctness of the framework code.
Bash 3.0 ships a broken 'set -o pipefail' that reports failing pipelines as successful, which made the framework (snapshot matcher, etc.) and ~59 tests misbehave under --strict on Bash 3.0 only. Apply 'set -eu' always and enable pipefail only on Bash >= 3.1 via _supports_reliable_pipefail. Also guard the snapshot git-diff capture with '|| true'. With this, the full suite passes --strict on Bash 3.0, so the Bash 3.0 matrix gains a '--simple --parallel --strict tests/' job to catch strict regressions on the oldest supported Bash.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤔 Background
The
--strictjob ran only on Bash 5 (Ubuntu), so set -e regressions specific to Bash 3.x slipped through — as one just did (a bare non-zero call aborting a test body underset -euo pipefail, see #691).💡 Changes
--simple --parallel --strictvariant to the Bash 3.0 compatibility matrix so strict-mode bugs regress loudly on the oldest supported Bash