xref: /netbsd-src/tests/lib/libcurses/debug_test (revision 70e067419b7a70c3b03592d863b7729c0fed0561)
1d70ea1b1Sblymn#!/bin/sh
2d70ea1b1Sblymn#
3d70ea1b1Sblymn#
4d70ea1b1SblymnBASEDIR="/usr/tests/lib/libcurses"
5d70ea1b1SblymnCHECK_PATH="${BASEDIR}/check_files/"
6d70ea1b1Sblymnexport CHECK_PATH
7d70ea1b1SblymnINCLUDE_PATH="${BASEDIR}/tests/"
8d70ea1b1Sblymnexport INCLUDE_PATH
9d70ea1b1Sblymn#
103e0ce67bSblymnCURSES_TRACE_FILE="/tmp/ctrace"
11b1b304b3SblymnSLAVE="${BASEDIR}/slave"
12e00f184cSblymn#
13e00f184cSblymn# Force localisation to UTF-8 to be consistent with atf runs
14e00f184cSblymn#
15e00f184cSblymnexport LC_ALL=en_US.UTF-8
163e0ce67bSblymn
173e0ce67bSblymnusage() {
183e0ce67bSblymn	echo "Set up the environment to run the test frame.  Option flags:"
193e0ce67bSblymn	echo
203e0ce67bSblymn	echo "    -c : Set up curses tracing, assumes the curses lib has been built with"
213e0ce67bSblymn	echo "         debug enabled.  Default trace mask traces input, can be overridden"
223e0ce67bSblymn	echo "         by setting the trace mask in the environment before calling the"
233e0ce67bSblymn	echo "         The trace file output goes to /tmp/ctrace"
243e0ce67bSblymn	echo "         script."
25ce321bb0Sblymn	echo "    -F : Specify the file name for curses tracing the default is"
263e0ce67bSblymn	echo "         ${CURSES_TRACE_FILE}"
2784da1bf1Sblymn	echo "	  -L : Add the argument as a prefix to LD_LIBRARY_PATH to"
2884da1bf1Sblymn	echo "	       use an alternate libcurses version"
29*70e06741Sblymn	echo "    -n : Add the nofail option to the director invocation"
30*70e06741Sblymn	echo "       : so the director won't exit on check_file mismatch"
313e0ce67bSblymn	echo "    -s : Specify the slave command.  Defaults to \"../slave/slave\""
323e0ce67bSblymn	echo "    -v : Enable verbose output"
33ce321bb0Sblymn	echo "    -g : Enable check file generation if the file does not exists"
34ce321bb0Sblymn	echo "    -f : Forces check file generation if -g flag is set"
35*70e06741Sblymn	echo "    -t : Specify the TERM to use for the tests"
363e0ce67bSblymn	echo
373e0ce67bSblymn}
383e0ce67bSblymn
39ce321bb0Sblymn# This is needed for getwin/putwin test case and /tmp can be used for any file
40ce321bb0Sblymn# related tests.
41b1b304b3Sblymn#rm -rf /tmp/*
42ce321bb0Sblymn
43d70ea1b1Sblymn#
44b1b304b3Sblymn#ARGS="-T ${BASEDIR} -I ${INCLUDE_PATH} -C ${CHECK_PATH}"
45b1b304b3SblymnARGS="-T ${BASEDIR} -C ${CHECK_PATH}"
46d70ea1b1Sblymn#
47*70e06741Sblymnwhile getopts cf:F:L:ns:t:vg opt
48d70ea1b1Sblymndo
493e0ce67bSblymn    case "${opt}" in
503e0ce67bSblymn	c)
51d70ea1b1Sblymn	    if [ "X$CURSES_TRACE_MASK" = "X" ]; then
52d70ea1b1Sblymn		CURSES_TRACE_MASK=0x00000082
53d70ea1b1Sblymn	    fi
54d70ea1b1Sblymn	    export CURSES_TRACE_FILE
55d70ea1b1Sblymn	    export CURSES_TRACE_MASK
56d70ea1b1Sblymn	    ;;
57d70ea1b1Sblymn
58ce321bb0Sblymn	F)
593e0ce67bSblymn	    CURSES_TRACE_FILE=${OPTARG}
60d70ea1b1Sblymn	    ;;
61d70ea1b1Sblymn
6284da1bf1Sblymn	L)
6384da1bf1Sblymn	    LD_LIBRARY_PATH=${OPTARG}:${LD_LIBRARY_PATH}
6484da1bf1Sblymn	    ;;
6584da1bf1Sblymn
66*70e06741Sblymn	n)
67*70e06741Sblymn	    ARGS="-n ${ARGS} "
68*70e06741Sblymn	    ;;
69*70e06741Sblymn
703e0ce67bSblymn	s)
713e0ce67bSblymn	    SLAVE=${OPTARG}
723e0ce67bSblymn	    ;;
733e0ce67bSblymn
74*70e06741Sblymn	t)
75*70e06741Sblymn	    ARGS="-t ${OPTARG} ${ARGS}"
76*70e06741Sblymn	    ;;
77*70e06741Sblymn
783e0ce67bSblymn	v)
79ce321bb0Sblymn	    ARGS="-v ${ARGS}"
80ce321bb0Sblymn	    ;;
81ce321bb0Sblymn
82ce321bb0Sblymn	g)
83ce321bb0Sblymn	    ARGS="-g ${ARGS}"
84ce321bb0Sblymn		;;
85ce321bb0Sblymn
86ce321bb0Sblymn	f)
87ce321bb0Sblymn	ARGS="-f ${ARGS}"
88d70ea1b1Sblymn	;;
89d70ea1b1Sblymn
903e0ce67bSblymn	\?)
913e0ce67bSblymn	    usage
923e0ce67bSblymn	    exit 1
93d70ea1b1Sblymn	    ;;
94d70ea1b1Sblymn    esac
95d70ea1b1Sblymndone
96d70ea1b1Sblymn#
973e0ce67bSblymnshift $((OPTIND - 1))
983e0ce67bSblymn#
993e0ce67bSblymnif [ -z "${1}" ]
1003e0ce67bSblymnthen
1013e0ce67bSblymn	echo
1023e0ce67bSblymn	echo "A test name needs to be specified."
1033e0ce67bSblymn	echo
1043e0ce67bSblymn	usage
1053e0ce67bSblymn	echo
1063e0ce67bSblymn	exit 1
1073e0ce67bSblymnfi
1083e0ce67bSblymn#
109b1b304b3Sblymnexec ${BASEDIR}/director ${ARGS} -s ${SLAVE} "${INCLUDE_PATH}/$1"
110