summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2021-12-14 13:36:41 -0500
committerTom Rini <trini@konsulko.com>2021-12-27 16:20:18 -0500
commitc1a7de57027de8fb0ba5097623157c1745a50496 (patch)
treec1c9310c6f76042e3e3be0d17beaa84cf19d81df /.gitlab-ci.yml
parent7e11f95b02c8c9088c4b470b6633ac521ef8fc03 (diff)
CI: Test for unmigrated CONFIG symbols in board config.h files
Now that all symbols that exist in Kconfig no longer also have boards setting them in the board config.h file, add a CI test to catch new instances of this, and fail. Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml21
1 files changed, 21 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c89daeadc..d06cca45fd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -105,6 +105,27 @@ build all other platforms:
exit $ret;
fi;
+check for migrated symbols in board header:
+ stage: testsuites
+ script:
+ - KSYMLST=`mktemp`;
+ KUSEDLST=`mktemp`;
+ cat `find . -name "Kconfig*"` |
+ sed -n -e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p'
+ -e 's/^\s*menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p'
+ | sort -u > $KSYMLST;
+ for CFG in `find include/configs -name "*.h"`; do
+ grep '#define[[:blank:]]CONFIG_' $CFG |
+ sed -n 's/#define.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' |
+ sort -u > ${KUSEDLST} || true;
+ NUM=`comm -12 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} |
+ cut -d , -f 3`;
+ if [[ $NUM -ne 0 ]]; then
+ echo "Unmigrated symbols found in $CFG";
+ exit 1;
+ fi;
+ done
+
# QA jobs for code analytics
# static code analysis with cppcheck (we can add --enable=all later)
cppcheck: