X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=tcl_tests%2Fruntest.sh;h=9ad744bf6c3315869f526e6e00950d83238fe3bf;hb=d183173c9843e827fb273fd272b4ab022d538c03;hp=a9714fd768fef2a5cebe7b7ea45fee64a0dd832a;hpb=1d36903aadb45850650e8113c6367893140d40af;p=openssl-gost%2Fengine.git diff --git a/tcl_tests/runtest.sh b/tcl_tests/runtest.sh index a9714fd..9ad744b 100644 --- a/tcl_tests/runtest.sh +++ b/tcl_tests/runtest.sh @@ -12,14 +12,14 @@ # Пререквизиты, которые должны быть установлены на машине: # 1. tclsh. Может называться с версией (см. список версий ниже в цикле # перебора) -# 2. ssh (что характерно, называться должен именно так). Должен быть +# 2. ssh (что характерно, называться должен именно так). Должен быть # настроен заход по ключам без пароля на lynx и все используемые эталонники. -# Ключи этих машин должны быть в knownhosts (с полными доменными именами +# Ключи этих машин должны быть в knownhosts (с полными доменными именами # серверов, то есть lynx.lan.cryptocom.ru и т.д.) # 3. Под Windows скрипт выполняется в среде MinGW, при этом нужно "донастроить" # ssh, а именно создать в разделе реестра # HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -# DWORD-ключ DisableUserTOSSetting=0 +# DWORD-ключ DisableUserTOSSetting=0 CRYPTOPACK_MAIN_VERSION=3 @@ -40,7 +40,7 @@ fi if [ -z "$OPENSSL_APP" ]; then echo "openssl not found" exit 1 -else +else echo "Using $OPENSSL_APP as openssl" fi @@ -95,7 +95,7 @@ case "$ENGINE_NAME" in OTHER_DIR=`echo $TESTDIR |sed 's/cryptocom/gost/'` ;; gost) - BASE_TESTS="engine dgst mac pkcs8 enc req-genpkey req-newkey ca smime smime2 smimeenc cms cms2 cmsenc pkcs12 nopath ocsp ts ssl smime_io cms_io smimeenc_io cmsenc_io" + BASE_TESTS="engine dgst mac pkcs8 enc req-genpkey req-newkey ca smime smime2 smimeenc cms cms2 cmstc262019 cmsenc pkcs12 nopath ocsp ts ssl smime_io cms_io smimeenc_io cmsenc_io" OTHER_DIR=`echo $TESTDIR |sed 's/gost/cryptocom/'` ;; *) @@ -120,31 +120,45 @@ if [ "$*" ]; then exit $fail fi for t in $BASE_TESTS; do - $TCLSH $t.try || fail=1 + if [ "$CI" ]; then + if $TCLSH $t.try > $TESTDIR/$t.out 2>&1; then + head -1 $TESTDIR/$t.out + else + fail=2 + cat $TESTDIR/$t.out + echo "=== Output failures of $TESTDIR/$t.log ===" + awk "/ ends failed/" RS= ORS='\n\n' $TESTDIR/$t.log | + sed 's/^/\t/' + echo "=== End of $TESTDIR/$t.log ===" + exit 1 + fi + else + $TCLSH $t.try || fail=3 + fi done if false; then # ignore some tests for a time -ALG_LIST="rsa:1024 gost2001:XA gost2012_256:XA gost2012_512:A" $TCLSH ssl.try -clientconf $OPENSSL_CONF || fail=1 -ALG_LIST="rsa:1024 gost2001:XA gost2012_256:XA gost2012_512:A" $TCLSH ssl.try -serverconf $OPENSSL_CONF || fail=1 - +ALG_LIST="rsa:1024 gost2001:XA gost2012_256:XA gost2012_512:A" $TCLSH ssl.try -clientconf $OPENSSL_CONF || fail=4 +ALG_LIST="rsa:1024 gost2001:XA gost2012_256:XA gost2012_512:A" $TCLSH ssl.try -serverconf $OPENSSL_CONF || fail=5 + for t in $PKCS7_COMPATIBILITY_TESTS; do - $TCLSH $t.try || fail=1 + $TCLSH $t.try || fail=6 done for t in $SERVER_TESTS; do - $TCLSH server.try $t || fail=1 + $TCLSH server.try $t || fail=7 done for t in $CLIENT_TESTS; do - $TCLSH client.try $t || fail=1 + $TCLSH client.try $t || fail=8 done if [ -n "WINCLIENT_TESTS" ]; then if [ -z "$CVS_RSH" ]; then CVS_RSH=ssh export CVS_RSH - fi + fi for t in $WINCLIENT_TESTS; do - $TCLSH wcli.try $t || fail=1 + $TCLSH wcli.try $t || fail=9 done -fi +fi if [ -d $OTHER_DIR ]; then OTHER_DIR=../${OTHER_DIR} $TCLSH interop.try fi @@ -162,12 +176,12 @@ if [ -d OtherVersion ] ; then echo "No GOST=providing engine found" 1>&2 exit 1; esac -fi +fi fi # false $TCLSH calcstat ${TESTDIR}/stats ${TESTDIR}/test.result grep "leaked" ${TESTDIR}/*.log -if [ $fail -ne 0 ]; then - echo "Some tests FAILED." -fi +if [ $fail -ne 0 ]; then + echo "Some tests FAILED, code $fail." +fi exit $fail