mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-21 15:57:31 +09:00
Update NSS to 3.32.1-RTM
This commit is contained in:
parent
f29876f120
commit
c91ef9012b
512 changed files with 83203 additions and 16839 deletions
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue