Blame tests/fmbtest

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