#!/bin/sh
-# -*- coding: cp1251 -*-
# Состав набора тестов
# 1. Этот скрипт
CRYPTOPACK_MAIN_VERSION=3
+: ${OPENSSL_APP:=$(which openssl 2>/dev/null)}
if [ -z "$OPENSSL_APP" ]; then
if [ "$OS" != "Windows NT" -a "$OS" != "Windows_NT" ]; then
if [ -x /opt/cryptopack$CRYPTOPACK_MAIN_VERSION/bin/openssl ]; then
echo "Using $OPENSSL_APP as openssl"
fi
-
+: ${TCLSH:=$(which tclsh)}
if [ -z "$TCLSH" ]; then
for version in "" 8.4 84 8.5 85 8.6 86; do
for command in tclsh$version; do
else
echo "Using $TCLSH as tclsh"
fi
+TCLSH="$TCLSH -encoding utf-8"
+echo "PWD: $PWD"
+: ${OPENSSL_CONF:=$PWD/openssl-gost.cnf}
+echo "OPENSSL_CONF: $OPENSSL_CONF"
+export OPENSSL_CONF
+echo "ENGINE_DIR: $ENGINE_DIR"
+: ${OPENSSL_ENGINES:=$ENGINE_DIR}
+echo "OPENSSL_ENGINES: $OPENSSL_ENGINES"
+export OPENSSL_ENGINES
APP_SUFFIX=`basename $OPENSSL_APP .exe|sed s/openssl//`
[ -n "$OPENSSL_APP" ]&& export OPENSSL_APP
ENGINE_NAME=`$TCLSH getengine.tcl`
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"
OTHER_DIR=`echo $TESTDIR |sed 's/gost/cryptocom/'`
;;
*)
export OPENSSL_DEBUG_MEMORY
fail=0
+if [ "$*" ]; then
+ for t do
+ $TCLSH $t.try || fail=1
+ done
+ 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=1
+ 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=1
+ fi
done
-ALG_LIST="rsa:1024 gost2001:XA gost2012_256:XA gost2012_512:A" OPENSSL_CONF=`pwd`/openssl-gost.cnf $TCLSH ssl.try -clientconf `pwd`/openssl-cryptocom.cnf || fail=1
-ALG_LIST="rsa:1024 gost2001:XA gost2012_256:XA gost2012_512:A" OPENSSL_CONF=`pwd`/openssl-gost.cnf $TCLSH ssl.try -serverconf `pwd`/openssl-cryptocom.cnf || fail=1
+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
for t in $PKCS7_COMPATIBILITY_TESTS; do
$TCLSH $t.try || fail=1
exit 1;
esac
fi
+fi # false
$TCLSH calcstat ${TESTDIR}/stats ${TESTDIR}/test.result
grep "leaked" ${TESTDIR}/*.log
if [ $fail -ne 0 ]; then