blob: 9be950aeb6139ada9715c5dc6c2efda9a0cf8ece [file] [log] [blame]
#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src
# Test that gettext() in multithreaded applications works correctly if
# different threads operate in different locales with the same encoding.
# Let's use two UTF-8 locales that configure already checked for:
# French and German.
test -d in-th-2 || mkdir in-th-2
test -d in-th-2/fr || mkdir in-th-2/fr
test -d in-th-2/fr/LC_MESSAGES || mkdir in-th-2/fr/LC_MESSAGES
test -d in-th-2/de || mkdir in-th-2/de
test -d in-th-2/de/LC_MESSAGES || mkdir in-th-2/de/LC_MESSAGES
: ${MSGFMT=msgfmt}
${MSGFMT} -o in-th-2/fr/LC_MESSAGES/tstthread.mo "$wabs_srcdir"/intl-thread-2-1.po
${MSGFMT} -o in-th-2/de/LC_MESSAGES/tstthread.mo "$wabs_srcdir"/intl-thread-2-2.po
: ${DIFF=diff}
cat <<EOF > in-th-2.ok
beauté
Schönheit
beauté
Schönheit
EOF
: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
: ${LOCALE_DE_UTF8=de_DE.UTF-8}
if test $LOCALE_FR_UTF8 != none && test $LOCALE_DE_UTF8 != none; then
prepare_locale_ in-th-2/fr in-th-2/$LOCALE_FR_UTF8
prepare_locale_ in-th-2/de in-th-2/$LOCALE_DE_UTF8
../intl-thread-2-prg $LOCALE_FR_UTF8 $LOCALE_DE_UTF8 > in-th-2.out
case $? in
0)
${DIFF} in-th-2.ok in-th-2.out || Exit 1
;;
77)
echo "Skipping test: POSIX per-thread locales not supported"
Exit 77
;;
*)
Exit 1
;;
esac
else
if test -f /usr/bin/localedef; then
echo "Skipping test: no french and german locales are installed"
else
echo "Skipping test: no french and german locales are supported"
fi
Exit 77
fi
Exit 0