93 lines
2.7 KiB
Bash
Executable File
93 lines
2.7 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
coverage=false
|
|
uninstalled=false
|
|
|
|
for arg; do
|
|
case $arg in
|
|
--installed)
|
|
uninstalled=false
|
|
;;
|
|
--uninstalled)
|
|
uninstalled=true
|
|
;;
|
|
--coverage)
|
|
coverage=true
|
|
;;
|
|
*)
|
|
echo "Unknown option $arg"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
relpath() {
|
|
from=`cd $1 && pwd`
|
|
to=`cd $2 && pwd`
|
|
$PYTHON -c 'import sys; import os; print os.path.relpath(sys.argv[2], sys.argv[1])' $from $to
|
|
}
|
|
|
|
if $uninstalled; then
|
|
if ! [ -e ./medit ]; then
|
|
echo "file ./medit doesn't exist"
|
|
exit 1
|
|
fi
|
|
medit_cmd_line="./medit --ut --ut-uninstalled"
|
|
else
|
|
if [ -z $bindir ]; then
|
|
medit=`which medit`
|
|
else
|
|
medit=$bindir/medit$EXEEXT
|
|
fi
|
|
if ! [ -e $medit ]; then
|
|
echo "file $medit doesn't exist"
|
|
exit 1
|
|
fi
|
|
if [ ./medit -nt $medit ]; then
|
|
echo "file ./medit is newer than '$medit', did you forget run make install?"
|
|
exit 1
|
|
fi
|
|
medit_cmd_line="$medit --ut"
|
|
fi
|
|
|
|
if $coverage; then
|
|
medit_cmd_line="$medit_cmd_line --ut-coverage called-functions"
|
|
fi
|
|
|
|
medit_cmd_line="$medit_cmd_line --ut-dir `relpath . $srcdir/medit-app/data`"
|
|
|
|
echo "$medit_cmd_line"
|
|
$medit_cmd_line || exit $?
|
|
|
|
if $coverage; then
|
|
sort called-functions > called-functions.tmp || exit 1
|
|
mv called-functions.tmp called-functions || exit 1
|
|
|
|
moo_xml=$top_srcdir/api/moo.xml
|
|
gtk_xml=$top_srcdir/api/gtk.xml
|
|
[ -f $moo_xml ] || { echo "file $moo_xml doesn't exist"; exit 1; }
|
|
[ -f $gtk_xml ] || { echo "file $gtk_xml doesn't exist"; exit 1; }
|
|
|
|
$PYTHON $print_functions $moo_xml $gtk_xml --output-lua=lua-functions.tmp --output-python=python-functions.tmp || exit 1
|
|
sort lua-functions.tmp > lua-functions.tmp2 && mv lua-functions.tmp2 lua-functions || exit 1
|
|
sort python-functions.tmp > python-functions.tmp2 && mv python-functions.tmp2 python-functions || exit 1
|
|
cat lua-functions python-functions | sort | uniq > all-functions
|
|
rm -f *-functions.tmp*
|
|
|
|
grep --extended-regexp 'lua\.' called-functions | sed --regexp-extended 's/(lua|python)\.//g' | sort | uniq > lua-called-functions
|
|
grep --extended-regexp 'python\.' called-functions | sed --regexp-extended 's/(lua|python)\.//g' | sort | uniq > python-called-functions
|
|
sed --regexp-extended 's/(lua|python)\.//g' called-functions | sort | uniq > all-called-functions
|
|
|
|
comm -3 -2 lua-functions lua-called-functions > not-covered-lua-functions
|
|
comm -3 -2 python-functions python-called-functions > not-covered-python-functions
|
|
comm -3 -2 all-functions all-called-functions > not-covered-functions
|
|
|
|
if [ -z "$IGNORE_COVERAGE" ] && [ -s not-covered-functions ]; then
|
|
echo "*** Not all functions are covered, see file not-covered-functions"
|
|
exit 1
|
|
else
|
|
rm -f *-functions *-called-functions called-functions not-covered-*-functions not-covered-functions
|
|
exit 0
|
|
fi
|
|
fi
|