blob: 28e8d6ee41ac857b80fbdf9bb2fb55e446ae2051 [file] [log] [blame]
Martin Roth0ad5fbd2020-12-24 12:06:38 -07001#!/usr/bin/env sh
Martin Roth1c9c4b82016-11-30 10:29:39 -07002#
Patrick Georgi7333a112020-05-08 20:48:04 +02003# SPDX-License-Identifier: GPL-2.0-only
4
Martin Roth1c9c4b82016-11-30 10:29:39 -07005# DESCR: Check for auto-included headers
6
Martin Rothd81debd2022-06-03 00:06:57 -06007LINTDIR="$(
8 cd -- "$(dirname "$0")" > /dev/null 2>&1 || return
9 pwd -P
10)"
11
12# shellcheck source=helper_functions.sh
13. "${LINTDIR}/helper_functions.sh"
Martin Roth1c9c4b82016-11-30 10:29:39 -070014
15INCLUDED_DIRS='^src/'
16EXCLUDED_FILES='src/include/kconfig.h'
17
Martin Rothcd9110b2022-09-05 10:44:57 -060018HEADER_FILES="k\?config rules compiler"
Martin Roth1c9c4b82016-11-30 10:29:39 -070019
Martin Rothf6ba75c2022-09-05 11:22:11 -060020TESTFILE1="src/lib/version.c"
21TESTFILE2="src/lib/string.c"
22TESTFILE3="src/lib/malloc.c"
23TESTFILE4="src/lib/hardwaremain.c"
24EXPECTED_FAILURES=4
25
26# Configure to make sure tests fail
27if [ "$1" = "--test" ]; then
28 sed -i.bak "s|^.*SPDX-License-Identifier.*|&\n\n#include <config.h>\n|" "${TESTFILE1}"
29 sed -i.bak "s|^.*SPDX-License-Identifier.*|&\n\n#include \"kconfig.h\"\n|" "${TESTFILE2}"
30 sed -i.bak "s|^.*SPDX-License-Identifier.*|&\n\n#include \"compiler.h\"\n|" "${TESTFILE3}"
31 sed -i.bak "s|^.*SPDX-License-Identifier.*|&\n\n#include <rules.h>\n|" "${TESTFILE4}"
32 echo "Expect ${EXPECTED_FAILURES} failures."
33 exit 0
34elif [ "$1" = "--reset" ]; then
35 mv "${TESTFILE1}.bak" "${TESTFILE1}"
36 mv "${TESTFILE2}.bak" "${TESTFILE2}"
37 mv "${TESTFILE3}.bak" "${TESTFILE3}"
38 mv "${TESTFILE4}.bak" "${TESTFILE4}"
39 exit 0
40fi
41
Martin Roth1c9c4b82016-11-30 10:29:39 -070042for header in $HEADER_FILES; do
Martin Rothd81debd2022-06-03 00:06:57 -060043 ${GREP_FILES} -n "#[[:blank:]]*include[[:blank:]]\+[\"<][[:blank:]]*${header}\.h[[:blank:]]*[\">]" | \
Martin Roth1c9c4b82016-11-30 10:29:39 -070044 grep "$INCLUDED_DIRS" | \
45 grep -v "$EXCLUDED_FILES"; \
Alex Thiessen687b9612018-01-18 23:11:07 +000046done