summaryrefslogtreecommitdiff
path: root/tests/ssl_gtests
diff options
context:
space:
mode:
authorMartin Thomson <martin.thomson@gmail.com>2015-09-24 15:23:19 -0700
committerMartin Thomson <martin.thomson@gmail.com>2015-09-24 15:23:19 -0700
commita27721733849fe6e325517b0360b499f9d52f6e4 (patch)
tree1a90df7c7467772c0b33b34a9883cf715475a48b /tests/ssl_gtests
parent17e682a08377faeca4f920992765b3e109e80732 (diff)
downloadnss-hg-a27721733849fe6e325517b0360b499f9d52f6e4.tar.gz
Bug 1208243 - Enable ssl_gtest if built, r=ekr
Diffstat (limited to 'tests/ssl_gtests')
-rw-r--r--tests/ssl_gtests/parsereport.sed8
-rwxr-xr-x[-rw-r--r--]tests/ssl_gtests/ssl_gtests.sh82
2 files changed, 82 insertions, 8 deletions
diff --git a/tests/ssl_gtests/parsereport.sed b/tests/ssl_gtests/parsereport.sed
new file mode 100644
index 000000000..d7c6ddada
--- /dev/null
+++ b/tests/ssl_gtests/parsereport.sed
@@ -0,0 +1,8 @@
+/\<testcase/{
+ s/^.* name="\([^"]*\)" value_param="\([^"]*\)" status="\([^"]*\)" time="[^"]*" classname="\([^"]*\)".*$/\3 '\4: \1 \2'/
+ t end
+ s/^.* name="\([^"]*\)" status="\([^"]*\)" time="[^"]*" classname="\([^"]*\)".*$/\2 '\3: \1'/
+ t end
+}
+d
+: end
diff --git a/tests/ssl_gtests/ssl_gtests.sh b/tests/ssl_gtests/ssl_gtests.sh
index ce404ba45..ad3d4448d 100644..100755
--- a/tests/ssl_gtests/ssl_gtests.sh
+++ b/tests/ssl_gtests/ssl_gtests.sh
@@ -18,6 +18,55 @@
# NOTE .... unexpected behavior
#
########################################################################
+ssl_gtest_certs() {
+ mkdir -p "${SSLGTESTDIR}"
+ cd "${SSLGTESTDIR}"
+
+ PROFILEDIR=`pwd`
+ if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then
+ PROFILEDIR=`cygpath -m "${PROFILEDIR}"`
+ fi
+
+ ${BINDIR}/certutil -N -d "${PROFILEDIR}" --empty-password 2>&1
+ html_msg $? 0 "create ssl_gtest database"
+
+ ${BINDIR}/certutil -S -z ${R_NOISE_FILE} -d "${PROFILEDIR}" \
+ -n server -s "CN=server" -t C,C,C -x -m 1 -w -2 -v 120 \
+ -k rsa -g 1024 -Z SHA256 -1 -2 <<CERTSCRIPT
+0
+2
+9
+n
+n
+
+n
+CERTSCRIPT
+ html_msg $? 0 "create ssl_gtest server certificate"
+
+ ${BINDIR}/certutil -S -z ${R_NOISE_FILE} -d "${PROFILEDIR}" \
+ -n client -s "CN=client" -t C,C,C -x -m 1 -w -2 -v 120 \
+ -k rsa -g 1024 -Z SHA256 -1 -2 <<CERTSCRIPT
+0
+9
+n
+n
+
+n
+CERTSCRIPT
+ html_msg $? 0 "create ssl_gtest client certificate"
+
+ ${BINDIR}/certutil -S -z ${R_NOISE_FILE} -d "${PROFILEDIR}" \
+ -n ecdsa -s "CN=ecdsa" -t C,C,C -x -m 1 -w -2 -v 120 \
+ -k ec -q nistp256 -Z SHA256 -1 -2 <<CERTSCRIPT
+0
+9
+n
+n
+
+n
+CERTSCRIPT
+ html_msg $? 0 "create ssl_gtest ECDSA certificate"
+}
############################## ssl_gtest_init ##########################
# local shell function to initialize this script
@@ -33,16 +82,17 @@ ssl_gtest_init()
cd ../common
. ./init.sh
fi
- if [ ! -r $CERT_LOG_FILE ]; then # we need certificates here
- cd ../cert
- . ./cert.sh
- fi
+
SCRIPTNAME=ssl_gtest.sh
- echo "$SCRIPTNAME: SSL Gtests ==============================="
+ html_head SSL Gtests
+
+ if [ ! -d "${SSLGTESTDIR}" ]; then
+ ssl_gtest_certs
+ fi
REQF=${QADIR}/ssl/sslreq.dat
- cd ${CLIENTDIR}
+ cd "${SSLGTESTDIR}"
}
########################## ssl_gtest_start #########################
@@ -50,8 +100,24 @@ ssl_gtest_init()
####################################################################
ssl_gtest_start()
{
- ssl_gtest -d ${SSLGTESTDIR}
- html_msg $? 0 "ssl_gtest"
+ if [ ! -f ${BINDIR}/ssl_gtest ]; then
+ html_unknown "Skipping ssl_gtest (not built)"
+ return
+ fi
+
+ SSLGTESTREPORT="${SSLGTESTDIR}/report.xml"
+ ${BINDIR}/ssl_gtest -d "${SSLGTESTDIR}" --gtest_output=xml:"${SSLGTESTREPORT}"
+ html_msg $? 0 "ssl_gtest run successfully"
+ sed -f ${QADIR}/ssl_gtests/parsereport.sed "${SSLGTESTREPORT}" | \
+ while read result name; do
+ if [ "$result" = "notrun" ]; then
+ echo "$name" SKIPPED
+ elif [ "$result" = "run" ]; then
+ html_passed "$name" > /dev/null
+ else
+ html_failed "$name"
+ fi
+ done
}
################## main #################################################