0ad5fbd48d
Instead of hardcoding paths to the executables, use the version in the path. This allows the scripts to work on more systems, and allows the binary version to be changed more easily if needed. Signed-off-by: Martin Roth <martin@coreboot.org> Change-Id: Ifcc56aa21092cd3866eacb6a02d198110ec6051d Reviewed-on: https://review.coreboot.org/c/coreboot/+/48904 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
66 lines
1.6 KiB
Bash
Executable file
66 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
#
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#set -x # uncomment for debug
|
|
|
|
usage () {
|
|
printf "Usage: %s <lint|lint-stable|lint-extended> [--junit]\n" "$0"
|
|
}
|
|
|
|
#write to the junit xml file if --junit was specified
|
|
junit_write () {
|
|
if [ "$JUNIT" -eq 1 ]; then
|
|
echo "$1" >> "$XMLFILE"
|
|
fi
|
|
}
|
|
|
|
#verify the first command line parameter
|
|
if [ -z "$1" ] || [ "$1" != "lint" ] && [ "$1" != "lint-stable" ] && \
|
|
[ "$1" != "lint-extended" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
LINTLOG=$(mktemp .tmpconfig.lintXXXXXX);
|
|
XMLFILE="$(dirname "$0")/junit.xml"
|
|
if [ "$1" = "lint-extended" ]; then
|
|
XMLFILE="$(dirname "$0")/extended-junit.xml"
|
|
fi
|
|
FAILED=0;
|
|
|
|
#check optional second command line parameter.
|
|
if [ "$2" = "--junit" ]; then
|
|
JUNIT=1
|
|
echo '<?xml version="1.0" encoding="utf-8"?>' > "$XMLFILE"
|
|
junit_write '<testsuite>'
|
|
else
|
|
JUNIT=0
|
|
fi
|
|
|
|
#run all scripts of the requested type
|
|
for script in "$(dirname "$0")/${1}-"*; do
|
|
printf "%s " "$(grep '^# DESCR:' "$script" | sed 's,.*DESCR: *,,')"
|
|
printf "(%s): " "$(basename "$script")"
|
|
junit_write " <testcase classname='lint' name='$(basename "$script")'>"
|
|
$script | tee "$LINTLOG"
|
|
|
|
#if the lint script gives any output, that's a failure
|
|
if [ "$(wc -l < "$LINTLOG")" -eq 0 ]; then
|
|
echo "success"
|
|
junit_write " <system-out><![CDATA[success]]></system-out>"
|
|
else
|
|
echo "test failed"
|
|
junit_write " <failure type='testFailed'><![CDATA["
|
|
junit_write "$(cat "$LINTLOG")"
|
|
junit_write "]]></failure>"
|
|
rm -f "$LINTLOG"
|
|
FAILED=$(( FAILED + 1 ))
|
|
fi
|
|
junit_write ' </testcase>'
|
|
done
|
|
|
|
rm -f "$LINTLOG"
|
|
junit_write '</testsuite>'
|
|
test $FAILED -eq 0 || { echo "ERROR: $FAILED test(s) failed."; exit 1; };
|