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>
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			67 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; };
 |