mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
22637ff824
Currently sbom manifest is checked only in .gitmodules and this check is done in pre-commit and also in CI. Meaning it's running three times(pre-commit before push if user has it enabled, in CI as there is the pre-commit run again and again with test in CI). Since esp-idf-sbom contains a full manifest validation support and pre-commit plugin for it, let's use it. This removes all the current sbom testing and replaces it with a signle pre-commit plugin which validates all manifests files(sbom.yml, idf_component.yml, .gitmodules and also referenced manifests) in repository. Note that this checks all manifests, not only ones which were modified. The check is reasonably fast though, so it should not cause any problem. The reason for validating all manifest files is that we want to make sure that the sbom information in .gitmodules is updated too and that the hash recorded in .gitmodules is up-to-date. Meaning submodule update would not trigger this plugin, because no manifest was changed. Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
364 lines
9.9 KiB
YAML
364 lines
9.9 KiB
YAML
.host_test_template:
|
|
extends: .rules:test:host_test
|
|
stage: host_test
|
|
image: $ESP_ENV_IMAGE
|
|
variables:
|
|
PYTHON_VER: 3.6.13
|
|
tags:
|
|
- host_test
|
|
dependencies: []
|
|
needs: [] # run host_test jobs immediately
|
|
|
|
test_nvs_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd components/nvs_flash/test_nvs_host
|
|
- make test
|
|
|
|
test_nvs_coverage:
|
|
extends:
|
|
- .host_test_template
|
|
- .rules:labels:nvs_coverage
|
|
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
|
|
# the 'long' host tests take approx 11 hours on our current runners. Adding some margin here for possible CPU contention
|
|
timeout: 18 hours
|
|
|
|
test_partition_table_on_host:
|
|
extends: .host_test_template
|
|
tags:
|
|
- build
|
|
script:
|
|
- cd components/partition_table/test_gen_esp32part_host
|
|
- ./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
|
|
- ./test_fragments.py
|
|
- ./test_generation.py
|
|
- ./test_entity.py
|
|
- ./test_output_commands.py
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
|
|
.host_fuzzer_test_template:
|
|
extends:
|
|
- .host_test_template
|
|
- .rules:labels:fuzzer_test-weekend_test
|
|
image: $AFL_FUZZER_TEST_IMAGE
|
|
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_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_spiffs_on_host:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd components/spiffs/test_spiffs_host/
|
|
- make test
|
|
- cd ../test_spiffsgen
|
|
- ./test_spiffsgen.py
|
|
|
|
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/
|
|
- ./test_gen_crt_bundle.py
|
|
|
|
test_confserver:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/kconfig_new/test/confserver
|
|
- ./test_confserver.py
|
|
|
|
test_gen_kconfig_doc:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/kconfig_new/test/gen_kconfig_doc/
|
|
- ./test_target_visibility.py
|
|
- ./test_kconfig_out.py
|
|
|
|
test_confgen:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd tools/kconfig_new/test/confgen/
|
|
- ./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
|
|
- ./test.sh
|
|
|
|
test_idf_py:
|
|
extends: .host_test_template
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_idf_py
|
|
- ./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
|
|
- ./test_idf_tools.py
|
|
|
|
test_install_python_env:
|
|
extends: .host_test_template
|
|
script:
|
|
# Test for create virtualenv. It must be invoked from Python, not from virtualenv.
|
|
# Remove tools gdbgui, pygdbmi, python-socketio, jinja2, itsdangerous, pygdbmi for virtualenv test to reduce virtualenv setup time
|
|
# since they are not necessary for this test and are tested elsewhere
|
|
- sed -E -i '/(^gdbgui|^pygdbmi|^python-socketio|^jinja2|^itsdangerous|^pygdbmi)/d' $IDF_PATH/requirements.txt
|
|
- cd ${IDF_PATH}/tools
|
|
- python3 ./idf_tools.py install-python-env
|
|
timeout: 4 hours # this requires longer timeout
|
|
|
|
.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/
|
|
- ./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; }
|
|
- cd ${IDF_PATH}/components/efuse/test_efuse_host
|
|
- ./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_esp32s3:
|
|
extends: .test_efuse_table_on_host_template
|
|
variables:
|
|
IDF_TARGET: esp32s3
|
|
|
|
test_efuse_table_on_host_esp32c3:
|
|
extends: .test_efuse_table_on_host_template
|
|
variables:
|
|
IDF_TARGET: esp32c3
|
|
|
|
test_efuse_table_on_host_esp32h2:
|
|
extends: .test_efuse_table_on_host_template
|
|
variables:
|
|
IDF_TARGET: esp32h2
|
|
|
|
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
|
|
- ./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
|
|
- ./test.sh
|
|
|
|
test_mkdfu:
|
|
extends: .host_test_template
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_mkdfu
|
|
- ./test_mkdfu.py
|
|
|
|
test_mkuf2:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/tools/test_mkuf2
|
|
- ./test_mkuf2.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:
|
|
- ${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/test_nvs_page_host.elf
|
|
|
|
test_log:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/components/log/host_test/log_test
|
|
- idf.py build
|
|
- build/test_log_host.elf
|
|
|
|
test_esp_event:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/components/esp_event/host_test/esp_event_unit_test
|
|
- idf.py build
|
|
- build/test_esp_event_host.elf
|
|
|
|
test_esp_timer_cxx:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/examples/cxx/experimental/experimental_cpp_component/host_test/esp_timer
|
|
- idf.py build
|
|
- build/test_esp_timer_cxx_host.elf
|
|
|
|
test_eh_frame_parser:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/components/esp_system/test_eh_frame_parser
|
|
- make
|
|
- ./eh_frame_test
|
|
|
|
test_rom_on_linux_works:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/components/esp_rom/host_test/rom_test
|
|
- idf.py build
|
|
- build/test_rom_host.elf
|
|
|
|
test_cxx_gpio:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/examples/cxx/experimental/experimental_cpp_component/host_test/gpio
|
|
- idf.py build
|
|
- build/test_gpio_cxx_host.elf
|
|
|
|
test_linux_example:
|
|
extends: .host_test_template
|
|
script:
|
|
- cd ${IDF_PATH}/examples/build_system/cmake/linux_host_app
|
|
- idf.py build
|
|
- timeout 5 ./build/linux_host_app.elf >test.log || true
|
|
- grep "Restarting" test.log
|