diff options
author | Martin Thomson <martin.thomson@gmail.com> | 2015-09-24 15:23:19 -0700 |
---|---|---|
committer | Martin Thomson <martin.thomson@gmail.com> | 2015-09-24 15:23:19 -0700 |
commit | a27721733849fe6e325517b0360b499f9d52f6e4 (patch) | |
tree | 1a90df7c7467772c0b33b34a9883cf715475a48b /tests/ssl_gtests | |
parent | 17e682a08377faeca4f920992765b3e109e80732 (diff) | |
download | nss-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.sed | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/ssl_gtests/ssl_gtests.sh | 82 |
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 ################################################# |