2018-11-13 12:50:53 +01:00
|
|
|
#!/bin/bash
|
2018-11-19 15:40:27 +01:00
|
|
|
# Run a python test inside QGIS
|
|
|
|
# Note: the test module and function are specified in dotted notation
|
|
|
|
# for example, to run the test function run_all (which is the default anyway)
|
|
|
|
# $ qgis_testrunner.sh tests_folder.test_module.run_all
|
|
|
|
# tests_folder must be in PYTHONPATH (plugins main folders are automatically added to path)
|
|
|
|
|
2018-11-13 12:50:53 +01:00
|
|
|
### Turn on debug mode ###
|
|
|
|
#set -x
|
|
|
|
|
|
|
|
TEST_NAME=$1
|
|
|
|
|
2019-03-06 17:01:36 +01:00
|
|
|
echo "Running test really $1 ..."
|
|
|
|
OUTPUT=$(QGIS_TEST_MODULE=${TEST_NAME} unbuffer qgis --version-migration --nologo --code /usr/bin/qgis_testrunner.py "$TEST_NAME" 2>/dev/null | tee /dev/tty )
|
2018-11-13 12:50:53 +01:00
|
|
|
EXIT_CODE="$?"
|
|
|
|
if [ -z "$OUTPUT" ]; then
|
|
|
|
echo "ERROR: no output from the test runner! (exit code: ${EXIT_CODE})"
|
|
|
|
exit 1
|
|
|
|
fi
|
2018-11-19 15:40:27 +01:00
|
|
|
echo "$OUTPUT" | grep -q 'FAILED'
|
2018-11-13 12:50:53 +01:00
|
|
|
IS_FAILED="$?"
|
2018-11-19 15:40:27 +01:00
|
|
|
echo "$OUTPUT" | grep -q 'OK' && echo "$OUTPUT" | grep -q 'Ran'
|
2018-11-13 12:50:53 +01:00
|
|
|
IS_PASSED="$?"
|
2018-11-13 14:54:39 +01:00
|
|
|
echo "$OUTPUT" | grep "QGIS died on signal"
|
2018-11-13 12:50:53 +01:00
|
|
|
IS_DEAD="$?"
|
2018-11-19 15:40:27 +01:00
|
|
|
echo "Finished running test $1 (codes: IS_DEAD=$IS_DEAD IS_FAILED=$IS_FAILED IS_PASSED=$IS_PASSED)."
|
2018-11-13 12:50:53 +01:00
|
|
|
if [ "$IS_PASSED" -eq "0" ] && [ "$IS_FAILED" -eq "1" ] && [ "$IS_DEAD" -eq "1" ]; then
|
|
|
|
exit 0;
|
|
|
|
fi
|
|
|
|
exit 1
|