fix: too brittle invalid regex tests under bash 5.3 The exact error details depend on the system
diff --git a/test/assert_line.bats b/test/assert_line.bats index 5a2f494..d42df0d 100755 --- a/test/assert_line.bats +++ b/test/assert_line.bats
@@ -337,10 +337,17 @@ run assert_line --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + cat <<ERR_MSG -- ERROR: assert_line -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} +-- +ERR_MSG + assert_test_fail <<ERR_MSG + +-- ERROR: assert_line -- +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/assert_output.bats b/test/assert_output.bats index 199f996..5341167 100755 --- a/test/assert_output.bats +++ b/test/assert_output.bats
@@ -255,10 +255,11 @@ run assert_output --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: assert_output -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/assert_regex.bats b/test/assert_regex.bats index 4b8301a..42caad9 100644 --- a/test/assert_regex.bats +++ b/test/assert_regex.bats
@@ -74,10 +74,11 @@ run assert_regex value '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: assert_regex -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/assert_stderr.bats b/test/assert_stderr.bats index cf8c1bc..e56b59d 100755 --- a/test/assert_stderr.bats +++ b/test/assert_stderr.bats
@@ -268,10 +268,11 @@ run assert_stderr --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: assert_stderr -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/assert_stderr_line.bats b/test/assert_stderr_line.bats index f7d1ab7..a8b1141 100755 --- a/test/assert_stderr_line.bats +++ b/test/assert_stderr_line.bats
@@ -350,10 +350,11 @@ run assert_stderr_line --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: assert_stderr_line -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/refute_line.bats b/test/refute_line.bats index f2a3925..81d0e6f 100755 --- a/test/refute_line.bats +++ b/test/refute_line.bats
@@ -330,10 +330,11 @@ run refute_line --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: refute_line -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/refute_output.bats b/test/refute_output.bats index b0d3c4f..fb68875 100755 --- a/test/refute_output.bats +++ b/test/refute_output.bats
@@ -199,10 +199,11 @@ @test 'refute_output() --regexp <regexp>: returns 1 and displays an error message if <regexp> is not a valid extended regular expression' { run refute_output --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: refute_output -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/refute_regex.bats b/test/refute_regex.bats index eb56b18..a4ada12 100644 --- a/test/refute_regex.bats +++ b/test/refute_regex.bats
@@ -90,10 +90,11 @@ run refute_regex value '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: refute_regex -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/refute_stderr.bats b/test/refute_stderr.bats index b1e8c8c..f4a79b6 100755 --- a/test/refute_stderr.bats +++ b/test/refute_stderr.bats
@@ -212,10 +212,11 @@ run refute_stderr --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<'ERR_MSG' + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: refute_stderr -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else
diff --git a/test/refute_stderr_line.bats b/test/refute_stderr_line.bats index 67dcde1..5db4363 100755 --- a/test/refute_stderr_line.bats +++ b/test/refute_stderr_line.bats
@@ -342,10 +342,11 @@ run refute_stderr_line --regexp '[.*' if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >=3) )); then - assert_test_fail <<"ERR_MSG" + [[ "$output" =~ "invalid regular expression "([^$'\n']+) ]] + assert_test_fail <<ERR_MSG -- ERROR: refute_stderr_line -- -invalid regular expression `[.*': Missing ']' +invalid regular expression ${BASH_REMATCH[1]} -- ERR_MSG else