Skip to content

Commit 3cd2210

Browse files
authored
Common test utility, test portability (#371)
* Test updates: portability, common utility, fix typo Signed-off-by: Henry Cox <[email protected]>
1 parent 0a33c54 commit 3cd2210

File tree

4 files changed

+33
-248
lines changed

4 files changed

+33
-248
lines changed

tests/common.mak

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ endif
4040
ifneq ($(COVER_DB),)
4141
export PERL_COVER_ARGS := -MDevel::Cover=-db,$(COVER_DB),-coverage,statement,branch,condition,subroutine,-silent,1
4242
EXEC_COVER := perl ${PERL_COVER_ARGS}
43-
PYCOVER = COVERAGE_FILE=$(PYCOV_DB) coverage run --branch --append
43+
export COVERAGE_COMMAND = $(shell which coverage 2>&1 > /dev/null ; if [ 0 -eq $$? ] ; then echo coverage ; else echo python3-coverage ; fi )
44+
PYCOVER = COVERAGE_FILE=$(PYCOV_DB) ${COVERAGE_COMMAND} run --branch --append
45+
#$(warning assigned PYCOVER='$(PYCOVER)')
4446
endif
4547

46-
4748
export TOPDIR TESTDIR
4849
export PARENTDIR := $(dir $(patsubst %/,%,$(TOPDIR)))
4950
export RELDIR := $(TESTDIR:$(PARENTDIR)%=%)

tests/gendiffcov/errs/msgtest.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,7 @@ if [ 0 != $? ] ; then
752752
exit 1
753753
fi
754754
fi
755+
755756
if [ -d mycache ] ; then
756757
find mycache -type f -exec chmod ugo+r {} \;
757758
fi

tests/gendiffcov/simple/script.sh

Lines changed: 2 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,12 @@
11
#!/bin/bash
22
set +x
33

4-
CLEAN_ONLY=0
5-
COVER=
6-
7-
PARALLEL='--parallel 0'
8-
PROFILE="--profile"
9-
LOCAL_COVERAGE=1
10-
KEEP_GOING=0
11-
12-
#echo "CMD: $0 $@"
13-
14-
while [ $# -gt 0 ] ; do
15-
16-
OPT=$1
17-
shift
18-
case $OPT in
19-
20-
--clean | clean )
21-
CLEAN_ONLY=1
22-
;;
23-
24-
-v | --verbose | verbose )
25-
set -x
26-
;;
27-
28-
--keep-going | -k )
29-
KEEP_GOING=1
30-
;;
31-
32-
--coverage )
33-
if [[ "$1"x != 'x' && $1 != "-"* ]] ; then
34-
COVER_DB=$1
35-
LOCAL_COVERAGE=0
36-
shift
37-
else
38-
COVER_DB='cover_db.dat'
39-
fi
40-
export PYCOV_DB="${COVER_DB}_py"
41-
COVER="perl -MDevel::Cover=-db,${COVER_DB},-coverage,statement,branch,condition,subroutine,-silent,1 "
42-
PYCOVER="COVERAGE_FILE=$PYCOV_DB coverage run --branch --append"
43-
;;
44-
45-
--home | -home )
46-
LCOV_HOME=$1
47-
shift
48-
if [ ! -f $LCOV_HOME/bin/lcov ] ; then
49-
echo "LCOV_HOME '$LCOV_HOME' does not exist"
50-
exit 1
51-
fi
52-
;;
53-
54-
--no-parallel )
55-
PARALLEL=''
56-
;;
57-
58-
--no-profile )
59-
PROFILE=''
60-
;;
61-
62-
--llvm )
63-
LLVM=1
64-
module load como/tools/llvm-gnu/11.0.0-1
65-
# seems to have been using same gcov version as gcc/4.8.3
66-
module load gcc/4.8.3
67-
#EXTRA_GCOV_OPTS="--gcov-tool '\"llvm-cov gcov\"'"
68-
CXX="clang++"
69-
;;
70-
71-
* )
72-
echo "Error: unexpected option '$OPT'"
73-
exit 1
74-
;;
75-
esac
76-
done
77-
78-
if [[ "x" == ${LCOV_HOME}x ]] ; then
79-
if [ -f ../../../bin/lcov ] ; then
80-
LCOV_HOME=../../..
81-
else
82-
LCOV_HOME=../../../../releng/coverage/lcov
83-
fi
84-
fi
85-
LCOV_HOME=`(cd ${LCOV_HOME} ; pwd)`
86-
87-
if [[ ! ( -d $LCOV_HOME/bin && -d $LCOV_HOME/lib && -x $LCOV_HOME/bin/genhtml && ( -f $LCOV_HOME/lib/lcovutil.pm || -f $LCOV_HOME/lib/lcov/lcovutil.pm ) ) ]] ; then
88-
echo "LCOV_HOME '$LCOV_HOME' seems not to be invalid"
89-
exit 1
90-
fi
91-
92-
export PATH=${LCOV_HOME}/bin:${LCOV_HOME}/share:${PATH}
93-
export MANPATH=${MANPATH}:${LCOV_HOME}/man
94-
95-
ROOT=`pwd`
96-
PARENT=`(cd .. ; pwd)`
97-
if [ -f $LCOV_HOME/scripts/getp4version ] ; then
98-
SCRIPT_DIR=$LCOV_HOME/scripts
99-
else
100-
# running test from lcov install
101-
SCRIPT_DIR=$LCOV_HOME/share/lcov/support-scripts
102-
MD5_OPT='--version-script --md5'
103-
fi
104-
if [ 'x' == "x$GENHTML_TOOL" ] ; then
105-
GENHTML_TOOL=${LCOV_HOME}/bin/genhtml
106-
LCOV_TOOL=${LCOV_HOME}/bin/lcov
107-
GENINFO_TOOL=${LCOV_HOME}/bin/geninfo
108-
SPREADSHEET_TOOL=${SCRIPT_DIR}/spreadsheet.py
109-
fi
110-
111-
# is this git or P4?
112-
git -C . rev-parse > /dev/null 2>&1
113-
if [ 0 == $? ] ; then
114-
# this is git
115-
GET_VERSION=${SCRIPT_DIR}/gitversion.pm
116-
GET_VERSION_EXE=${SCRIPT_DIR}/gitversion
117-
ANNOTATE=${SCRIPT_DIR}/gitblame.pm
118-
else
119-
GET_VERSION=${SCRIPT_DIR}/getp4version
120-
GET_VERSION_EXE=${SCRIPT_DIR}/getp4version
121-
ANNOTATE=${SCRIPT_DIR}/p4annotate.pm
122-
fi
123-
CRITERIA=${SCRIPT_DIR}/criteria
124-
SELECT=${SCRIPT_DIR}/select.pm
125-
126-
#PARALLEL=''
127-
#PROFILE="''
128-
4+
source ../../common.tst
1295

1306
rm -f test.cpp *.gcno *.gcda a.out *.info *.info.gz diff.txt diff_r.txt diff_broken.txt *.log *.err *.json dumper* results.xlsx annotate.{cpp,exe} c d ./cover_db_py names.data linked.cpp linked_diff.txt *.msg
1317
rm -rf ./baseline ./current ./differential* ./reverse ./diff_no_baseline ./no_baseline ./no_annotation ./no_owners differential_nobranch reverse_nobranch baseline-filter* noncode_differential* broken mismatchPath elidePath ./cover_db ./criteria* ./mismatched ./navigation differential_prop proportion ./annotate ./current-* ./current_prefix* select select2 html_report ./usage ./errOut ./noNames no_source linked linked_err linked_elide linked_dir failUnder expect_err expect recategorize
1328

133-
if [ "x$COVER" != 'x' ] && [ 0 != $LOCAL_COVERAGE ] ; then
134-
cover -delete -db $COVER_DB
135-
rm -rf $PYCOV_DB
136-
fi
9+
clean_cover
13710

13811
if [[ 1 == $CLEAN_ONLY ]] ; then
13912
exit 0

tests/py2lcov/py2lcov.sh

Lines changed: 27 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,30 @@
11
#!/bin/bash
22
set +x
33

4-
CLEAN_ONLY=0
5-
COVER=
6-
7-
PARALLEL='--parallel 0'
8-
PROFILE="--profile"
9-
if [ 'x' == "x${COVER_DB}" ] ; then
10-
COVER_DB='cover_db'
11-
fi
12-
if [ 'x' == "x${PYCOV_DB}" ] ; then
13-
PYCOV_DB='pycov.dat'
14-
fi
15-
LOCAL_COVERAGE=1
16-
KEEP_GOING=0
17-
while [ $# -gt 0 ] ; do
18-
19-
OPT=$1
20-
shift
21-
case $OPT in
22-
23-
--clean | clean )
24-
CLEAN_ONLY=1
25-
;;
26-
27-
-v | --verbose | verbose )
28-
set -x
29-
;;
30-
31-
-k | --keep-going )
32-
KEEP_GOING=1
33-
;;
34-
35-
--coverage )
36-
#COVER="perl -MDevel::Cover "
37-
if [[ "$1"x != 'x' && $1 != "-"* ]] ; then
38-
COVER_DB=$1
39-
LOCAL_COVERAGE=0
40-
shift
41-
fi
42-
COVER="perl -MDevel::Cover=-db,${COVER_DB},-coverage,statement,branch,condition,subroutine,-silent,1 "
43-
PYCOV="COVERAGE_FILE=${PYCOV_DB} coverage run --branch --append"
44-
#PYCOV="coverage run --data-file=${PYCOV_DB} --branch --append"
45-
;;
46-
47-
--home | -home )
48-
LCOV_HOME=$1
49-
shift
50-
if [ ! -f $LCOV_HOME/bin/lcov ] ; then
51-
echo "LCOV_HOME '$LCOV_HOME' does not exist"
52-
exit 1
53-
fi
54-
;;
55-
56-
--no-parallel )
57-
PARALLEL=''
58-
;;
59-
60-
--no-profile )
61-
PROFILE=''
62-
;;
63-
64-
* )
65-
echo "Error: unexpected option '$OPT'"
66-
exit 1
67-
;;
68-
esac
69-
done
70-
71-
if [ "x" == "x$LCOV_HOME" ] ; then
72-
if [ -f ../../bin/lcov ] ; then
73-
LCOV_HOME=../..
74-
else
75-
LCOV_HOME=../../../releng/coverage/lcov
76-
fi
4+
if [[ "x" == ${LCOV_HOME}x ]] ; then
5+
if [ -f ../../bin/lcov ] ; then
6+
LCOV_HOME=../..
7+
fi
778
fi
789

79-
LCOV_HOME=`(cd ${LCOV_HOME} ; pwd)`
10+
source ../common.tst
8011

81-
if [ 'x' == "x$PY2LCOV_TOOL" ] ; then
82-
GENHTML_TOOL=${LCOV_HOME}/bin/genhtml
83-
LCOV_TOOL=${LCOV_HOME}/bin/lcov
84-
PERLLCOV_TOOL=${LCOV_HOME}/bin/perl2lcov
85-
PY2LCOV_TOOL=${LCOV_HOME}/bin/py2lcov
12+
rm -rf *.xml* *.dat *.info *.json __pycache__ help.txt *.pyc my_cache rpt1 rpt2
13+
14+
clean_cover
15+
16+
if [[ 1 == $CLEAN_ONLY ]] ; then
17+
exit 0
8618
fi
19+
8720
PY2LCOV_SCRIPT=${LCOV_HOME}/bin/py2lcov
8821

89-
if [ -f $LCOV_HOME/scripts/getp4version ] ; then
90-
SCRIPT_DIR=$LCOV_HOME/scripts
91-
else
22+
if [ ! -f $LCOV_HOME/scripts/getp4version ] ; then
9223
# running test from lcov install
93-
SCRIPT_DIR=$LCOV_HOME/share/lcov/support-scripts
9424
MD5_OPT=',--md5'
9525
fi
9626
# is this git or P4?
97-
git -C . rev-parse > /dev/null 2>&1
98-
if [ 0 == $? ] ; then
27+
if [ 1 == "$USE_GIT" ] ; then
9928
# this is git
10029
VERSION="--version-script ${SCRIPT_DIR}/gitversion${MD5_OPT}"
10130
ANNOTATE="--annotate-script ${SCRIPT_DIR}/gitblame.pm,--cache,my_cache"
@@ -105,46 +34,27 @@ else
10534
DEPOT=",."
10635
fi
10736

37+
if [ $IS_GIT == 0 ] && [ $IS_P4 == 0 ] ; then
38+
VERSION=
39+
ANNOTATE="$ANNOTATE --ignore annotate"
40+
fi
10841

10942
if [ ! -x $PY2LCOV_SCRIPT ] ; then
11043
echo "missing py2lcov script - dying"
11144
exit 1
11245
fi
11346

114-
if [[ ! ( -d $LCOV_HOME/bin && -d $LCOV_HOME/lib && -x $LCOV_HOME/bin/genhtml && -f $LCOV_HOME/lib/lcovutil.pm ) ]] ; then
115-
echo "LCOV_HOME '$LCOV_HOME' seems not to be invalid"
116-
exit 1
117-
fi
118-
119-
export PATH=${LCOV_HOME}/bin:${LCOV_HOME}/share:${PATH}
120-
export MANPATH=${MANPATH}:${LCOV_HOME}/man
121-
122-
if [ 'x' == "x$GENHTML_TOOL" ] ; then
123-
GENHTML_TOOL=${LCOV_HOME}/bin/genhtml
124-
LCOV_TOOL=${LCOV_HOME}/bin/lcov
125-
GENINFO_TOOL=${LCOV_HOME}/bin/geninfo
126-
fi
127-
128-
ROOT=`pwd`
129-
PARENT=`(cd .. ; pwd)`
130-
13147
LCOV_OPTS="--branch-coverage $PARALLEL $PROFILE"
13248

133-
rm -rf *.xml* *.dat *.info *.json __pycache__ help.txt *.pyc my_cache rpt1 rpt2
134-
135-
if [ "x$COVER" != 'x' ] && [ 0 != $LOCAL_COVERAGE ] ; then
136-
cover -delete
137-
rm -rf pycov
138-
fi
139-
140-
if [[ 1 == $CLEAN_ONLY ]] ; then
141-
exit 0
142-
fi
14349

144-
CMD='coverage'
145-
which $CMD
146-
if [ 0 != $? ] ; then
147-
CMD='python3-coverage' # ubuntu?
50+
if [ '' != "${COVERAGE_COMMAND}" ] ; then
51+
CMD=${COVERAGE_COMMAND}
52+
else
53+
CMD='coverage'
54+
which $CMD
55+
if [ 0 != $? ] ; then
56+
CMD='python3-coverage' # ubuntu?
57+
fi
14858
fi
14959
which $CMD
15060
if [ 0 != $? ] ; then
@@ -161,7 +71,7 @@ if [ 0 != $? ] ; then
16171
exit 1
16272
fi
16373
fi
164-
eval ${PYCOV} ${PY2LCOV_TOOL} -o functions.info --cmd $CMD functions.dat $VERSION
74+
eval COVERAGE_COMMAND=$CMD ${PYCOV} ${PY2LCOV_TOOL} -o functions.info --cmd $CMD functions.dat $VERSION
16575
if [ 0 != $? ] ; then
16676
echo "py2lcov failed function example"
16777
if [ 0 == $KEEP_GOING ] ; then

0 commit comments

Comments
 (0)