Merge "Add ACM regression test suite"
[policy/docker.git] / csit / run-project-csit.sh
index 6f7a847..32f80b6 100755 (executable)
@@ -1,8 +1,9 @@
-#!/bin/bash -x
+#!/bin/bash
 #
 # Copyright 2016-2017 Huawei Technologies Co., Ltd.
 # Modification Copyright 2019 © Samsung Electronics Co., Ltd.
 # Modification Copyright 2021 © AT&T Intellectual Property.
+# Modification Copyright 2021-2023 Nordix Foundation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 function on_exit(){
     rc=$?
     if [[ ${WORKSPACE} ]]; then
-        if [[ ${WORKDIR} ]]; then
-            rsync -av "${WORKDIR}/" "${WORKSPACE}/csit/archives/${PROJECT}"
-        fi
         # Record list of active docker containers
-        docker ps --format "{{.Image}}" > "${WORKSPACE}/csit/archives/${PROJECT}/_docker-images.log"
+        docker ps --format "table {{ .Names }}\t{{ .Status }}"
 
         # show memory consumption after all docker instances initialized
-        docker_stats | tee "${WORKSPACE}/csit/archives/${PROJECT}/_sysinfo-2-after-robot.txt"
-    fi
-    # Run teardown script plan if it exists
-    cd "${TESTPLANDIR}/plans/"
-    TEARDOWN="${TESTPLANDIR}/plans/teardown.sh"
-    if [ -f "${TEARDOWN}" ]; then
-        echo "Running teardown script ${TEARDOWN}"
-        source_safely "${TEARDOWN}"
+        docker_stats
+
+        source_safely ${WORKSPACE}/compose/stop-compose.sh
+
+        if [[ ${WORKDIR} ]]; then
+            rsync -av "${WORKDIR}/" "${WORKSPACE}/csit/archives/${PROJECT}"
+        fi
+        rm -rf ${WORKSPACE}/models
     fi
     # TODO: do something with the output
      exit $rc
@@ -50,21 +48,23 @@ function on_exit(){
 trap on_exit EXIT
 
 function docker_stats(){
-    #General memory details
-    echo "> top -bn1 | head -3"
-    top -bn1 | head -3
-    echo
-
-    echo "> free -h"
-    free -h
-    echo
+    # General memory details
+    if [ "$(uname -s)" == "Darwin" ]
+    then
+        sh -c "top -l1 | head -10"
+        echo
+    else
+        sh -c "top -bn1 | head -3"
+        echo
+
+        sh -c "free -h"
+        echo
+    fi
 
-    #Memory details per Docker
-    echo "> docker ps"
-    docker ps
+    # Memory details per Docker
+    docker ps --format "table {{ .Names }}\t{{ .Status }}"
     echo
 
-    echo "> docker stats --no-stream"
     docker stats --no-stream
     echo
 }
@@ -133,47 +133,39 @@ then
 fi
 
 if [ -z "${WORKSPACE}" ]; then
-    export WORKSPACE=$(git rev-parse --show-toplevel)
+    WORKSPACE=$(git rev-parse --show-toplevel)
+    export WORKSPACE
 fi
 
 # Add csit scripts to PATH
 export PATH="${PATH}:${WORKSPACE}/csit:${WORKSPACE}/scripts:${ROBOT_VENV}/bin"
-export SCRIPTS="${WORKSPACE}/csit"
+export SCRIPTS="${WORKSPACE}/csit/resources/scripts"
 export ROBOT_VARIABLES=
 
-# get the plan from git clone
-source ${SCRIPTS}/get-branch-mariadb.sh
-
 export PROJECT="${1}"
 
-cd ${WORKSPACE}
-
-export TESTPLANDIR="${WORKSPACE}/csit/${PROJECT}"
-export TESTOPTIONS="${2}"
+cd "${WORKSPACE}"
 
 rm -rf "${WORKSPACE}/csit/archives/${PROJECT}"
 mkdir -p "${WORKSPACE}/csit/archives/${PROJECT}"
 
-# Run installation of prerequired libraries
-source_safely "${SCRIPTS}/prepare-csit.sh"
+# Run installation of pre-required libraries
+source_safely "${SCRIPTS}/prepare-robot-env.sh"
 
-# Activate the virtualenv containing all the required libraries installed by prepare-csit.sh
+# Activate the virtualenv containing all the required libraries installed by prepare-robot-env.sh
 source_safely "${ROBOT_VENV}/bin/activate"
 
-WORKDIR=$(mktemp -d --suffix=-robot-workdir)
+export TEST_PLAN_DIR="${WORKSPACE}/csit/resources/tests"
+export TEST_OPTIONS="${2}"
+
+WORKDIR=$(mktemp -d)
 cd "${WORKDIR}"
 
 # Sign in to nexus3 docker repo
 docker login -u docker -p docker nexus3.onap.org:10001
 
-# Generate keystore to be used by repos
-${SCRIPTS}/gen_keystore.sh
-cp ${SCRIPTS}/config/ks.jks ${SCRIPTS}/config/drools/custom/policy-keystore
-cp ${SCRIPTS}/config/ks.jks ${SCRIPTS}/config/drools-apps/custom/policy-keystore
-
 # Run setup script plan if it exists
-cd "${TESTPLANDIR}/plans/"
-SETUP="${TESTPLANDIR}/plans/setup.sh"
+SETUP="${SCRIPTS}/setup-${PROJECT}.sh"
 if [ -f "${SETUP}" ]; then
     echo "Running setup script ${SETUP}"
     source_safely "${SETUP}"
@@ -185,14 +177,14 @@ docker_stats | tee "${WORKSPACE}/csit/archives/${PROJECT}/_sysinfo-1-after-setup
 # Run test plan
 cd "${WORKDIR}"
 echo "Reading the testplan:"
-cat "${TESTPLANDIR}/plans/testplan.txt" | egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' | sed "s|^|${TESTPLANDIR}/tests/|" > testplan.txt
+echo "${SUITES}" | egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' | sed "s|^|${TEST_PLAN_DIR}/|" > testplan.txt
 cat testplan.txt
-SUITES=$( xargs -a testplan.txt )
+SUITES=$( xargs < testplan.txt )
 
 echo ROBOT_VARIABLES="${ROBOT_VARIABLES}"
 echo "Starting Robot test suites ${SUITES} ..."
 relax_set
-python -m robot.run -N ${PROJECT} -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${SUITES}
+python3 -m robot.run -N "${PROJECT}" -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${SUITES}
 RESULT=$?
 load_set
 echo "RESULT: ${RESULT}"