From bb9b9c1e207744fc2ea5163688e9379530a3057b Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Sun, 4 Dec 2022 10:14:15 -0500 Subject: [PATCH] CI: Replace unmigrated symbol test with non-Kconfig introduction test Now that all symbols have been migrated to Kconfig, or are part of the CFG namespace we do not need a complex check for unmigrated CONFIG symbols. Any instance of #define (or #undef) or a CONFIG value is wrong, so cause CI to fail. This test is not as strict as possible yet as we have more symbols that were not previously caught to deal with. Signed-off-by: Tom Rini --- .azure-pipelines.yml | 31 ++++++------------------------- .gitlab-ci.yml | 29 ++++++----------------------- 2 files changed, 12 insertions(+), 48 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index d31b183..8a63b1f 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -53,37 +53,18 @@ stages: -j$(sysctl -n hw.logicalcpu) displayName: 'Perform tools-only build' - - job: check_for_migrated_symbols_in_board_header - displayName: 'Check for migrated symbols in board header' + - job: check_for_new_CONFIG_symbols_outside_Kconfig + displayName: 'Check for new CONFIG symbols outside Kconfig' pool: vmImage: $(ubuntu_vm) container: image: $(ci_runner_image) options: $(container_option) steps: - - script: | - KSYMLST=`mktemp` - KUSEDLST=`mktemp` - RET=0 - 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' ; \ - grep '#undef[[:blank:]]CONFIG_' $CFG | \ - sed -n 's/#undef.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p') | \ - sort -u > ${KUSEDLST} || true - NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | \ - cut -d , -f 3` - if [[ $NUM -ne 0 ]]; then - echo "Unmigrated symbols found in $CFG:" - comm -12 ${KSYMLST} ${KUSEDLST} - RET=1 - fi - done - exit $RET + # If grep succeeds and finds a match the test fails as we should + # have no matches. + - script: git grep -E '^#[[:blank:]]*(define|undef)[[:blank:]]*CONFIG_' + include/configs `find arch -name config.h` && exit 1 || exit 0 - job: cppcheck displayName: 'Static code analysis with cppcheck' diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e14b57a..afd8394 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -124,31 +124,14 @@ build all other platforms: exit $ret; fi; -check for migrated symbols in board header: +check for new CONFIG symbols outside Kconfig: stage: testsuites script: - - KSYMLST=`mktemp`; - KUSEDLST=`mktemp`; - RET=0; - 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' ; - grep '#undef[[:blank:]]CONFIG_' $CFG | - sed -n 's/#undef.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p') | - sort -u > ${KUSEDLST} || true; - NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | - cut -d , -f 3`; - if [[ $NUM -ne 0 ]]; then - echo "Unmigrated symbols found in $CFG:"; - comm -12 ${KSYMLST} ${KUSEDLST}; - RET=1; - fi; - done; - exit $RET + - git config --global --add safe.directory "${CI_PROJECT_DIR}" + # If grep succeeds and finds a match the test fails as we should + # have no matches. + - git grep -E '^#[[:blank:]]*(define|undef)[[:blank:]]*CONFIG_' + include/configs `find arch -name config.h` && exit 1 || exit 0 # QA jobs for code analytics # static code analysis with cppcheck (we can add --enable=all later) -- 2.7.4