78f73353a3
The checkpatch script takes a really long time to run, and when the output is buffered to wait until it's finished, it's hard to tell if the script is actually doing anything. Instead, use tee to log the output and display it at the same time. Change-Id: I3cf36e5e6ca28584103888ee1c6f125320ac068a Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/17125 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins)
73 lines
2 KiB
Bash
Executable file
73 lines
2 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# This file is part of the coreboot project.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; version 2 of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
#set -x # uncomment for debug
|
|
|
|
usage () {
|
|
printf "Usage: %s <lint|lint-stable> [--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" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
LINTLOG=$(mktemp .tmpconfig.lintXXXXX);
|
|
XMLFILE="$(dirname "$0")/junit.xml"
|
|
FAILED=0;
|
|
|
|
#check optional second command line parameter.
|
|
#TODO: Add real command line handling if anything more is added
|
|
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 "\n%s\n" "$(basename "$script")"
|
|
grep "^# DESCR:" "$script" | sed "s,.*DESCR: *,,"
|
|
echo "========"
|
|
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
|
|
echo "========"
|
|
junit_write ' </testcase>'
|
|
done
|
|
|
|
rm -f "$LINTLOG"
|
|
junit_write '</testsuite>'
|
|
test $FAILED -eq 0 || { echo "ERROR: $FAILED test(s) failed."; exit 1; };
|