summaryrefslogtreecommitdiff
path: root/tools/ci/scripts/runtest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/ci/scripts/runtest.sh')
-rwxr-xr-xtools/ci/scripts/runtest.sh112
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