Gitlab CI - Fix tests (take 2)
authorJohn Hodge <[email protected]>
Sun, 19 Sep 2021 06:57:16 +0000 (14:57 +0800)
committerJohn Hodge <[email protected]>
Sun, 19 Sep 2021 06:57:16 +0000 (14:57 +0800)
.gitlab-ci.yml
tests/TEST_basic.sh
tests/_common.sh

index bbfd057..c16ff8e 100644 (file)
@@ -9,7 +9,7 @@ build:
   # instead of calling g++ directly you can also use some build toolkit like make
   # install the necessary build tools when needed
   before_script:
-    - apt update && apt -y install libncurses-dev libmodbus-dev libsqlite3-dev libident-dev netcat
+    - apt update && apt -y install libncurses-dev libmodbus-dev libsqlite3-dev libident-dev
   script:
     - make -C src/
   artifacts:
@@ -25,5 +25,7 @@ build:
 # run tests using the binary built before
 test:
   stage: test
+  before_script:
+    - apt update && apt -y install libncurses libmodbus libsqlite3 libident netcat
   script:
     - cd tests && ./TEST_basic.sh
index dccdc6d..481e119 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-set -eux
+set -eu
 TESTNAME=basic
 
 . _common.sh
index cb31ac7..fa2f107 100644 (file)
@@ -1,6 +1,7 @@
 #
 # NOTE: Not a script, to be included by scripts
 #
+USER=$(id -un)
 BASEDIR=rundir/${TESTNAME}/
 PORT=22222
 
@@ -34,6 +35,7 @@ FAIL() {
 }
 TRY_COMMAND() {
        cmd="$*"
+       echo ">> $cmd"
        if ! $cmd ; then
                FAIL "Command \`$cmd\` failed"
        fi
@@ -45,8 +47,12 @@ LD_LIBRARY_PATH=.. ../dispsrv -f ${BASEDIR}cfg_server.conf --dont-daemonise > ${
 server_pid=$!
 
 cleanup() {
-       LOG "Killing ${server_pid}"
-       kill ${server_pid}; true
+       if pidof dispsrv | grep ${server_pid}; then
+               LOG "Killing ${server_pid}"
+               kill ${server_pid}; true
+       else
+               LOG "Server already terminated"
+       fi
 }
 trap cleanup EXIT
 
@@ -57,4 +63,5 @@ if ! (echo "" | nc localhost ${PORT}); then
        LOG "Server not responding on ${PORT}"
        LOG "Server log contents:"
        cat ${BASEDIR}server.log
+       exit 1
 fi

UCC git Repository :: git.ucc.asn.au