#/bin/sh
#
# LI18NUX2K.L1/utils/gencat/gencat.sh
#
# Copyright (c) 1991, 1992, 1997, 1998, 1999, 2001 X/Open Company Ltd.
# (X/Open)
# trading as The Open Group
# Copyright (c) 2001, 2003 International Business Machines Corp.
# All rights reserved except as granted by this License.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the "Artistic License" which comes with this
# Kit, with the following modification:
# a) "executable(s)" should be interpreted to include
# "test case(s)"
# b) if you wish to make changes as defined in clause 2 and 3, and
# distribute a modified version of this package, then
# clauses 3c and 4c are required
# c) Clause 7 is rephrased as follows: "Subroutines supplied by you
# and linked into this Package shall not be considered part of this
# Package".
#
#
# X/OPEN, TRADING AS THE OPEN GROUP, AND IBM CORP. DISCLAIM ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL X/OPEN OR IBM CORP. BE
# LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# You should have received a copy of the Artistic License with this
# Kit, in the file named "Artistic".  If not, we'll be glad to provide one.


tet_startup="startup"			# startup function
tet_cleanup="cleanup"			# cleanup function
iclist="ic1"
ic1="tp1 tp2 tp3"

targetlocale="LTP_1.UTF-8"
catalog="message.cat"
testcmd="./gencat_test"
oldNLSPATH=$NLSPATH

gencat_init ()
{
	export NLSPATH=`pwd`/%N:$oldNLSPATH
	gencat $catalog gencat.msgsrc1
}

# 16 Jan 2003 AJ.
# no longer remove $testcmd since that is built in the build stage
gencat_fin ()
{
	rm -rf $catalog
	export NLSPATH=$oldNLSPATH
}

tp1()
{
	tet_infoline "* When keyword 'f' is specified, verify this utility handles the filename which is written in file-system-safe characters."

	export LANG=$targetlocale

	gencat_init
	gencat --new $catalog gencat.msgsrc1

	$testcmd >out.stdout 2>out.stderr
	cp out.stdout gencat.output1
	diff out.stdout gencat.expout1 >/dev/null 2>&1

	if [ $? = 0 ] ; then
                tet_result PASS # success
        else
                tet_infoline "Cannot handle filename written in file-system-safe characters."
                tet_result FAIL # fail
        fi
        unset LANG
	gencat_fin
}

tp2()
{
	tet_infoline "* When inserting a message text file into an existing message catalog file, if the set and message numbers do not collide, the new message text shall be added to the existing catalog file without changing existing messages."

	export LANG=$targetlocale

	gencat_init
	gencat $catalog gencat.msgsrc2

	$testcmd >out.stdout 2>out.stderr
	diff out.stdout gencat.expout2 >/dev/null 2>&1

	if [ $? = 0 ] ; then
                tet_result PASS # success
        else
                tet_infoline "The test output did not match what was expected"
		infofile gencat.expout2 "expected: "
		infofile out.stdout "got: "
		infofile out.stderr "stderr: "
                tet_result FAIL # fail
        fi
        unset LANG
	gencat_fin
}

tp3()
{
	tet_infoline "* When inserting a message text file into an existing message catalog file, if the set and message numbers collide, the new message text shall be added to the existing catalog file replacing the old message."

	export LANG=$targetlocale

	gencat_init
	gencat $catalog gencat.msgsrc3

	$testcmd >out.stdout 2>out.stderr
	diff out.stdout gencat.expout3 >/dev/null 2>&1

	if [ $? = 0 ] ; then
                tet_result PASS # success
        else
                tet_infoline "The test output did not match what was expected"
		infofile gencat.expout3 "expected: "
		infofile out.stdout "got: "
		infofile out.stderr "stderr: "
                tet_result FAIL # fail
        fi
        unset LANG
	gencat_fin
}

startup() # startup function
{
	rm -f out.stdout out.stderr >/dev/null 2>&1
}


cleanup() # clean-up function
{
	rm -f out.stdout out.stderr >/dev/null 2>&1
}

# source common shell functions

. $TET_EXECUTE/LIB/i18nfuncs.sh
. $TET_EXECUTE/LIB/shfuncs.sh
. $TET_EXECUTE/LIB/lsbfuncs.sh

# execute shell test case manager - must be last line
. $TET_ROOT/lib/xpg3sh/tcm.sh
