util/lint: Run lint-extended-007-final-newlines checks in parallel
Instead of checking each directory in series, kick off the checks in parallel and then wait for them to finish. Failures print out with file information, so mixing output isn't a problem. This reduces the time it takes to run on lumberingbuilder by 60%. This could probably be sped up even more by splitting up src/mainboard into smaller sections. This method does skip a few control files at the top level - .gitignore, .checkpatch.conf, gnat.adc, etc. These could be added to the list of files to check, but I didn't think it was needed. Change-Id: I171977e713a9956cf4142cfc0a199e10040abb35 Signed-off-by: Martin Roth <gaumless@gmail.com> Reviewed-on: https://review.coreboot.org/27011 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
1dc5ce31ce
commit
31e0d42a1d
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
LC_ALL=C export LC_ALL
|
LC_ALL=C export LC_ALL
|
||||||
|
|
||||||
|
PIDS=""
|
||||||
|
INCLUDED_DIRS_AND_FILES='util/* src/* payloads/* configs/* Makefile *.inc'
|
||||||
EXCLUDED_DIRS='src/vendorcode/\|util/romcc/\|cbfstool/lzma/\|cbfstool/lz4/\|Documentation/\|build/\|3rdparty/\|\.git/\|coreboot-builds/\|util/nvidia/cbootimage/'
|
EXCLUDED_DIRS='src/vendorcode/\|util/romcc/\|cbfstool/lzma/\|cbfstool/lz4/\|Documentation/\|build/\|3rdparty/\|\.git/\|coreboot-builds/\|util/nvidia/cbootimage/'
|
||||||
EXCLUDED_FILES='\.jpg$\|\.cksum$\|\.bin$\|\.vbt$\|\.hex$\|\.ico$\|\.o$\|\.bz2$\|\.xz$\|^.tmpconfig\|\.pyc$\|_shipped$\|sha256$\|\.png$\|\.patch$'
|
EXCLUDED_FILES='\.jpg$\|\.cksum$\|\.bin$\|\.vbt$\|\.hex$\|\.ico$\|\.o$\|\.bz2$\|\.xz$\|^.tmpconfig\|\.pyc$\|_shipped$\|sha256$\|\.png$\|\.patch$'
|
||||||
|
|
||||||
|
@ -25,7 +27,7 @@ if [ -n "$(command -v git)" ] && \
|
||||||
then
|
then
|
||||||
FIND_FILES="git ls-files"
|
FIND_FILES="git ls-files"
|
||||||
else
|
else
|
||||||
FIND_FILES="find . "
|
FIND_FILES="find"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
HAVE_FILE=$(command -v file 1>/dev/null 2>&1; echo $?)
|
HAVE_FILE=$(command -v file 1>/dev/null 2>&1; echo $?)
|
||||||
|
@ -49,7 +51,6 @@ test_for_final_newline() {
|
||||||
if [ -f "$filename" ] && { [ ! -x "$filename" ] || \
|
if [ -f "$filename" ] && { [ ! -x "$filename" ] || \
|
||||||
is_eligible_executable "$filename"; };
|
is_eligible_executable "$filename"; };
|
||||||
then
|
then
|
||||||
|
|
||||||
# Verify that there is a newline at the end
|
# Verify that there is a newline at the end
|
||||||
# $() strips trailing newlines
|
# $() strips trailing newlines
|
||||||
if [ -n "$(tail -c 1 "$filename")" ]; then
|
if [ -n "$(tail -c 1 "$filename")" ]; then
|
||||||
|
@ -65,7 +66,15 @@ test_for_final_newline() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
${FIND_FILES} | sed 's|^\./||' | sort | \
|
for directory in $INCLUDED_DIRS_AND_FILES ; do
|
||||||
grep -v "$EXCLUDED_DIRS" | \
|
${FIND_FILES} ${directory} | sed 's|^\./||' | sort | \
|
||||||
grep -v "$EXCLUDED_FILES" | \
|
grep -v "$EXCLUDED_DIRS" | \
|
||||||
test_for_final_newline
|
grep -v "$EXCLUDED_FILES" | \
|
||||||
|
test_for_final_newline &
|
||||||
|
PIDS="$PIDS $!"
|
||||||
|
done
|
||||||
|
|
||||||
|
# wait for tests to finish.
|
||||||
|
for pid in $PIDS; do
|
||||||
|
wait "$pid"
|
||||||
|
done
|
||||||
|
|
Loading…
Reference in New Issue