before_script:
- test -w "${CCACHE_DIR}" && export PATH="/usr/lib/ccache:${PATH}"
- test -n "${OOT_BUILD_WORKSPACE}" && mkdir "${OOT_BUILD_WORKSPACE}" && cd "${OOT_BUILD_WORKSPACE}"
+ - pip3 install pytest requests || pip install pytest requests || true
script:
- *configure
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
before_script:
- *setup_interfaces
- *setup_softhsm
+ - pip3 install pytest requests || pip install pytest requests || true
script:
- ( cd bin/tests/system && make -j${TEST_PARALLEL_JOBS:-1} -k test V=1 )
- test -s bin/tests/system/systests.output
before_script:
- pip3 install pylint
- PYTHONPATH="$PYTHONPATH:$CI_PROJECT_DIR/bin/python"
+ - pip3 install pytest requests || pip install pytest requests
script:
- *configure
- pylint --rcfile $CI_PROJECT_DIR/.pylintrc $(git ls-files '*.py' | grep -v 'ans\.py')
export LOWPORT
export HIGHPORT
+restart=false
+
+start_servers_failed() {
+ echoinfo "I:$systest:starting servers failed"
+ echofail "R:$systest:FAIL"
+ echoend "E:$systest:$(date_with_args)"
+ exit 1
+}
+
+start_servers() {
+ echoinfo "I:$systest:starting servers"
+ if $restart; then
+ $PERL start.pl --restart --port "$PORT" "$systest" || start_fail
+ else
+ restart=true
+ $PERL start.pl --port "$PORT" "$systest" || start_fail
+ fi
+}
+
+stop_servers_failed() {
+ echoinfo "I:$systest:stopping servers failed"
+ echofail "R:$systest:FAIL"
+ echoend "E:$systest:$(date_with_args)"
+ exit 1
+}
+
+stop_servers() {
+ if $stopservers; then
+ echoinfo "I:$systest:stopping servers"
+ $PERL stop.pl "$systest" || stop_servers_failed
+ fi
+}
+
echostart "S:$systest:`date`"
echoinfo "T:$systest:1:A"
echoinfo "A:$systest:System test $systest"
( cd $systest && $SHELL setup.sh "$@" )
fi
-# Start name servers running
-$PERL start.pl --port $PORT $systest
-if [ $? -ne 0 ]; then
- echofail "R:$systest:FAIL"
- echoend "E:$systest:`date $dateargs`"
- exit 1
+status=0
+run=0
+# Run the tests
+if [ -r "$systest/tests.sh" ]; then
+ start_servers
+ ( cd "$systest" && $SHELL tests.sh "$@" )
+ status=$?
+ run=$((run+1))
+ stop_servers
+fi
+
+if [ -n "$PYTEST" ]; then
+ run=$((run+1))
+ for test in $(cd "${systest}" && find . -name "tests*.py"); do
+ start_servers
+ rm -f "$systest/$test.status"
+ test_status=0
+ (cd "$systest" && "$PYTEST" -v "$test" "$@" || echo "$?" > "$test.status") | SYSTESTDIR="$systest" cat_d
+ if [ -f "$systest/$test.status" ]; then
+ echo_i "FAILED"
+ test_status=$(cat "$systest/$test.status")
+ fi
+ status=$((status+test_status))
+ stop_servers
+ done
+else
+ echoinfo "I:$systest:pytest not installed, skipping python tests"
+fi
+
+if [ "$run" -eq "0" ]; then
+ echoinfo "I:$systest:No tests were found and run"
+ status=255
fi
-# Run the tests
-( cd $systest ; $SHELL tests.sh "$@" )
-status=$?
if $stopservers
then