79 lines
1.9 KiB
Bash
Executable File
79 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
##########################
|
|
# This script will generate and insert empty test in a check file by extracting public prototype in a .c file
|
|
# The generated empty check will replace check_empty in existing unit test. Pretty usefull script to lay the path
|
|
# to testing a .c file.
|
|
#
|
|
# BACKUP file first!!!! (This script may put a mess in destination file)
|
|
# go static first!!!!! (You should first try to make everything that can go static in file static first
|
|
#
|
|
# example invocation
|
|
# utils/generateEmptyCheck.sh common/object.c test/unit/common/check_object.c
|
|
#
|
|
FILENAME=$1
|
|
OUTPUT=$2
|
|
BASENAME=`basename $FILENAME`
|
|
TEMPNAME=`tempfile`
|
|
INTERNAL_METHODS=
|
|
methods=`cproto $FILENAME -I include/ -f 1 | sed -e 's/\([^ ]\{1,\} \)\{1,\}\**\([^ ]\{1,\}\)();/\2/' -e 's/\/\*.*\*\///'`
|
|
FULLPROTOS=`tempfile`
|
|
CHECK_CODE=`tempfile`
|
|
CHECK_CALL=`tempfile`
|
|
cproto $FILENAME -I include/ -f 3 > $FULLPROTOS
|
|
|
|
echo "/*" >> $CHECK_CODE
|
|
echo " * Things to check" >> $CHECK_CODE
|
|
for i in $methods
|
|
do
|
|
echo " * $i" >> $CHECK_CODE
|
|
done
|
|
echo " */" >> $CHECK_CODE
|
|
|
|
|
|
for i in $methods
|
|
do
|
|
PROTOTYPE=`grep -e "$i *(" $FULLPROTOS`
|
|
echo "/** This is the test to check the behaviour of the method" >> $CHECK_CODE
|
|
echo " * $PROTOTYPE" >> $CHECK_CODE
|
|
echo " */" >> $CHECK_CODE
|
|
echo "START_TEST (test_$i)" >> $CHECK_CODE
|
|
echo "{" >> $CHECK_CODE
|
|
echo " /*TESTME*/" >> $CHECK_CODE
|
|
echo "}" >> $CHECK_CODE
|
|
echo "END_TEST" >> $CHECK_CODE
|
|
echo >> $CHECK_CODE
|
|
echo >> $CHECK_CODE
|
|
|
|
|
|
echo " tcase_add_test(tc_core, test_$i);" >> $CHECK_CALL
|
|
done
|
|
|
|
sed -e "/^START_TEST (test_empty)$/ {
|
|
N
|
|
/\n{$/ {
|
|
N
|
|
/\n fail("'"'"test not yet developped"'"'");/ {
|
|
N
|
|
/\n{/ {
|
|
N
|
|
/END_TEST/ {
|
|
N
|
|
r $CHECK_CODE
|
|
d
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} " -e "/^ tcase_add_test(tc_core, test_empty);/ {
|
|
r $CHECK_CALL
|
|
d
|
|
}" < $OUTPUT > $TEMPNAME
|
|
cp $TEMPNAME $OUTPUT
|
|
#cat $CHECK_CODE
|
|
#cat $CHECK_CALL
|
|
rm -f $FULLPROTO
|
|
rm -f $TEMPNAME
|
|
rm -f CHECK_CODE
|
|
rm -f CHECK_CALL
|