test: fix fmt pass and shorten suppression warnings
If gosimple or staticcheck had no output, it no other passes would be
applied because they were using `continue`. Similarly, the suppression
check never worked at all since it wasn't the result data into egrep.
Fixes
@@ -250,17 +250,16 @@ function fmt_pass {
if which gosimple >/dev/null; then
echo "Checking gosimple..."
gosimpleResult=`gosimple ${STATIC_ANALYSIS_PATHS} 2>&1 || true`
- if [ ! -n "${gosimpleResult}" ]; then
- continue
- fi
+ if [ -n "${gosimpleResult}" ]; then
# TODO: resolve these after go1.8 migration
SIMPLE_CHECK_MASK="S(1024)"
- if egrep -v "$SIMPLE_CHECK_MASK" "${gosimpleResult}"; then
+ if echo "${gosimpleResult}" | egrep -v "$SIMPLE_CHECK_MASK"; then
echo -e "gosimple checking ${path} failed:\n${gosimpleResult}"
exit 255
else
echo -e "gosimple warning:\n${gosimpleResult}"
fi
+ fi
else
echo "Skipping gosimple..."
fi
@@ -279,17 +278,17 @@ function fmt_pass {
if which staticcheck >/dev/null; then
echo "Checking staticcheck..."
staticcheckResult=`staticcheck ${STATIC_ANALYSIS_PATHS} 2>&1 || true`
- if [ ! -n "${staticcheckResult}" ]; then
- continue
- fi
+ if [ -n "${staticcheckResult}" ]; then
# TODO: resolve these after go1.8 migration
# See https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck
STATIC_CHECK_MASK="SA(1016|1019|2002)"
- if egrep -v "$STATIC_CHECK_MASK" "${staticcheckResult}"; then
+ if echo "${staticcheckResult}" | egrep -v "$STATIC_CHECK_MASK"; then
echo -e "staticcheck checking ${path} failed:\n${staticcheckResult}"
exit 255
else
- echo -e "staticcheck warning:\n${staticcheckResult}"
+ suppressed=`echo "${staticcheckResult}" | sed 's/ /\n/g' | grep "(SA" | sort | uniq -c`
+ echo -e "staticcheck suppressed warnings:\n${suppressed}"
+ fi
fi
else
echo "Skipping staticcheck..."
