#! /bin/bash # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. ######################################################################## # # similar to all.sh this file runs drives gtests. # # needs to work on all Unix and Windows platforms # # special strings # --------------- # FIXME ... known problems, search for this string # NOTE .... unexpected behavior # ######################################################################## ############################## gtest_init ############################## # local shell function to initialize this script ######################################################################## gtest_init() { cd "$(dirname "$1")" SOURCE_DIR="$PWD"/../.. if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then cd ../common . ./init.sh fi SCRIPTNAME=gtests.sh if [ -z "${CLEANUP}" ] ; then # if nobody else is responsible for CLEANUP="${SCRIPTNAME}" # cleaning this script will do it fi } ########################## gtest_start ############################# # Local function to actually start the test #################################################################### gtest_start() { echo "gtests: ${GTESTS}" for i in ${GTESTS}; do if [ ! -f "${BINDIR}/$i" ]; then html_unknown "Skipping $i (not built)" continue fi GTESTDIR="${HOSTDIR}/$i" html_head "$i" if [ ! -d "$GTESTDIR" ]; then mkdir -p "$GTESTDIR" echo "${BINDIR}/certutil" -N -d "$GTESTDIR" --empty-password 2>&1 "${BINDIR}/certutil" -N -d "$GTESTDIR" --empty-password 2>&1 fi cd "$GTESTDIR" GTESTREPORT="$GTESTDIR/report.xml" PARSED_REPORT="$GTESTDIR/report.parsed" echo "executing $i" "${BINDIR}/$i" "${SOURCE_DIR}/gtests/freebl_gtest/kat/Hash_DRBG.rsp" \ -d "$GTESTDIR" -w --gtest_output=xml:"${GTESTREPORT}" \ --gtest_filter="${GTESTFILTER:-*}" html_msg $? 0 "$i run successfully" echo "test output dir: ${GTESTREPORT}" echo "executing sed to parse the xml report" sed -f "${COMMON}/parsegtestreport.sed" "$GTESTREPORT" > "$PARSED_REPORT" echo "processing the parsed report" cat "$PARSED_REPORT" | while read result name; do if [ "$result" = "notrun" ]; then echo "$name" SKIPPED elif [ "$result" = "run" ]; then html_passed_ignore_core "$name" else html_failed_ignore_core "$name" fi done done } gtest_cleanup() { html "
" cd "${QADIR}" . common/cleanup.sh } ################## main ################################################# GTESTS="${GTESTS:-prng_gtest certhigh_gtest certdb_gtest der_gtest pk11_gtest util_gtest freebl_gtest softoken_gtest sysinit_gtest blake2b_gtest smime_gtest}" gtest_init "$0" gtest_start gtest_cleanup