Update NSS to 3.32.1-RTM

This commit is contained in:
wolfbeast 2018-02-06 11:46:26 +01:00 committed by Roy Tam
commit c91ef9012b
512 changed files with 83203 additions and 16839 deletions

View file

@ -127,23 +127,98 @@ ssl_gtest_start()
fi
SSLGTESTREPORT="${SSLGTESTDIR}/report.xml"
PARSED_REPORT="${SSLGTESTDIR}/report.parsed"
echo "executing ssl_gtest"
${BINDIR}/ssl_gtest -d "${SSLGTESTDIR}" --gtest_output=xml:"${SSLGTESTREPORT}" \
--gtest_filter="${GTESTFILTER-*}"
html_msg $? 0 "ssl_gtest run successfully"
echo "executing sed to parse the xml report"
sed -f ${COMMON}/parsegtestreport.sed "${SSLGTESTREPORT}" > "${PARSED_REPORT}"
echo "processing the parsed report"
cat "${PARSED_REPORT}" | while read result name; do
if [ "$result" = "notrun" ]; then
echo "$name" SKIPPED
elif [ "$result" = "run" ]; then
html_passed_ignore_core "$name"
else
local nshards=1
local prefix=""
local postfix=""
export -f parallel_fallback
# Determine the number of chunks.
if [ -n "$GTESTFILTER" ]; then
echo "DEBUG: Not parallelizing ssl_gtests because \$GTESTFILTER is set"
elif type parallel 2>/dev/null; then
nshards=$(parallel --number-of-cores || 1)
fi
if [ "$nshards" != 1 ]; then
local indices=$(for ((i=0; i<$nshards; i++)); do echo $i; done)
prefix="parallel -j$nshards --line-buffer --halt soon,fail=1"
postfix="\&\& exit 0 \|\| exit 1 ::: $indices"
fi
echo "DEBUG: ssl_gtests will be divided into $nshards chunk(s)"
# Run tests.
${prefix:-parallel_fallback} \
GTEST_SHARD_INDEX={} \
GTEST_TOTAL_SHARDS=$nshards \
DYLD_LIBRARY_PATH="${DIST}/${OBJDIR}/lib" \
${BINDIR}/ssl_gtest -d "${SSLGTESTDIR}" \
--gtest_output=xml:"${SSLGTESTREPORT}.{}" \
--gtest_filter="${GTESTFILTER-*}" \
$postfix
html_msg $? 0 "ssl_gtests ran successfully"
# Parse XML report(s).
if type xmllint &>/dev/null; then
echo "DEBUG: Using xmllint to parse GTest XML report(s)"
parse_report
else
echo "DEBUG: Falling back to legacy XML report parsing using only sed"
parse_report_legacy
fi
}
# Helper function used when 'parallel' isn't available.
parallel_fallback()
{
eval "${@//\{\}/0}"
}
parse_report()
{
# Check XML reports for normal test runs and failures.
local successes=$(parse_report_xpath "//testcase[@status='run'][count(*)=0]")
local failures=$(parse_report_xpath "//failure/..")
# Print all tests that succeeded.
while read result name; do
html_passed_ignore_core "$name"
done <<< "$successes"
# Print failing tests.
if [ -n "$failures" ]; then
printf "\nFAILURES:\n=========\n"
while read result name; do
html_failed_ignore_core "$name"
done <<< "$failures"
printf "\n"
fi
}
parse_report_xpath()
{
# Query the XML report with the given XPath pattern.
xmllint --xpath "$1" "${SSLGTESTREPORT}".* 2>/dev/null | \
# Insert newlines to help sed.
sed $'s/<testcase/\\\n<testcase/g' | \
# Use sed to parse the report.
sed -f "${COMMON}/parsegtestreport.sed"
}
# This legacy report parser can't actually detect failures. It always relied
# on the binary's exit code. Print the tests we ran to keep the old behavior.
parse_report_legacy()
{
while read result name && [ -n "$name" ]; do
if [ "$result" = "run" ]; then
html_passed_ignore_core "$name"
fi
done
done <<< "$(sed -f "${COMMON}/parsegtestreport.sed" "${SSLGTESTREPORT}".*)"
}
ssl_gtest_cleanup()