mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
bd3bec2ac3
This reverts commit 4aa921a836
.
354 lines
11 KiB
YAML
354 lines
11 KiB
YAML
.host_test_template:
|
|
extends: .rules:labels:host_test
|
|
stage: host_test
|
|
image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
|
|
tags:
|
|
- host_test
|
|
dependencies: []
|
|
|
|
.host_fuzzer_test_template:
|
|
extends:
|
|
- .host_test_template
|
|
- .rules:labels:fuzzer_test-weekend_test-only
|
|
image: $CI_DOCKER_REGISTRY/afl-fuzzer-test
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- ${FUZZER_TEST_DIR}/out/crashes
|
|
- ${FUZZER_TEST_DIR}/fuzz_output.log
|
|
expire_in: 1 week
|
|
script:
|
|
- export AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 && export AFL_SKIP_CPUFREQ=1
|
|
- cd ${FUZZER_TEST_DIR}
|
|
# run AFL fuzzer for one hour
|
|
- ( ( make ${FUZZER_PARAMS} fuzz | tee fuzz_output.log | grep -v '\(Fuzzing test case\|Entering queue cycle\)' ) || pkill sleep ) &
|
|
- ( sleep 3600 || mkdir -p out/crashes/env_failed ) && pkill afl-fuz
|
|
# check no crashes found
|
|
- test -z "$(ls out/crashes/)" || exit 1
|
|
|
|
test_nvs_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd components/nvs_flash/test_nvs_host
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh make test
|
|
|
|
test_nvs_coverage:
|
|
extends:
|
|
- .host_test_template
|
|
- .rules:labels:nvs_coverage-only
|
|
artifacts:
|
|
paths:
|
|
- components/nvs_flash/test_nvs_host/coverage_report
|
|
expire_in: 1 week
|
|
script:
|
|
- cd components/nvs_flash/test_nvs_host
|
|
- make coverage_report
|
|
|
|
test_partition_table_on_host:
|
|
extends: .host_test_template
|
|
tags:
|
|
- build
|
|
script:
|
|
- cd components/partition_table/test_gen_esp32part_host
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./gen_esp32part_tests.py
|
|
|
|
test_wl_on_host:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
paths:
|
|
- components/wear_levelling/test_wl_host/coverage_report.zip
|
|
expire_in: 1 week
|
|
script:
|
|
- cd components/wear_levelling/test_wl_host
|
|
- make test
|
|
|
|
test_fatfs_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd components/fatfs/test_fatfs_host/
|
|
- make test
|
|
|
|
test_ldgen_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/ldgen/test
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_fragments.py
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_generation.py
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_entity.py
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_output_commands.py
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
|
|
test_mdns_fuzzer_on_host:
|
|
extends: .host_fuzzer_test_template
|
|
variables:
|
|
FUZZER_TEST_DIR: components/mdns/test_afl_fuzz_host
|
|
|
|
test_lwip_dns_fuzzer_on_host:
|
|
extends: .host_fuzzer_test_template
|
|
variables:
|
|
FUZZER_TEST_DIR: components/lwip/test_afl_host
|
|
FUZZER_PARAMS: MODE=dns
|
|
|
|
test_lwip_dhcp_fuzzer_on_host:
|
|
extends: .host_fuzzer_test_template
|
|
variables:
|
|
FUZZER_TEST_DIR: components/lwip/test_afl_host
|
|
FUZZER_PARAMS: MODE=dhcp_client
|
|
|
|
test_lwip_dhcps_fuzzer_on_host:
|
|
extends: .host_fuzzer_test_template
|
|
variables:
|
|
FUZZER_TEST_DIR: components/lwip/test_afl_host
|
|
FUZZER_PARAMS: MODE=dhcp_server
|
|
|
|
test_compile_fuzzers:
|
|
extends: .host_test_template
|
|
image: $CI_DOCKER_REGISTRY/afl-fuzzer-test
|
|
script:
|
|
- cd ${IDF_PATH}/components/lwip/test_afl_host
|
|
- make MODE=dhcp_server
|
|
- make MODE=dhcp_client
|
|
- make MODE=dns
|
|
- cd ${IDF_PATH}/components/mdns/test_afl_fuzz_host
|
|
- make
|
|
|
|
test_spiffs_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd components/spiffs/test_spiffs_host/
|
|
- make test
|
|
|
|
test_multi_heap_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd components/heap/test_multi_heap_host
|
|
- ./test_all_configs.sh
|
|
|
|
test_certificate_bundle_on_host:
|
|
extends: .host_test_template
|
|
tags:
|
|
- build
|
|
script:
|
|
- cd components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_gen_crt_bundle.py
|
|
|
|
test_confserver:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/kconfig_new/test/confserver
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_confserver.py
|
|
|
|
test_gen_kconfig_doc:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/kconfig_new/test/gen_kconfig_doc/
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_target_visibility.py
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_kconfig_out.py
|
|
|
|
test_confgen:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/kconfig_new/test/confgen/
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_confgen.py
|
|
|
|
test_idf_monitor:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
# save artifacts always in order to access results which were retried without consequent failure
|
|
when: always
|
|
paths:
|
|
- tools/test_idf_monitor/outputs/*
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_idf_monitor
|
|
- ./run_test_idf_monitor.py
|
|
|
|
test_idf_size:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- tools/test_idf_size/output
|
|
- tools/test_idf_size/.coverage
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_idf_size
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test.sh
|
|
|
|
test_idf_py:
|
|
extends: .host_test_template
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_idf_py
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_idf_py.py
|
|
|
|
test_idf_tools:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- tools/tools.new.json
|
|
expire_in: 1 week
|
|
script:
|
|
# Remove Xtensa and ULP toolchains from the PATH, tests will expect a clean environment
|
|
- export PATH=$(p=$(echo $PATH | tr ":" "\n" | grep -v "/root/.espressif/tools\|/opt/espressif" | tr "\n" ":"); echo ${p%:})
|
|
- cd ${IDF_PATH}/tools/test_idf_tools
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_idf_tools.py
|
|
|
|
test_esp_err_to_name_on_host:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- components/esp32/esp_err_to_name.c
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/tools/
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 2.7.15 ./gen_esp_err_to_name.py
|
|
- git diff --exit-code -- ../components/esp_common/src/esp_err_to_name.c || { echo 'Differences found. Please run gen_esp_err_to_name.py and commit the changes.'; exit 1; }
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.4.8 ./gen_esp_err_to_name.py
|
|
- git diff --exit-code -- ../components/esp_common/src/esp_err_to_name.c || { echo 'Differences found between running under Python 2 and 3.'; exit 1; }
|
|
|
|
.test_efuse_table_on_host_template:
|
|
extends: .host_test_template
|
|
variables:
|
|
IDF_TARGET: "esp32"
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- components/efuse/${IDF_TARGET}/esp_efuse_table.c
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/components/efuse/
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 2.7.15 ./efuse_table_gen.py -t "${IDF_TARGET}" ${IDF_PATH}/components/efuse/${IDF_TARGET}/esp_efuse_table.csv
|
|
- git diff --exit-code -- ${IDF_TARGET}/esp_efuse_table.c || { echo 'Differences found for ${IDF_TARGET} target. Please run make efuse_common_table or idf.py efuse_common_table and commit the changes.'; exit 1; }
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.4.8 ./efuse_table_gen.py -t "${IDF_TARGET}" ${IDF_PATH}/components/efuse/${IDF_TARGET}/esp_efuse_table.csv
|
|
- git diff --exit-code -- ${IDF_TARGET}/esp_efuse_table.c || { echo 'Differences found between running under Python 2 and 3.'; exit 1; }
|
|
- cd ${IDF_PATH}/components/efuse/test_efuse_host
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./efuse_tests.py
|
|
|
|
test_efuse_table_on_host_esp32:
|
|
extends: .test_efuse_table_on_host_template
|
|
|
|
test_efuse_table_on_host_esp32s2:
|
|
extends: .test_efuse_table_on_host_template
|
|
variables:
|
|
IDF_TARGET: esp32s2
|
|
|
|
test_efuse_table_on_host_esp32c3:
|
|
extends: .test_efuse_table_on_host_template
|
|
variables:
|
|
IDF_TARGET: esp32c3
|
|
|
|
test_espcoredump:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- components/espcoredump/test/**/.coverage
|
|
- components/espcoredump/test/**/output
|
|
expire_in: 1 week
|
|
variables:
|
|
IDF_COREDUMP_ELF_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/idf/idf-coredump-elf.git"
|
|
IDF_COREDUMP_ELF_TAG: idf-20210915
|
|
# install CMake version specified in tools.json
|
|
SETUP_TOOLS_LIST: "all"
|
|
script:
|
|
- retry_failed git clone ${IDF_COREDUMP_ELF_REPO} -b $IDF_COREDUMP_ELF_TAG
|
|
- cd components/espcoredump/test/
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_espcoredump.sh ${CI_PROJECT_DIR}/idf-coredump-elf
|
|
|
|
test_logtrace_proc:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- tools/esp_app_trace/test/logtrace/output
|
|
- tools/esp_app_trace/test/logtrace/.coverage
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/tools/esp_app_trace/test/logtrace
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test.sh
|
|
|
|
test_sysviewtrace_proc:
|
|
extends: .host_test_template
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- tools/esp_app_trace/test/sysview/output
|
|
- tools/esp_app_trace/test/sysview/.coverage
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/tools/esp_app_trace/test/sysview
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test.sh
|
|
|
|
test_mkdfu:
|
|
extends: .host_test_template
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_mkdfu
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_mkdfu.py
|
|
|
|
test_mkuf2:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_mkuf2
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ./test_mkuf2.py
|
|
|
|
test_docs:
|
|
extends: .host_test_template
|
|
image: $ESP_IDF_DOC_ENV_IMAGE
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- docs/test/_build/*/*/*/html/*
|
|
expire_in: 1 week
|
|
script:
|
|
- cd ${IDF_PATH}/docs/test
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 pip install -r ${IDF_PATH}/docs/requirements.txt
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./test_docs.py
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./test_sphinx_idf_extensions.py
|
|
|
|
test_sbom:
|
|
extends:
|
|
- .host_test_template
|
|
- .rules:patterns:sbom
|
|
script:
|
|
- python ${IDF_PATH}/tools/test_sbom/test_submodules.py
|
|
|
|
test_autocomplete:
|
|
extends: .host_test_template
|
|
image: $CI_DOCKER_REGISTRY/linux-shells:1
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- ${IDF_PATH}/*.out
|
|
expire_in: 1 week
|
|
script:
|
|
# workaround for issues with missing requirements for python2.7
|
|
- pyenv global 2.7.18 && pip2.7 install -r requirements.txt
|
|
- ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ${IDF_PATH}/tools/ci/test_autocomplete.py
|
|
|
|
test_detect_python:
|
|
extends: .host_test_template
|
|
image: $CI_DOCKER_REGISTRY/linux-shells:1
|
|
script:
|
|
- cd ${IDF_PATH}
|
|
- shellcheck -s sh tools/detect_python.sh
|
|
- shellcheck -s bash tools/detect_python.sh
|
|
- shellcheck -s dash tools/detect_python.sh
|
|
- "bash -c '. tools/detect_python.sh && echo Our Python: ${ESP_PYTHON?Python is not set}'"
|
|
- "dash -c '. tools/detect_python.sh && echo Our Python: ${ESP_PYTHON?Python is not set}'"
|
|
- "zsh -c '. tools/detect_python.sh && echo Our Python: ${ESP_PYTHON?Python is not set}'"
|
|
- "fish -c 'source tools/detect_python.fish && echo Our Python: $ESP_PYTHON'"
|
|
|
|
test_nvs_page:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/components/nvs_flash/host_test/nvs_page_test
|
|
- idf.py build
|
|
- build/host_nvs_page_test.elf
|