diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index d31b183ba6..8a63b1f434 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 e14b57a5e0..afd83948c1 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)