gentoo/metadata/install-qa-check.d/60noop-testsuites
matoro 81d57dd711
metadata/install-qa-check.d: add 60noop-testsuites
This attempts to catch autotools-based tests that will pass without
actually executing any tests due to automagic-based rules like the
presence/absence of a dependency.

(sam: This was written based on my notes for implementation.)

Bug: https://bugs.gentoo.org/848579
Closes: https://github.com/gentoo/gentoo/pull/26237
Signed-off-by: Sam James <sam@gentoo.org>
2022-08-21 03:30:00 +01:00

29 lines
818 B
Bash

# Copyright 2021-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# QA check: look for autotools-based tests are actually no-ops
# Maintainer: Quality Assurance team <qa@gentoo.org>
noop_testsuite_check() {
use test || return
IFS= readarray -t noop_testsuites < <(find "${S}" -type f -name 'test-suite.log' -print0 | xargs -0 grep -l "TOTAL: 0" 2>/dev/null)
if [[ -n ${noop_testsuites[@]} ]]; then
eqawarn "QA Notice: Test suite passed but did not actually execute any tests:"
eqawarn
for suite in ${noop_testsuites[@]}
do
# can't use eqatag here because filenames must be relative to ${D},
# but our test suite log files only exist in ${S}
eqawarn "\t${suite#${S}/}"
done
eqawarn
fi
}
noop_testsuite_check
: # guarantee successful exit
# vim:ft=sh