| #! /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 |