| #!/bin/bash -ex |
| # |
| # Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License v. 2.0, which is available at |
| # http://www.eclipse.org/legal/epl-2.0. |
| # |
| # This Source Code may also be made available under the following Secondary |
| # Licenses when the conditions for such availability set forth in the |
| # Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| # version 2 with the GNU Classpath Exception, which is available at |
| # https://www.gnu.org/software/classpath/license.html. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| # |
| |
| # OS-specific section |
| if [ `uname | grep -i "sunos" | wc -l | awk '{print $1}'` -eq 1 ] ; then |
| GREP="ggrep" |
| AWK="gawk" |
| SED="gsed" |
| BC="gbc" |
| export PATH=/gf-hudson-tools/bin:${PATH} |
| else |
| GREP="grep" |
| AWK="awk" |
| SED="sed" |
| BC="bc" |
| fi |
| export GREP AWK SED BC |
| |
| kill_clean(){ |
| if [ ${#1} -ne 0 ] ; then kill -9 ${1} || true ; fi |
| } |
| |
| kill_process(){ |
| printf "\n%s \n\n" "===== KILL THEM ALL =====" |
| kill_clean `jps | grep ASMain | awk '{print $1}'` |
| kill_clean `jps | grep DerbyControl | awk '{print $1}'` |
| kill_clean `jps | grep DirectoryServer | awk '{print $1}'` |
| } |
| |
| test_init(){ |
| printf "\n%s \n\n" "===== V2 DEVTESTS INIT =====" |
| # workaround for OSGI timestamp issue |
| find ${S1AS_HOME} -type f | xargs touch > /dev/null |
| echo S1AS_HOME is ${S1AS_HOME} |
| echo ANT_HOME is ${ANT_HOME} |
| echo APS_HOME is ${APS_HOME} |
| java -version |
| ant -version |
| mkdir -p ${WORKSPACE}/results/junitreports |
| printf "\n\n" |
| } |
| |
| zip_test_results(){ |
| printf "\n%s \n\n" "===== ZIP THE TESTS RESULTS =====" |
| zip -r ${WORKSPACE}/results.zip ${WORKSPACE}/results > /dev/nul |
| } |
| |
| unzip_test_resources(){ |
| printf "\n%s \n\n" "===== UNZIP TEST RESOURCES =====" |
| for i in "${@}"; do |
| if [[ ${i} == *.zip* ]]; then |
| unzip -qq -o ${i} -d ${WORKSPACE} |
| else |
| tar --overwrite -xf ${i} |
| fi |
| done |
| } |
| |
| copy_test_artifacts(){ |
| printf "\n%s \n\n" "===== COPY TEST ARTIFACTS =====" |
| mkdir -p ${WORKSPACE}/results/junitreports |
| tar -cf ${WORKSPACE}/results/domainArchive.tar.gz ${S1AS_HOME}/domains |
| cp ${S1AS_HOME}/domains/domain1/logs/server.log* ${WORKSPACE}/results/ || true |
| cp ${TEST_RUN_LOG} ${WORKSPACE}/results/ |
| cp ${APS_HOME}/test_results*.* ${WORKSPACE}/results/ || true |
| cp `pwd`/*/*logs.zip ${WORKSPACE}/results/ || true |
| cp `pwd`/*/*/*logs.zip ${WORKSPACE}/results/ || true |
| tar -cf ${WORKSPACE}/${1}-results.tar.gz ${WORKSPACE}/results |
| } |
| |
| generate_junit_report(){ |
| printf "\n%s \n\n" "===== GENERATE JUNIT REPORT =====" |
| TD=${APS_HOME}/test_resultsValid.xml |
| JUD=${APS_HOME}/test_results_junit.xml |
| TESTSUITE_NAME=${1} |
| |
| cat ${TD} | ${AWK} -v suitename=${TESTSUITE_NAME} ' |
| BEGIN { |
| totaltests = 0; |
| totalfailures = 0; |
| totalerrors = 0; |
| } |
| function getPropVal(str){ |
| split(str, a, "="); |
| val = a[2]; |
| # remove quotes |
| gsub("\"","",val); |
| return val; |
| } |
| function removeXMLTag(str){ |
| # remove xml tag quotes |
| gsub("</.*>","",str); |
| gsub("<.*>","",str); |
| gsub(">","",str); |
| return str; |
| } |
| /status value=/ { |
| result=getPropVal($0); |
| result=removeXMLTag(result); |
| } |
| /<testsuite>/ { |
| getline; |
| getline; |
| testunit=removeXMLTag($0); |
| gsub("\"","",testunit); |
| } |
| /<testcase>/ { |
| getline; |
| testname=removeXMLTag($0); |
| gsub("\"","",testname); |
| } |
| /<\/testcase>/{ |
| classname=testunit |
| # printing testcase to out |
| out = out sprintf(" <testcase classname=\"%s\" name=\"%s\" time=\"0.0\">\n", classname, testname); |
| if (result == "fail") { |
| out = out " <failure message=\"NA\" type=\"NA\"/>\n"; |
| totalfailures++; |
| } else if (result == "did_not_run") { |
| out = out " <error message=\"NA\" type=\"NA\"/>\n"; |
| totalerrors++; |
| } |
| out = out " </testcase>\n"; |
| |
| totaltests++; |
| result=""; |
| testname=""; |
| } |
| END { |
| print "<?xml version=\"1.0\" ?>" |
| printf "<testsuite tests=\"%d\" failures=\"%d\" errors=\"%d\" name=\"%s\">\n", totaltests, totalfailures, totalerrors, suitename; |
| printf "%s", out; |
| print "</testsuite>" |
| }' > ${JUD} |
| cp ${JUD} ${WORKSPACE}/results/junitreports |
| } |
| |
| change_junit_report_class_names(){ |
| ${SED} -i 's/\([a-zA-Z-]\w*\)\./\1-/g' ${WORKSPACE}/results/junitreports/*.xml |
| ${SED} -i "s/\bclassname=\"/classname=\"${TEST_ID}./g" ${WORKSPACE}/results/junitreports/*.xml |
| } |
| |
| check_successful_run(){ |
| printf "\n%s \n\n" "===== CHECK SUCCESSFUL RUN =====" |
| FILE=${APS_HOME}/test_results.html |
| if [ -f ${FILE} ]; then |
| echo "File ${FILE} exists.Test build successful" |
| else |
| echo "File ${FILE} does not exist.There is problem in test build." |
| exit 1 |
| fi |
| } |