#! /bin/sh # # Usage: s_c_test_create test_name # # Create a new test case in the C test suite. # This will create the infrastructure for a new C test case. The given # test name is a new directory in the C suite directory and the Makefile # components and C program template are created. # # Any 'make check' variations of this test should be added to the smoke.sh # script in the main C suite directory. # tmp=__a trap 'rm -f $tmp; exit 0' 0 1 2 3 13 15 if [ "x$1" = "x" ]; then echo "Usage: $0 test_name" exit 1 fi CSUITE_DIRECTORY=../test/csuite MAKEFILE_NAME=$CSUITE_DIRECTORY/Makefile.am TEST_NAME=$1 exists=`grep $TEST_NAME $MAKEFILE_NAME` if [ "x$exists" != "x" ]; then echo "Test with requested name already exists. Try another name." exit 1 fi # Create a subdirectory and stub for the new test mkdir $CSUITE_DIRECTORY/$TEST_NAME (cat <home); /* * Insert test implementation here. */ testutil_cleanup(opts); return (0); } EOF ) > $CSUITE_DIRECTORY/$TEST_NAME/main.c # Now update the C test suite makefile to include the new test case NEW_MAKE_SECT="test_${TEST_NAME}_SOURCES = ${TEST_NAME}\/main.c\\nnoinst_PROGRAMS = test_${TEST_NAME}\\n\\n" cat $CSUITE_DIRECTORY/Makefile.am | awk \ "/^# Script add new line here/ && !modif { printf(\"$NEW_MAKE_SECT\"); modif=1 } {print}" > $tmp mv $tmp $CSUITE_DIRECTORY/Makefile.am exit 0