From 411301293a1502d6ebc2e58f5fd070b46e3b9dd9 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 8 Apr 2009 08:11:06 +0000 Subject: [PATCH] When multiple kernel versions have been specified in the argument list, only run checkpatch and sparse on the first specified kernel version. For the other kernel versions, compile the kernel source code but do not run checkpatch or sparse. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@757 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scripts/run-regression-tests | 37 ++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/scripts/run-regression-tests b/scripts/run-regression-tests index fb88ab050..3535cb09b 100755 --- a/scripts/run-regression-tests +++ b/scripts/run-regression-tests @@ -328,6 +328,27 @@ function compile_patched_kernel { return 0 } +# Compile subdirectory $2 of the patched kernel tree linux-$1. +function compile_kernel { + local kver="$(kernel_version $1)" + local plevel="$(patchlevel $1)" + local outputfile="${outputdir}/compilation-$1-output.txt" + local subdir="$2" + + echo "Compiling the patched kernel ..." + ( + cd "${outputdir}/linux-$1" \ + && make -s prepare \ + && make -s scripts \ + && LC_ALL=C make -k M="${subdir}" + ) &> "${outputfile}" + local errors=$(grep -c ' error:' "${outputfile}") + local warnings=$(grep -c ' warning:' "${outputfile}") + echo "${errors} errors / ${warnings} warnings." + cat "${outputfile}" | grep -E 'warning:|error:' | sort | uniq -c + return 0 +} + # Run the source code verification tool 'sparse' on the SCST code. Assumes that # there is a patched kernel tree present in directory "${outputdir}/linux-$1". # For more information about endianness annotations, see also @@ -336,13 +357,14 @@ function run_sparse { local kver="$(kernel_version $1)" local plevel="$(patchlevel $1)" local outputfile="${outputdir}/sparse-$1-output.txt" + local subdir="$2" echo "Running sparse on the patched kernel ..." ( cd "${outputdir}/linux-$1" \ && make -s prepare \ && make -s scripts \ - && LC_ALL=C make -k C=2 M=drivers/scst # CF=-D__CHECK_ENDIAN__ + && LC_ALL=C make -k C=2 M="${subdir}" # CF=-D__CHECK_ENDIAN__ ) &> "${outputfile}" local errors=$(grep -c ' error:' "${outputfile}") local warnings=$(grep -c ' warning:' "${outputfile}") @@ -501,6 +523,7 @@ test_scst_tree_patches || exit $? compile_scst_unpatched || exit $? compile_scst_patched || exit $? +first_iteration="true" for k in ${kernel_versions} do echo "====================" @@ -510,9 +533,15 @@ do download_kernel $k || continue generate_kernel_patch $k || continue test_if_patch_applies_cleanly $k || continue - run_checkpatch $k - patch_and_configure_kernel $k - run_sparse $k + if [ "${first_iteration}" = "true" ]; then + first_iteration="false" + run_checkpatch $k + patch_and_configure_kernel $k + run_sparse $k drivers/scst + else + patch_and_configure_kernel $k + compile_kernel $k drivers/scst + fi # run_headers_check $k [ "${full_check}" = "true" ] || continue compile_patched_kernel $k