mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-22 21:37:58 +02:00
76 lines
2.0 KiB
Plaintext
76 lines
2.0 KiB
Plaintext
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
: ${TMPDIR:=/tmp}
|
|
TMPF=$TMPDIR/cond-invalid-$RANDOM
|
|
|
|
cond_invalid()
|
|
{
|
|
local r;
|
|
rm -f "$TMPF"
|
|
line=$1 ; shift
|
|
lhs=$1 ; shift
|
|
rhs=$1 ; shift
|
|
|
|
[[ $lhs =~ $rhs ]] 2>"$TMPF"
|
|
r=$?
|
|
if [ ! -s "$TMPF" ]; then
|
|
echo "cond-regexp2.sub: $line: expected invalid regexp error output to stderr" >&2
|
|
fi
|
|
rm -f "$TMPF"
|
|
return $r;
|
|
}
|
|
|
|
[[ "\\" =~ ["."] ]] && echo bad 1
|
|
|
|
[[ "\\" =~ "[.]" ]] && echo bad 2
|
|
|
|
cond_invalid $LINENO '\\' '[\.' && echo bad 3
|
|
|
|
[[ "\\" =~ [\.] ]] && echo bad 4
|
|
|
|
[[ "\\" =~ [\\] ]] || echo bad 5
|
|
|
|
cond_invalid $LINENO x '[z-a]' && echo bad 6
|
|
|
|
cond_invalid $LINENO x '[[:invalid:]abc]' && echo bad 7
|
|
|
|
exp='x\'
|
|
cond_invalid $LINENO x "$exp" && echo bad 8
|
|
|
|
exp='a(xb'
|
|
cond_invalid $LINENO x "$exp" && echo bad 9
|
|
|
|
[[ dog =~ [[=d=]].. ]] && echo ok 1
|
|
[[ d.. =~ [[=d=]]\.\. ]] && echo ok 2
|
|
[[ dog =~ ['[=d=]'].. ]] && echo ok 3 # dubious
|
|
|
|
[[ dog =~ [[=d=]].[[=G=][=g=]] ]] && echo ok 4
|
|
[[ dog =~ [[=d=]].[\[=G=][=g=]] ]] && echo ok 4a
|
|
|
|
[[ dog =~ "d.." ]] || echo ok 5
|
|
|
|
[[ dog =~ [[.d.][.D.]]o. ]] && echo ok 6
|
|
|
|
[[ dog =~ ([[.d.][.D.]])o(.) ]] && echo ok 7 -- ${BASH_REMATCH[1]}
|
|
[[ dog =~ d([[.o.][.O.]])(.) ]] && echo ok 8 -- ${BASH_REMATCH[1]}
|
|
[[ dog =~ .([[.o.][.O.]])(.) ]] && echo ok 9
|
|
|
|
[[ dog =~ 'd''o''g' ]] && echo ok 10
|
|
|
|
[[ ']' =~ [']'] ]] && echo ok 11
|
|
|
|
[[ a =~ ['a]'] ]] || echo ok 12
|
|
|
|
[[ "\\" =~ [^]"."] ]] || echo unexpected
|