/
niceSOFT
/
openldap
Обзор
Документация
Войти
/
niceSOFT
/
openldap
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/scripts/all
147 строк
3 KB
Ondřej Kuzník
ITS#10499 tests: record test results as junit.xml
14 май 2026, 22:58
14 май 2026, 22:58
9cbcfe7
Код
Авторство
О чём код?
#! /bin/sh # $OpenLDAP$ ## This work is part of OpenLDAP Software <http://www.openldap.org/>. ## ## Copyright 1998-2026 The OpenLDAP Foundation. ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted only as authorized by the OpenLDAP ## Public License. ## ## A copy of this license is available in the file LICENSE in the ## top-level directory of the distribution or, alternatively, at ## <http://www.OpenLDAP.org/license.html>. . $SRCDIR/scripts/defines.sh TB="" TN="" if test -t 1 ; then TB=`$SHTOOL echo -e "%B" 2>/dev/null` TN=`$SHTOOL echo -e "%b" 2>/dev/null` fi FAILCOUNT=0 SKIPCOUNT=0 SLEEPTIME=10 # check for BSD vs GNU date date -j >/dev/null 2>&1 RC=$? if [ $RC -ne 0 ]; then DATEOPT="-d @" else DATEOPT="-r " fi echo ">>>>> $(timer) Executing all LDAP tests for $BACKEND" junit_setup "$BACKEND" if [ -n "$NOEXIT" ]; then echo "Result Test" > $TESTWD/results fi for CMD in $SRCDIR/scripts/test*; do case "$CMD" in *~) continue;; *.bak) continue;; *.orig) continue;; *.sav) continue;; *.py) continue;; *) test -f "$CMD" || continue;; esac # remove cruft from prior test if test $PRESERVE = yes ; then /bin/rm -rf $TESTDIR/db.* else /bin/rm -rf $TESTDIR fi BCMD=`basename $CMD` if [ -x "$CMD" ]; then MSG=">>>>> $(timer) Starting ${TB}$BCMD${TN} for $BACKEND..." [ -n "$TESTINST" ] && echo "$MSG" >&2 echo "$MSG" START=`date +%s` if [ -n "$JUNIT_OUTPUT" ]; then # capture the output so we can paste it into the report { $CMD 2>&1; echo $? > "$JUNIT_RC"; } | tee "$JUNIT_LOG" RC=`cat "$JUNIT_RC"` elif [ -n "$TESTINST" ]; then $CMD 2>&1 RC=$? else $CMD RC=$? fi END=`date +%s` if test $RC -eq 0 ; then MSG=">>>>> $(timer) Finished $BCMD for $BACKEND after $(( $END - $START )) seconds." [ -n "$TESTINST" ] && echo "$MSG" >&2 echo "$MSG" if [ -n "$JUNIT_OUTPUT" ]; then printf '\t<testcase classname="%s" name="%s" time="%d"/>\n' \ "$BACKEND" "$BCMD" "$(( $END - $START ))" \ >> "$JUNIT_TMP" fi else MSG=">>>>> $(timer) Failed $BCMD for $BACKEND after $(( $END - $START )) seconds" [ -n "$TESTINST" ] && echo "$MSG" >&2 echo "$MSG" FAILCOUNT=`expr $FAILCOUNT + 1` if [ -n "$JUNIT_OUTPUT" ]; then { printf '\t<testcase classname="%s" name="%s" time="%d">\n' \ "$BACKEND" "$BCMD" "$(( $END - $START ))" printf '\t\t<failure message="exited with %s">' "$RC" xml_escape < "$JUNIT_LOG" echo ' </failure>' echo ' </testcase>' } >> "$JUNIT_TMP" fi if [ -n "$NOEXIT" ]; then echo "Continuing." else echo "(exit $RC)" exit $RC fi fi else MSG=">>>>> $(timer) Skipping ${TB}$BCMD${TN} for $BACKEND." [ -n "$TESTINST" ] && echo "$MSG" >&2 echo "$MSG" SKIPCOUNT=`expr $SKIPCOUNT + 1` RC="-" if [ -n "$JUNIT_OUTPUT" ]; then { printf '\t<testcase classname="%s" name="%s" time="0">\n' \ "$BACKEND" "$BCMD" echo ' <skipped/>' echo ' </testcase>' } >> "$JUNIT_TMP" fi fi if [ -n "$NOEXIT" ]; then echo "$RC $BCMD" >> $TESTWD/results fi # echo ">>>>> waiting $SLEEPTIME seconds for things to exit" # sleep $SLEEPTIME echo "" done if [ -n "$NOEXIT" ]; then if [ "$FAILCOUNT" -gt 0 ]; then cat $TESTWD/results echo "$FAILCOUNT tests for $BACKEND ${TB}failed${TN}. Please review the test log." else echo "All executed tests for $BACKEND ${TB}succeeded${TN}." fi fi echo "$SKIPCOUNT tests for $BACKEND were ${TB}skipped${TN}."