summaryrefslogtreecommitdiff
path: root/ce/test/cov/cov_one_run.sh
blob: ecb2530e4ec13f5c258387e0cb4de37649c7bc9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh

py=
maximus_path=
clean=
run=
cross=target

echo "$0 $@"
while getopts t:s:m:o:cep:x:h: opt
do
	case "$opt" in
		t)  TEST_PATH="$OPTARG";;
		s)  SUBTEST_PATH="$OPTARG";;
		m)  MAKEFILE_NAME="$OPTARG";;
		o)  OBJ_PATH="$OPTARG";;
		c)	clean=1;;
		p)  py="$OPTARG";;
		x)  maximus_path="$OPTARG";;
		e)  run=1;;
		h)  cross="$OPTARG";;
		[?])	print >&2 "Usage: $0 -t test_path -s subtest_path -m makefile -o objpath [-c(clean)] [-e(exec)] [-p] python_file [-x] maximus_path [-h] host/target"
				exit 1;;
	esac
done

SUBTEST_PATH=$TEST_PATH/$SUBTEST_PATH
OBJ_PATH=$SUBTEST_PATH/$OBJ_PATH

if [ "$clean" != "" ]
then
	echo "Make Clean @ $SUBTEST_PATH..."
	rm -rf $SUBTEST_PATH/obj
	rm -f  $SUBTEST_PATH/*.da; rm -f $SUBTEST_PATH/*.bb*;rm -f $SUBTEST_PATH/*.log
fi

if [ "$run" != "" ]
then
	echo "Compiling $MAKEFILE_NAME in $SUBTEST_PATH ..."
	make COV=Y -C $SUBTEST_PATH --file=$MAKEFILE_NAME --no-print-directory > $SUBTEST_PATH/$MAKEFILE_NAME.log
	#for i in `ls $OBJ_PATH | grep "\.elf$"`
	for i in `ls -l $OBJ_PATH | grep "^-rwxr-xr-x" | cut -d " " -f8`
	do
		if [ "$py" != "" ]
		then
			echo "Running python $SUBTEST_PATH/$py -e $OBJ_PATH/$i -d false -l 1"
			python $SUBTEST_PATH/$py -e $OBJ_PATH/$i -d false -l 1 --maximus_path $maximus_path
		else
			echo "Running " $OBJ_PATH/$i;
			./$OBJ_PATH/$i
		fi
		echo "Make coverage report ..." 
		if [ "$cross" = "target" ]
		then
			sleep 1
   			lcov -q -d $SUBTEST_PATH -b $SUBTEST_PATH -c -o $OBJ_PATH/$i.info -g /usr/local/toolchains/gnutools/i386-elf/bin/i386-elf-gcov
		else
			lcov -q -d $OBJ_PATH -b $SUBTEST_PATH -c -o $OBJ_PATH/$i.info
		fi
		echo "Copying files .info"
		cp $OBJ_PATH/$i.info $TEST_PATH/cov/result
	done
fi