summaryrefslogtreecommitdiffstats
path: root/security/nss/tests/interop/interop.sh
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/tests/interop/interop.sh')
-rw-r--r--security/nss/tests/interop/interop.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/security/nss/tests/interop/interop.sh b/security/nss/tests/interop/interop.sh
new file mode 100644
index 000000000..59f0cb481
--- /dev/null
+++ b/security/nss/tests/interop/interop.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+########################################################################
+#
+# tests/interop/interop.sh
+#
+# Script to drive our cross-stack interop tests
+#
+########################################################################
+
+interop_init()
+{
+ SCRIPTNAME="interop.sh"
+ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ] ; then
+ cd ../common
+ . ./init.sh
+ fi
+
+ mkdir -p "${HOSTDIR}/interop"
+ cd "${HOSTDIR}/interop"
+ INTEROP=${INTEROP:=tls_interop}
+ if [ ! -d "$INTEROP" ]; then
+ git clone -q https://github.com/mozilla/tls-interop "$INTEROP"
+ fi
+ INTEROP=$(cd "$INTEROP";pwd -P)
+
+ # We use the BoringSSL keyfiles
+ BORING=${BORING:=boringssl}
+ if [ ! -d "$BORING" ]; then
+ git clone -q https://boringssl.googlesource.com/boringssl "$BORING"
+ git -C "$BORING" checkout -q ea80f9d5df4c302de391e999395e1c87f9c786b3
+ fi
+ BORING=$(cd "$BORING";pwd -P)
+
+ SCRIPTNAME="interop.sh"
+ html_head "interop test"
+}
+
+interop_cleanup()
+{
+ html "</TABLE><BR>"
+ cd ${QADIR}
+ . common/cleanup.sh
+}
+
+# Function so we can easily add other stacks
+interop_run()
+{
+ test_name=$1
+ client=$2
+ server=$3
+
+ (cd "$INTEROP";
+ cargo run -- --client "$client" --server "$server" --rootdir "$BORING"/ssl/test/runner/ --test-cases cases.json) 2>interop-${test_name}.errors | tee interop-${test_name}.log
+ html_msg "${PIPESTATUS[0]}" 0 "Interop" "Run successfully"
+ grep -i 'FAILED\|Assertion failure' interop-${test_name}.errors
+ html_msg $? 1 "Interop" "No failures"
+}
+
+cd "$(dirname "$0")"
+SOURCE_DIR="$PWD"/../..
+interop_init
+NSS_SHIM="$BINDIR"/nss_bogo_shim
+BORING_SHIM="$BORING"/build/ssl/test/bssl_shim
+interop_run "nss_nss" ${NSS_SHIM} ${NSS_SHIM}
+interop_cleanup