mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-01 13:28:39 +09:00
51 lines
1.3 KiB
Bash
51 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
source $(dirname "$0")/tools.sh
|
|
|
|
# Clone NSPR if needed.
|
|
if [ ! -d "nspr" ]; then
|
|
hg_clone https://hg.mozilla.org/projects/nspr ./nspr default
|
|
fi
|
|
|
|
# Build.
|
|
cd nss
|
|
make nss_build_all
|
|
|
|
# What we want to scan.
|
|
# key: directory to scan
|
|
# value: number of errors expected in that directory
|
|
declare -A scan=( \
|
|
[lib/base]=0 \
|
|
[lib/certdb]=0 \
|
|
[lib/certhigh]=0 \
|
|
[lib/ckfw]=0 \
|
|
[lib/crmf]=0 \
|
|
[lib/cryptohi]=0 \
|
|
[lib/dev]=0 \
|
|
[lib/freebl]=0 \
|
|
[lib/nss]=0 \
|
|
[lib/ssl]=0 \
|
|
[lib/util]=0 \
|
|
)
|
|
|
|
# remove .OBJ directories to force a rebuild of just the select few
|
|
for i in "${!scan[@]}"; do
|
|
find "$i" -name "*.OBJ" -exec rm -rf {} \+
|
|
done
|
|
|
|
# run scan-build (only building affected directories)
|
|
scan-build-5.0 -o /home/worker/artifacts --use-cc=$CC --use-c++=$CCC make nss_build_all && cd ..
|
|
|
|
# print errors we found
|
|
set +v +x
|
|
STATUS=0
|
|
for i in "${!scan[@]}"; do
|
|
n=$(grep -Rn "$i" /home/worker/artifacts/*/report-*.html | wc -l)
|
|
if [ $n -ne ${scan[$i]} ]; then
|
|
STATUS=1
|
|
echo "$(date '+%T') WARNING - TEST-UNEXPECTED-FAIL: $i contains $n scan-build errors"
|
|
elif [ $n -ne 0 ]; then
|
|
echo "$(date '+%T') WARNING - TEST-EXPECTED-FAIL: $i contains $n scan-build errors"
|
|
fi
|
|
done
|
|
exit $STATUS
|