Skip to content

Commit d950f28

Browse files
committed
{src,test}/assert_regex: Make case-sensitivity transparent
1 parent edb2300 commit d950f28

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

src/assert_regex.bash

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,15 @@ assert_regex() {
4141
| batslib_decorate 'ERROR: assert_regex' \
4242
| fail
4343
elif ! [[ "${value}" =~ ${pattern} ]]; then
44+
if shopt -p nocasematch &>/dev/null; then
45+
local case_sensitive=insensitive
46+
else
47+
local case_sensitive=sensitive
48+
fi
4449
batslib_print_kv_single_or_multi 8 \
4550
'value' "${value}" \
4651
'pattern' "${pattern}" \
52+
'case' "${case_sensitive}" \
4753
| batslib_decorate 'value does not match regular expression' \
4854
| fail
4955
fi

test/assert_regex.bats

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ load test_helper
1919
-- value does not match regular expression --
2020
value : bcd
2121
pattern : ^[a-z]b[c-z]+
22+
case : sensitive
2223
--
2324
ERR_MSG
2425
}
@@ -47,6 +48,23 @@ value (2 lines):
4748
123
4849
pattern (1 lines):
4950
^[a-z]b[c-z]+
51+
case (1 lines):
52+
sensitive
53+
--
54+
ERR_MSG
55+
56+
shopt -s nocasematch
57+
run assert_regex $'bcd\n123' '^[a-z]b[c-z]+'
58+
assert_test_fail <<'ERR_MSG'
59+
60+
-- value does not match regular expression --
61+
value (2 lines):
62+
bcd
63+
123
64+
pattern (1 lines):
65+
^[a-z]b[c-z]+
66+
case (1 lines):
67+
insensitive
5068
--
5169
ERR_MSG
5270
}

0 commit comments

Comments
 (0)