1#!/bin/sh
2# Testing the implementation of localedata.
3# Copyright (C) 1998-2022 Free Software Foundation, Inc.
4# This file is part of the GNU C Library.
5
6# The GNU C Library is free software; you can redistribute it and/or
7# modify it under the terms of the GNU Lesser General Public
8# License as published by the Free Software Foundation; either
9# version 2.1 of the License, or (at your option) any later version.
10
11# The GNU C Library is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14# Lesser General Public License for more details.
15
16# You should have received a copy of the GNU Lesser General Public
17# License along with the GNU C Library; if not, see
18# <https://www.gnu.org/licenses/>.
19
20set -e
21
22common_objpfx=$1; shift
23localedef_before_env=$1; shift
24run_program_env=$1; shift
25localedef_after_env=$1; shift
26
27test_locale ()
28{
29    charmap=$1
30    input=$2
31    out=$3
32    rep=$4
33    if test $rep; then
34      rep="--repertoire-map $rep"
35    fi
36    # We expect the test locales to fail with warnings, they are mostly
37    # incomplete and used for testing purposes, but that is OK.
38    ret=0
39    ${localedef_before_env} \
40    ${run_program_env} \
41    I18NPATH=. \
42    ${localedef_after_env} --quiet -c -f $charmap -i $input \
43      ${rep} ${common_objpfx}localedata/$out || ret=$?
44    # Any error greater than one means we ran into an implementation
45    # defined limit or saw an error that caused the output not to
46    # be written, or lastly saw a fatal error that terminated
47    # localedef.
48    if [ $ret -gt 1 ]; then
49	echo "Charmap: \"${charmap}\" Inputfile: \"${input}\"" \
50	     "Outputdir: \"${out}\" failed"
51	exit 1
52    else
53	echo -n "locale $out generated succesfully"
54        if [ $ret -eq 1 ]; then
55	    echo " (with warnings)"
56        else
57	    echo " (without warnings)"
58        fi
59    fi
60}
61
62test_locale IBM437 de_DE de_DE.437
63test_locale tests/test1.cm tests/test1.def test1
64test_locale tests/test2.cm tests/test2.def test2
65test_locale tests/test3.cm tests/test3.def test3
66test_locale tests/test4.cm tests/test4.def test4
67test_locale tests/test5.cm tests/test5.def test5 tests/test5.ds
68test_locale tests/test6.cm tests/test6.def test6 tests/test6.ds
69test_locale tests/test7.cm tests/test7.def test7
70
71exit 0
72
73# Local Variables:
74#  mode:shell-script
75# End:
76