:	'(c) Copyright	Empress Software Inc.	1983, 2003'

USAGE="*** Usage ***  $0  [[codeset] [major] ...]"

if test "$EMPRESSPATH" = "" 
then
	echo "EMPRESSPATH not set"
	exit 1

elif test ! -d $EMPRESSPATH
then
	echo "invalid EMPRESSPATH"
	exit 1
fi

. $EMPRESSPATH/rdbms/util_bin/banner

NLSECHO="$EMPRESSPATH/common/nls/nlsecho"
UE_E0_TESTDIR_NOTFOUND=10123
UI_E0_INITTEST=10122

. $EMPRESSPATH/config/options

case "$EMPRESSRMTPATH" in
 "")    EMPRESSRMTPATH=$EMPRESSPATH
	MSSAMEPATH="yes"
	;;
esac

get_codeset_list ()
{
	test -d $EMPRESSPATH/rdbms/testsrc || return

	HERE=`pwd`
	cd $EMPRESSPATH/rdbms/testsrc
	for I in *
	do
		if test -d $I
		then
			echo $I
		fi
	done
	cd $HERE
}

LANG_LIST=`get_codeset_list`

while :
do
	case "$1" in
	 -rcc | -remote_cc)
			shift
			REMOTE_CC=$1
			export REMOTE_CC
			;;
	 -*)		echo "Invalid option $I"
			exit 1
			;;
	 *)		break
			;;
	esac
	shift
done

case $REMOTE_CC in
 "")	TDIR=.
	;;
 *)
	TDIR=xtarget/$REMOTE_CC
	;;
esac
export TDIR

if test "$1" != ""
then
	for I in $LANG_LIST
	do
		if test "$1" = $I
		then
			MSTCODESET=$1
			shift
			break
		fi
	done
fi

test "$MSTCODESET" = "" && MSTCODESET=ascii

X=`$EMPRESSPATH/bin/empvers -langid`

if test "$MSTCODESET" != "$X" && test "$MSTCODESET" != "ascii"
then
	echo "This port does not support '$MSTCODESET'"
	echo "Abort ..."
	exit 1
fi

if test -d $EMPRESSPATH/rdbms/testsrc/$MSTCODESET && \
   test "$MSTEST_USERTEST" = ""
then
	MSTSRCPATH=$EMPRESSPATH/rdbms/testsrc/$MSTCODESET
	MSRMTTSRCPATH=$EMPRESSRMTPATH/rdbms/testsrc/$MSTCODESET
else
	MSTSRCPATH=$EMPRESSPATH/rdbms/test
	MSRMTTSRCPATH=$EMPRESSRMTPATH/rdbms/test
fi

case $MSSYS_PLATFORM in
 SYS_OS_WIN32)
	PATH="$EMPRESSPATH/bin;$PATH"
	pwdcmd=pwd
	;;
 *)
	PATH="$HOME/bin:$EMPRESSPATH/bin:$MSSYS_CCOMPILERPATH:/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/usr/bsd"
	pwdcmd=/bin/pwd

	if test ! -f $pwdcmd
	then
		pwdcmd=pwd
	fi
	;;
esac

DEVNULL=$MSFILENULL

mkdir -p $EMPRESSPATH/rdbms/testdbs/$MSTCODESET 2> $DEVNULL
mkdir -p $EMPRESSPATH/rdbms/testwork/_testtmp/testdir 2> $DEVNULL
mkdir -p $EMPRESSPATH/rdbms/testwork/_nettmp/testdir 2> $DEVNULL

MSTDBSPATH=`cd $EMPRESSPATH/rdbms/testdbs/$MSTCODESET; $pwdcmd`
MSRMTTDBSPATH=$EMPRESSRMTPATH/rdbms/testdbs/$MSTCODESET
MSTESTPATH=`cd $EMPRESSPATH/rdbms/testwork; $pwdcmd`
MSRMTTESTPATH=$EMPRESSRMTPATH/rdbms/testwork
MSTESTDBPATH=$MSTESTPATH/_testtmp
MSRMTTESTDBPATH=$MSRMTTESTPATH/_testtmp
MSTESTDB=$MSTESTDBPATH/testdb
MSNETTESTDBPATH=$MSTESTPATH/_nettmp
MSRMTNETTESTDBPATH=$MSRMTTESTPATH/_nettmp

# just in case, somebody runs this with the evaluation installation
MSMKDBSHMEM=
export MSMKDBSHMEM

export PATH EMPRESSPATH MSTSRCPATH MSTDBSPATH MSTSRCMAJOR MSTDBSMAJOR
export MSSAMEPATH EMPRESSRMTPATH MSRMTTDBSPATH
export MSRMTSRCPATH MSRMTTDBSMAJOR
export MSSYS_PLATFORM

case $MSSYS_PLATFORM in
 SYS_OS_WIN32)
	TMP_NAME=
	MSNETTEST=
	;;
 *)
	case "$MSNETTEST" in
		"") MSNETTEST=`$EMPRESSPATH/common/sys_bin/sysuname`;;
	esac
	TMP_NAME=`$EMPRESSPATH/common/sys_bin/sysuname`
	;;
esac

if test "$MSNETTEST" = "$TMP_NAME"
then
	MSLOCAL="true"
	EXEC="eval"
else
	MSLOCAL="false"
	EXEC="$EMPRESSPATH/common/sys_bin/rmt_sh"
fi

for I in $MSTDBSPATH $MSTESTPATH $MSTESTDBPATH $MSTESTDBPATH/testdir $MSNETTESTDBPATH $MSNETTESTDBPATH/testdir
do
	if test ! -d $I
	then
		mkdir $I
	fi
done

umask 022

cd $MSTSRCPATH
case $# in
 0)	set - [a-z]*;;
esac

for MSTMAJOR
do
	MSTSRCMAJOR=$MSTSRCPATH/$MSTMAJOR

#	We want to make all the test database even if such feature
#	is not supported. When we do remote server test, the remote
#	client may support the feature such as f77 and c++. Without
#	the test database, those tests will fail. It costs us nothing
#	except the disk space to store the test databases.
#
#	Since there is no remote test for Win32 platform, we do checking
#	for that platform.

	case $MSSYS_PLATFORM in
	 SYS_OS_WIN32)
		if test -f $EMPRESSPATH/common/sys_bin/chkfture
		then
			X=`$EMPRESSPATH/common/sys_bin/chkfture -testsrc $MSTSRCMAJOR`
			case $X in
			  "")	;;
			  *)	echo "inittest: skip $MSTMAJOR; $X != yes"
				continue
				;;
			esac
		fi
		;;
	esac

	$NLSECHO "\n*** Initing test directory: %s ***" $UI_E0_INITTEST $MSTMAJOR

	MSRMTTSRCMAJOR=$MSRMTTSRCPATH/$MSTMAJOR
	if test ! -d $MSTSRCMAJOR
	then
		$NLSECHO "%s: not a test directory" $UE_E0_TESTDIR_NOTFOUND $MSTMAJOR
		continue
	fi

	MSTDBSMAJOR=$MSTDBSPATH/$MSTMAJOR
	MSRMTTDBSMAJOR=$MSRMTTDBSPATH/$MSTMAJOR

	if test ! -d $MSTDBSMAJOR
        then
               	mkdir $MSTDBSMAJOR
        fi
	case "$MSLOCAL" in
	 false)
		$EXEC "$EMPRESSRMTPATH/common/sys_bin/chkdir $MSRMTTDBSMAJOR";;
	esac

	DB=_db
	DB1=_db1

	case "$MSLOCAL" in
	 true) cd $MSTDBSMAJOR;;
	esac

	if test -f $MSTSRCMAJOR/_db.mk
	then
		case "$MSLOCAL" in
		 true) sh $MSTSRCMAJOR/_db.mk;;
		 false) $EXEC " MSTSRCMAJOR=$MSRMTTSRCMAJOR
				export MSTSRCMAJOR
				cd $MSRMTTDBSMAJOR
				$MSRMTTSRCMAJOR/_db.mk "
	 		cd $MSTDBSMAJOR
			if test -f $MSTSRCMAJOR/_prgcom.mk
			then
				sh $MSTSRCMAJOR/_prgcom.mk
			fi
			;;
		esac
	elif test ! -f $MSTSRCMAJOR/_no_db
	then
		$EXEC " cd $MSRMTTDBSMAJOR
			rm -fr $DB
			$EMPRESSPATH/bin/empmkdb $DB
			$EMPRESSPATH/bin/empimpt $MSTSRCMAJOR/_db.ex $MSTDBSMAJOR/$DB"
		$EXEC " cd $MSRMTTDBSMAJOR
			$EMPRESSRMTPATH/rdbms/conf_bin/initshm $DB"

		if test -f $MSTSRCMAJOR/_db1.ex
		then
			$EXEC " cd $MSRMTTDBSMAJOR
				rm -fr $DB1
				$EMPRESSPATH/bin/empmkdb $DB1
				$EMPRESSPATH/bin/empimpt $MSTSRCMAJOR/_db1.ex $MSTDBSMAJOR/$DB1"
			$EXEC " cd $MSRMTTDBSMAJOR
				$EMPRESSRMTPATH/rdbms/conf_bin/initshm $DB1"
		fi
	fi
done
