mirror of
https://github.com/espressif/esp-idf
synced 2025-03-08 15:49:08 -05:00
feat(ci): add ast-grep rules to lint kconfig in the hal
This commit is contained in:
parent
1c13798cd4
commit
09ca9dfd2c
@ -1,2 +1,2 @@
|
||||
ruleDirs:
|
||||
- ./tools/ci/sg_rules
|
||||
- tools/ci/sg_rules
|
||||
|
114
tools/ci/sg_rules/no_kconfig_in_hal_component.yml
Normal file
114
tools/ci/sg_rules/no_kconfig_in_hal_component.yml
Normal file
@ -0,0 +1,114 @@
|
||||
# Refer to https://ast-grep.github.io/guide/rule-config.html for Rule Essentials
|
||||
id: no-kconfig-in-hal-component
|
||||
message: Don't use Kconfig macros in the hal component
|
||||
severity: error # error, warning, info, hint
|
||||
note: hal component should be able to deliver without 3rd party config system
|
||||
language: C
|
||||
files:
|
||||
- "components/hal/**/*"
|
||||
ignores:
|
||||
# porting layer and test apps are allowed to use Kconfig macros
|
||||
- "components/hal/platform_port/**/*"
|
||||
- "components/hal/test_apps/**/*"
|
||||
# the following files should be refactored to remove Kconfig macros
|
||||
- "components/hal/adc_hal.c"
|
||||
- "components/hal/adc_oneshot_hal.c"
|
||||
- "components/hal/apm_hal.c"
|
||||
- "components/hal/ecdsa_hal.c"
|
||||
- "components/hal/emac_hal.c"
|
||||
- "components/hal/mmu_hal.c"
|
||||
- "components/hal/sha_hal.c"
|
||||
- "components/hal/spi_flash_encrypt_hal_iram.c"
|
||||
- "components/hal/spi_flash_hal_iram.c"
|
||||
- "components/hal/spi_flash_hal.c"
|
||||
- "components/hal/spi_hal_iram.c"
|
||||
- "components/hal/spi_hal.c"
|
||||
- "components/hal/spi_slave_hal_iram.c"
|
||||
- "components/hal/twai_hal_iram.c"
|
||||
- "components/hal/twai_hal.c"
|
||||
- "components/hal/usb_dwc_hal.c"
|
||||
- "components/hal/wdt_hal_iram.c"
|
||||
- "components/hal/esp32/efuse_hal.c"
|
||||
- "components/hal/esp32/gpio_hal_workaround.c"
|
||||
- "components/hal/esp32/include/hal/twai_ll.h"
|
||||
- "components/hal/esp32/include/hal/uart_ll.h"
|
||||
- "components/hal/esp32c2/clk_tree_hal.c"
|
||||
- "components/hal/*/efuse_hal.c"
|
||||
- "components/hal/include/hal/adc_types.h"
|
||||
- "components/hal/include/hal/adc_hal.h"
|
||||
- "components/hal/include/hal/apm_hal.h"
|
||||
- "components/hal/include/hal/ecdsa_hal.h"
|
||||
- "components/hal/include/hal/emac_hal.h"
|
||||
- "components/hal/include/hal/gpio_hal.h"
|
||||
- "components/hal/include/hal/mmu_hal.h"
|
||||
- "components/hal/include/hal/pmu_types.h"
|
||||
- "components/hal/include/hal/sha_types.h"
|
||||
- "components/hal/include/hal/spi_slave_hal.h"
|
||||
- "components/hal/include/hal/spi_types.h"
|
||||
- "components/hal/include/hal/touch_sensor_legacy_types.h"
|
||||
- "components/hal/include/hal/twai_types.h"
|
||||
rule:
|
||||
any:
|
||||
- kind: argument_list
|
||||
has:
|
||||
kind: identifier
|
||||
pattern: $N
|
||||
- kind: preproc_if
|
||||
has:
|
||||
field: condition
|
||||
pattern: $M
|
||||
constraints:
|
||||
N:
|
||||
regex: "^CONFIG"
|
||||
M:
|
||||
regex: "^CONFIG"
|
||||
|
||||
---
|
||||
|
||||
id: no-sdkconfig-include-in-hal-component
|
||||
message: Don't include sdkconfig.h in the hal component
|
||||
severity: error # error, warning, info, hint
|
||||
note: hal component should be able to deliver without 3rd party config system
|
||||
language: C
|
||||
files:
|
||||
- "components/hal/**/*"
|
||||
ignores:
|
||||
# porting layer and test apps are allowed to include sdkconfig.h
|
||||
- "components/hal/platform_port/**/*"
|
||||
- "components/hal/test_apps/**/*"
|
||||
# the following files should be refactored to remove sdkconfig.h
|
||||
- "components/hal/adc_hal.c"
|
||||
- "components/hal/adc_oneshot_hal.c"
|
||||
- "components/hal/cache_hal.c"
|
||||
- "components/hal/emac_hal.c"
|
||||
- "components/hal/mmu_hal.c"
|
||||
- "components/hal/mpi_hal.c"
|
||||
- "components/hal/spi_flash_hal_iram.c"
|
||||
- "components/hal/twai_hal_iram.c"
|
||||
- "components/hal/twai_hal.c"
|
||||
- "components/hal/usb_dwc_hal.c"
|
||||
- "components/hal/efuse_hal.c"
|
||||
- "components/hal/esp32/include/hal/twai_ll.h"
|
||||
- "components/hal/esp32c2/clk_tree_hal.c"
|
||||
- "components/hal/*/efuse_hal.c"
|
||||
- "components/hal/include/hal/adc_types.h"
|
||||
- "components/hal/include/hal/ecdsa_hal.h"
|
||||
- "components/hal/include/hal/modem_clock_hal.h"
|
||||
- "components/hal/include/hal/mpi_hal.h"
|
||||
- "components/hal/include/hal/pmu_types.h"
|
||||
- "components/hal/include/hal/rtc_hal.h"
|
||||
- "components/hal/include/hal/sha_types.h"
|
||||
- "components/hal/include/hal/spi_slave_hal.h"
|
||||
- "components/hal/include/hal/spi_types.h"
|
||||
- "components/hal/include/hal/touch_sensor_legacy_types.h"
|
||||
- "components/hal/include/hal/twai_hal.h"
|
||||
- "components/hal/include/hal/twai_types.h"
|
||||
rule:
|
||||
kind: preproc_include
|
||||
has:
|
||||
field: path
|
||||
pattern: $N
|
||||
constraints:
|
||||
N:
|
||||
regex: '^["<]sdkconfig' # match "sdkconfig.h" or <sdkconfig.h>
|
||||
fix: ''
|
@ -5,7 +5,7 @@ severity: error # error, warning, info, hint
|
||||
note: Only APIs prefixed with "esp_rom_" are treated as public.
|
||||
language: C
|
||||
files:
|
||||
- "./examples/**/*"
|
||||
- "examples/**/*"
|
||||
rule:
|
||||
kind: preproc_include
|
||||
has:
|
||||
@ -22,7 +22,7 @@ severity: error # error, warning, info, hint
|
||||
note: Only APIs prefixed with "esp_rom_" are treated as public.
|
||||
language: Cpp
|
||||
files:
|
||||
- "./examples/**/*"
|
||||
- "examples/**/*"
|
||||
rule:
|
||||
kind: preproc_include
|
||||
has:
|
||||
|
@ -5,9 +5,9 @@ severity: error # error, warning, info, hint
|
||||
note: The standard assert function depends on newlib(G1) component, but hal is a G0 component
|
||||
language: C
|
||||
files:
|
||||
- "./components/hal/**/*"
|
||||
- "components/hal/**/*"
|
||||
ignores:
|
||||
- "./components/hal/test_apps/**/*"
|
||||
- "components/hal/test_apps/**/*"
|
||||
rule:
|
||||
kind: expression_statement
|
||||
pattern: assert($$$ARGS);
|
||||
@ -21,9 +21,9 @@ severity: error # error, warning, info, hint
|
||||
note: Please use hal/assert.h to replace assert.h
|
||||
language: C
|
||||
files:
|
||||
- "./components/hal/**/*"
|
||||
- "components/hal/**/*"
|
||||
ignores:
|
||||
- "./components/hal/test_apps/**/*"
|
||||
- "components/hal/test_apps/**/*"
|
||||
rule:
|
||||
kind: preproc_include
|
||||
has:
|
||||
|
Loading…
x
Reference in New Issue
Block a user