|
Packit |
709fb3 |
#! /bin/sh
|
|
Packit |
709fb3 |
# Copyright (C) 2001, 2006, 2009-2017 Free Software Foundation, Inc.
|
|
Packit |
709fb3 |
#
|
|
Packit |
709fb3 |
# Copying and distribution of this file, with or without modification,
|
|
Packit |
709fb3 |
# are permitted in any medium without royalty provided the copyright
|
|
Packit |
709fb3 |
# notice and this notice are preserved.
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
. "${srcdir=.}/init.sh"; path_prepend_ ../src
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
cz=cs_CZ.UTF-8
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# If cs_CZ.UTF-8 locale doesn't work, skip this test.
|
|
Packit |
709fb3 |
LC_ALL=$cz locale -k LC_CTYPE 2>/dev/null | grep -q charmap.*UTF-8 \
|
|
Packit |
709fb3 |
|| skip_ this system lacks the $cz locale
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# If matching is done in single-byte mode, skip this test too
|
|
Packit |
709fb3 |
printf 'é\n' | LC_ALL=$cz grep -Eq '^[é]{2}$'
|
|
Packit |
709fb3 |
case $? in
|
|
Packit |
709fb3 |
0) skip_ "built without multi-byte support";;
|
|
Packit |
709fb3 |
1) ;;
|
|
Packit |
709fb3 |
*) fail_ "unexpected exit status: $?";;
|
|
Packit |
709fb3 |
esac
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
failures=0
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
cat > csinput <
|
|
Packit |
709fb3 |
01 Žluťoučká číše
|
|
Packit |
709fb3 |
ČíŠE 02
|
|
Packit |
709fb3 |
03 Z číší Čiší cosi
|
|
Packit |
709fb3 |
04 Čí
|
|
Packit |
709fb3 |
Še 05
|
|
Packit |
709fb3 |
06 ČČČČČČČíšČÍŠčíš
|
|
Packit |
709fb3 |
07 ČČČ ČČČČíšČÍŠčíšEEEE
|
|
Packit |
709fb3 |
čAs 08
|
|
Packit |
709fb3 |
09Čapka
|
|
Packit |
709fb3 |
10ČaSy se měnÍ
|
|
Packit |
709fb3 |
ČÍšE11
|
|
Packit |
709fb3 |
Čas12
|
|
Packit |
709fb3 |
𝇕ČÍšE𝇓13
|
|
Packit |
709fb3 |
ŽČÍšE𝇓14
|
|
Packit |
709fb3 |
𝇕ČÍšEŽ15
|
|
Packit |
709fb3 |
ŽČÍšEŽ16
|
|
Packit |
709fb3 |
ČÍšE𝇓17
|
|
Packit |
709fb3 |
ČÍšEŽ18
|
|
Packit |
709fb3 |
19𝇕ČÍše
|
|
Packit |
709fb3 |
20ŽČÍše
|
|
Packit |
709fb3 |
EOF
|
|
Packit |
709fb3 |
cat > cspatfile <
|
|
Packit |
709fb3 |
ČÍšE
|
|
Packit |
709fb3 |
Čas
|
|
Packit |
709fb3 |
EOF
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
for mode in F G E; do
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
test1=$(echo $(LC_ALL=$cz grep -${mode} -f cspatfile csinput |
|
|
Packit |
709fb3 |
tr -cs '0-9' '[ *]'))
|
|
Packit |
709fb3 |
if test "$test1" != "11 12 13 14 15 16 17 18"; then
|
|
Packit |
709fb3 |
echo "Test #1 ${mode} failed: $test1"
|
|
Packit |
709fb3 |
failures=1
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
test2=$(echo $(LC_ALL=$cz grep -${mode}i -f cspatfile csinput |
|
|
Packit |
709fb3 |
tr -cs '0-9' '[ *]'))
|
|
Packit |
709fb3 |
if test "$test2" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
|
|
Packit |
709fb3 |
echo "Test #2 ${mode} failed: $test2"
|
|
Packit |
709fb3 |
failures=1
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
test3=$(echo $(LC_ALL=$cz grep -${mode}i -e 'ČÍšE' -e 'Čas' csinput |
|
|
Packit |
709fb3 |
tr -cs '0-9' '[ *]'))
|
|
Packit |
709fb3 |
if test "$test3" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
|
|
Packit |
709fb3 |
echo "Test #3 ${mode} failed: $test3"
|
|
Packit |
709fb3 |
failures=1
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# Skip the next test - known to fail. TAA.
|
|
Packit |
709fb3 |
#test4=$(echo $(LC_ALL=$cz; export LC_ALL
|
|
Packit |
709fb3 |
# grep -${mode}iw -f cspatfile csinput |
|
|
Packit |
709fb3 |
# sed 's/[^0123456789]/ /g'))
|
|
Packit |
709fb3 |
#if test "$test4" != "01 02 08 13 17 19"; then
|
|
Packit |
709fb3 |
# echo "Test #4 ${mode} failed: $test4"
|
|
Packit |
709fb3 |
# failures=1
|
|
Packit |
709fb3 |
#fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# Test that --color=always does not depend on individual pattern order
|
|
Packit |
709fb3 |
# within the pattern list, and that a longer match is preferred to a
|
|
Packit |
709fb3 |
# shorter one starting at the same point.
|
|
Packit |
709fb3 |
test6="$(echo 'Cosi tu ČišÍ...' \
|
|
Packit |
709fb3 |
| LC_ALL=$cz grep --color=always -${mode}i -e 'čiš' -e 'čiší')"
|
|
Packit |
709fb3 |
if echo "$test6" \
|
|
Packit |
709fb3 |
| LC_ALL=C grep -q 'Cosi tu .*\[.*m\(.\[K\)\?ČišÍ.*\[.*m\(.\[K\)\?\.\.\.'; \
|
|
Packit |
709fb3 |
then
|
|
Packit |
709fb3 |
:
|
|
Packit |
709fb3 |
else
|
|
Packit |
709fb3 |
echo "Test #6 ${mode} failed: $test6"
|
|
Packit |
709fb3 |
failures=1
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# Test that --color=always does not depend on individual pattern order
|
|
Packit |
709fb3 |
# within the pattern list, and that a longer match is preferred to a
|
|
Packit |
709fb3 |
# shorter one starting at the same point.
|
|
Packit |
709fb3 |
test7="$(echo 'Cosi tu ČišÍ...' \
|
|
Packit |
709fb3 |
| LC_ALL=$cz grep --color=always -${mode}i -e 'čiší' -e 'čiš')"
|
|
Packit |
709fb3 |
if echo "$test7" \
|
|
Packit |
709fb3 |
| LC_ALL=C grep -q 'Cosi tu .*\[.*m\(.\[K\)\?ČišÍ.*\[.*m\(.\[K\)\?\.\.\.'; \
|
|
Packit |
709fb3 |
then
|
|
Packit |
709fb3 |
:
|
|
Packit |
709fb3 |
else
|
|
Packit |
709fb3 |
echo "Test #7 ${mode} failed: $test7"
|
|
Packit |
709fb3 |
failures=1
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
done
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
for mode in G E; do
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
test8=$(echo $(LC_ALL=$cz grep -${mode}i -e 'Č.šE' -e 'Č[a-f]s' csinput |
|
|
Packit |
709fb3 |
tr -cs '0-9' '[ *]'))
|
|
Packit |
709fb3 |
if test "$test8" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
|
|
Packit |
709fb3 |
echo "Test #8 ${mode} failed: $test8"
|
|
Packit |
709fb3 |
failures=1
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
done
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
Exit $failures
|