manticore/scripts/travis_test.sh
Mark Mossberg 05f5fcf045 Port to real python package structure (#6)
* Initial moving

* Initial package __init__.py

* Use relative imports

* Correct imports for tests

* Rename main.py -> __main__.py

* Use relative imports in main

* Refactor cli to be used with setuptools

* Add basic setup.py

* Fix test_memory import

* Fix test_cpu_manual imports

* Correct iterpickle import

* Use manticore console_script installed by setuptools

* Make travis install our package for integration cli tests

* Refactor model hooks dynamic import for being in pkg

* Correct import

* Rm empty line

* Fix coverage test paths
2017-02-15 12:32:08 -05:00

42 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
coverage erase
coverage run -m unittest discover test/ 2>&1 >/dev/null | tee travis_tests.log
DID_OK=$(tail -n1 travis_tests.log)
RV=1
if [[ "${DID_OK}" == OK* ]]
then
echo "All functionality tests passed :)"
RV=0
else
echo "Some functionality tests failed :("
fi
measure_cov() {
local PYFILE=${1}
echo "Measuring coverage for ${PYFILE}"
local HAS_COV=$(coverage report --include ${PYFILE} | tail -n1 | grep -o 'No data to report')
if [ "${HAS_COV}" = "No data to report" ]
then
echo " FAIL: No coverage for ${PYFILE}"
RV=1
return
fi
local COV_AMT=$(coverage report --include=${PYFILE} | tail -n1 | sed "s/.* \([0-9]*\)%/\1/g")
if [ "${COV_AMT}" -gt "${2}" ]
then
echo " PASS: coverage for ${PYFILE} at ${COV_AMT}%"
else
echo " FAIL: coverage for ${PYFILE} at ${COV_AMT}%"
RV=1
fi
}
#coverage report
echo "Measuring code coverage..."
measure_cov "manticore/core/smtlib/*" 80
measure_cov "manticore/core/cpu/x86.py" 50
measure_cov "manticore/core/memory.py" 85
exit ${RV}