diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/ci/scripts/runtest.sh | 112 |
1 files changed, 74 insertions, 38 deletions
diff --git a/tools/ci/scripts/runtest.sh b/tools/ci/scripts/runtest.sh index 80b54a0ff..95e3758e8 100755 --- a/tools/ci/scripts/runtest.sh +++ b/tools/ci/scripts/runtest.sh @@ -1,46 +1,82 @@ #!/bin/bash -./src/manaplus --renderer=0 >logs/run.log 2>&1 & -export PID=$! -sleep 12s +function check_is_run { + kill -0 ${PID} + if [ "$?" != 0 ]; then + echo "Error: process look like crashed" + cat logs/run.log + echo "Run with gdb" + cp ./src/manaplus ./logs/ + cp -r core* ./logs/ + COREFILE=$(find . -maxdepth 1 -name "core*" | head -n 1) + if [[ -f "$COREFILE" ]]; then + gdb -c "$COREFILE" ./src/manaplus -ex "thread apply all bt" -ex "set pagination 0" -batch + fi + exit 1 + fi +} -kill -0 ${PID} -if [ "$?" != 0 ]; then - echo "Error: process look like crashed" - cat logs/run.log - echo "Run with gdb" - cp ./src/manaplus ./logs/ - cp -r core* ./logs/ - COREFILE=$(find . -maxdepth 1 -name "core*" | head -n 1) - if [[ -f "$COREFILE" ]]; then - gdb -c "$COREFILE" ./src/manaplus -ex "thread apply all bt" -ex "set pagination 0" -batch +function run { + ./src/manaplus --enable-ipc --renderer=0 >logs/run.log 2>&1 & + export PID=$! + sleep 12s +} + +function kill_app { + kill -s SIGTERM ${PID} + export RET=$? + + sleep 10s + + if [ "${RET}" != 0 ]; then + echo "Error: process not responsing to termination signal" + kill -s SIGKILL ${PID} + cat logs/run.log + exit 1 fi - exit 1 -fi -kill -s SIGTERM ${PID} -export RET=$? +} -sleep 10s +function final_log { + export DATA=$(cat logs/run.log) + if [[ -z "${DATA}" ]]; then + echo "Error: no output" + exit 1 + fi -if [ "${RET}" != 0 ]; then - echo "Error: process not responsing to termination signal" - kill -s SIGKILL ${PID} cat logs/run.log - exit 1 -fi - -export DATA=$(cat logs/run.log) -if [[ -z "${DATA}" ]]; then - echo "Error: no output" - exit 1 -fi - -cat logs/run.log - -export DATA=$(grep "[.]cpp" logs/run.log) -if [[ -n "${DATA}" ]]; then - echo "Error: possible leak detected" - echo "${DATA}" - exit 1 -fi + + export DATA=$(grep "[.]cpp" logs/run.log) + if [[ -n "${DATA}" ]]; then + echo "Error: possible leak detected" + echo "${DATA}" + exit 1 + fi +} + +function send_command { + echo -n "$1" | nc 127.0.0.1 44007 +} + +run +check_is_run + +send_command "/screenshot 1_" +sleep 5s +check_is_run + +# send down key +send_command "/guikey -960 keyGUIDown" +sleep 5s +check_is_run + +send_command "/screenshot 2_" +sleep 5s +check_is_run + +# final delay +sleep 5s + +kill_app +final_log + exit 0 |