2019-06-29 00:39:21 +08:00
.host_test_template :
2021-02-09 12:31:38 +08:00
extends : .rules:test:host_test
2019-06-29 00:39:21 +08:00
stage : host_test
2021-05-26 10:44:20 +02:00
image : $ESP_ENV_IMAGE
2019-06-29 00:39:21 +08:00
tags :
- host_test
2023-07-19 10:19:44 +08:00
dependencies : # set dependencies to null to avoid missing artifacts issue
2022-07-12 16:48:54 +08:00
# run host_test jobs immediately, only after upload cache
2022-06-07 09:05:15 +08:00
needs :
2022-07-12 16:48:54 +08:00
- job : upload-pip-cache
optional : true
artifacts : false
- job : upload-submodules-cache
optional : true
artifacts : false
2023-11-01 12:43:19 +01:00
- pipeline_variables
2019-06-29 00:39:21 +08:00
test_nvs_on_host :
extends : .host_test_template
script :
- cd components/nvs_flash/test_nvs_host
2021-05-26 10:44:20 +02:00
- make test
2019-06-29 00:39:21 +08:00
test_nvs_coverage :
2020-09-27 11:20:53 +08:00
extends :
- .host_test_template
2021-02-09 12:31:38 +08:00
- .rules:labels:nvs_coverage
2019-06-29 00:39:21 +08:00
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
2021-01-05 17:39:50 +11:00
# the 'long' host tests take approx 11 hours on our current runners. Adding some margin here for possible CPU contention
timeout : 18 hours
2019-06-29 00:39:21 +08:00
test_partition_table_on_host :
extends : .host_test_template
script :
- cd components/partition_table/test_gen_esp32part_host
2021-05-26 10:44:20 +02:00
- ./gen_esp32part_tests.py
2019-06-29 00:39:21 +08:00
test_ldgen_on_host :
extends : .host_test_template
script :
- cd tools/ldgen/test
2021-12-24 18:03:13 +08:00
- export PYTHONPATH=$PYTHONPATH:..
2021-12-24 09:41:47 +08:00
- python -m unittest
2020-11-11 11:31:17 +08:00
variables :
LC_ALL : C.UTF-8
2019-06-29 00:39:21 +08:00
2021-10-09 15:42:14 +08:00
test_reproducible_build :
extends : .host_test_template
script :
- ./tools/ci/test_reproducible_build.sh
artifacts :
when : on_failure
paths :
- "**/sdkconfig"
- "**/build*/*.bin"
- "**/build*/*.elf"
- "**/build*/*.map"
- "**/build*/flasher_args.json"
- "**/build*/*.bin"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
expire_in : 1 week
2019-06-29 00:39:21 +08:00
test_spiffs_on_host :
extends : .host_test_template
script :
2022-08-25 15:23:59 +02:00
- cd components/spiffs/test_spiffsgen/
2021-05-26 10:44:20 +02:00
- ./test_spiffsgen.py
2019-06-29 00:39:21 +08:00
2021-09-22 00:32:54 +02:00
test_fatfsgen_on_host :
extends : .host_test_template
script :
- cd components/fatfs/test_fatfsgen/
- ./test_fatfsgen.py
2021-09-22 00:32:54 +02:00
- ./test_wl_fatfsgen.py
2022-04-04 15:33:00 +02:00
- ./test_fatfsparse.py
2021-09-22 00:32:54 +02:00
2019-06-29 00:39:21 +08:00
test_multi_heap_on_host :
extends : .host_test_template
script :
- cd components/heap/test_multi_heap_host
- ./test_all_configs.sh
2019-09-29 18:04:34 +08:00
test_certificate_bundle_on_host :
extends : .host_test_template
script :
- cd components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/
2021-05-26 10:44:20 +02:00
- ./test_gen_crt_bundle.py
2019-09-29 18:04:34 +08:00
2023-04-20 22:50:11 +08:00
test_gdbstub_on_host :
extends : .host_test_template
script :
- cd components/esp_gdbstub/test_gdbstub_host
- make test
2019-08-21 14:24:14 +02:00
test_idf_py :
extends : .host_test_template
variables :
LC_ALL : C.UTF-8
script :
- cd ${IDF_PATH}/tools/test_idf_py
2021-05-26 10:44:20 +02:00
- ./test_idf_py.py
2022-08-09 15:39:23 +02:00
- ./test_hints.py
2019-08-21 14:24:14 +02:00
2022-08-16 11:19:17 +08:00
# Test for create virtualenv. It must be invoked from Python, not from virtualenv.
# Use docker image system python without any extra dependencies
2019-06-29 00:39:21 +08:00
test_idf_tools :
2022-08-16 11:19:17 +08:00
extends :
- .host_test_template
2023-09-26 13:24:26 +02:00
- .before_script:minimal
2021-06-05 15:59:42 +07:00
artifacts :
when : on_failure
paths :
- tools/tools.new.json
2022-08-11 14:31:02 +02:00
- tools/test_idf_tools/test_python_env_logs.txt
2021-06-05 15:59:42 +07:00
expire_in : 1 week
2022-08-16 11:19:17 +08:00
image :
name : $ESP_ENV_IMAGE
entrypoint : [ "" ] # use system python3. no extra pip package installed
2019-06-29 00:39:21 +08:00
script :
2022-08-20 12:00:54 +04:00
# Tools must be downloaded for testing
2023-09-14 12:55:24 +07:00
- python3 ${IDF_PATH}/tools/idf_tools.py download required qemu-riscv32 qemu-xtensa
2019-06-29 00:39:21 +08:00
- cd ${IDF_PATH}/tools/test_idf_tools
2022-08-16 11:19:17 +08:00
- python3 -m pip install jsonschema
2023-09-14 12:55:24 +07:00
- python3 ./test_idf_tools.py -v
2021-09-16 16:48:03 +02:00
- python3 ./test_idf_tools_python_env.py
2019-06-29 00:39:21 +08:00
2021-07-21 09:43:26 +05:00
.test_efuse_table_on_host_template :
2019-06-29 00:39:21 +08:00
extends : .host_test_template
2021-07-21 09:43:26 +05:00
variables :
IDF_TARGET : "esp32"
2019-06-29 00:39:21 +08:00
artifacts :
when : on_failure
paths :
2021-07-21 09:43:26 +05:00
- components/efuse/${IDF_TARGET}/esp_efuse_table.c
2019-06-29 00:39:21 +08:00
expire_in : 1 week
script :
- cd ${IDF_PATH}/components/efuse/
2021-07-21 09:43:26 +05:00
- ./efuse_table_gen.py -t "${IDF_TARGET}" ${IDF_PATH}/components/efuse/${IDF_TARGET}/esp_efuse_table.csv
2023-02-15 19:09:14 +08:00
- git diff --exit-code -- ${IDF_TARGET}/esp_efuse_table.c || { echo 'Differences found for ${IDF_TARGET} target. Please run idf.py efuse-common-table and commit the changes.'; exit 1; }
2019-06-29 00:39:21 +08:00
- cd ${IDF_PATH}/components/efuse/test_efuse_host
2021-05-26 10:44:20 +02:00
- ./efuse_tests.py
2019-06-29 00:39:21 +08:00
2021-07-21 09:43:26 +05:00
test_efuse_table_on_host_esp32 :
extends : .test_efuse_table_on_host_template
2020-06-24 10:52:51 +08:00
2021-07-21 09:43:26 +05:00
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
2023-02-15 19:09:14 +08:00
test_efuse_table_on_host_esp32h2 :
extends : .test_efuse_table_on_host_template
variables :
IDF_TARGET : esp32h2
2023-02-16 01:49:24 +08:00
test_efuse_table_on_host_esp32c6 :
extends : .test_efuse_table_on_host_template
variables :
IDF_TARGET : esp32c6
2019-06-29 00:39:21 +08:00
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
2021-05-26 10:44:20 +02:00
- ./test.sh
2019-06-29 00:39:21 +08:00
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
2021-05-26 10:44:20 +02:00
- ./test.sh
2020-04-06 16:41:44 +02:00
test_mkdfu :
extends : .host_test_template
variables :
LC_ALL : C.UTF-8
script :
- cd ${IDF_PATH}/tools/test_mkdfu
2021-05-26 10:44:20 +02:00
- ./test_mkdfu.py
2020-06-16 19:00:27 +08:00
2023-05-30 16:25:02 +02:00
test_sbom :
extends :
- .host_test_template
- .rules:patterns:sbom
script :
- cd ${IDF_PATH}/tools/test_sbom
- pytest
2020-11-12 11:52:45 +01:00
test_autocomplete :
2022-07-28 15:32:13 +08:00
extends :
- .host_test_template
2020-11-07 12:45:54 +01:00
artifacts :
when : on_failure
paths :
- ${IDF_PATH}/*.out
expire_in : 1 week
script :
2021-05-26 10:44:20 +02:00
- ${IDF_PATH}/tools/ci/test_autocomplete.py
2021-02-02 13:20:09 +01:00
test_detect_python :
2022-07-28 15:32:13 +08:00
extends :
- .host_test_template
2021-02-02 13:20:09 +01:00
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'"
2021-03-08 15:07:44 +08:00
2021-10-06 09:43:05 +02:00
test_split_path_by_spaces :
extends : .host_test_template
script :
- cd ${IDF_PATH}/tools
- python -m unittest split_paths_by_spaces.py
2022-05-13 16:55:22 +02:00
test_mqtt_on_host :
extends : .host_test_template
script :
2022-10-17 14:59:56 +02:00
- cd ${IDF_PATH}/components/mqtt/esp-mqtt/host_test
2022-05-13 16:55:22 +02:00
- idf.py build
- LSAN_OPTIONS=verbosity=1:log_threads=1 build/host_mqtt_client_test.elf
2022-10-05 15:20:39 +02:00
test_transport_on_host :
extends : .host_test_template
script :
- cd ${IDF_PATH}/components/tcp_transport/host_test
- idf.py build
- LSAN_OPTIONS=verbosity=1:log_threads=1 build/host_tcp_transport_test.elf
2022-07-22 10:14:37 +02:00
test_sockets_on_host :
extends : .host_test_template
script :
# test the tcp-client example with system sockets
- cd ${IDF_PATH}/examples/protocols/sockets/tcp_client
- echo 'CONFIG_EXAMPLE_IPV4_ADDR="127.0.0.1"' >> sdkconfig.defaults
- idf.py --preview set-target linux
- idf.py build
- timeout 5 ./build/tcp_client.elf >test.log || true
- grep "Socket unable to connect" test.log
# test the udp-client example with lwip sockets
- cd ${IDF_PATH}/examples/protocols/sockets/udp_client
- idf.py --preview set-target linux
2023-04-03 20:31:51 +02:00
- cat sdkconfig.ci.linux > sdkconfig
2022-07-22 10:14:37 +02:00
- idf.py build
- timeout 5 ./build/udp_client.elf >test.log || true
- grep "Message sent" test.log
2021-02-07 15:03:51 +08:00
test_eh_frame_parser :
extends : .host_test_template
script :
- cd ${IDF_PATH}/components/esp_system/test_eh_frame_parser
- make
- ./eh_frame_test
2021-06-03 11:59:00 +08:00
2021-11-05 17:23:24 +08:00
test_gen_soc_caps_kconfig :
extends : .host_test_template
script :
- cd ${IDF_PATH}/tools/gen_soc_caps_kconfig/
- ./test/test_gen_soc_caps_kconfig.py
2022-05-18 14:59:34 +08:00
test_pytest_qemu :
extends :
- .host_test_template
2023-09-26 13:24:26 +02:00
- .before_script:build
2022-05-18 14:59:34 +08:00
image : $QEMU_IMAGE
2022-07-25 14:41:51 +02:00
artifacts :
when : always
paths :
- XUNIT_RESULT.xml
- pytest_embedded_log/
reports :
junit : XUNIT_RESULT.xml
expire_in : 1 week
2023-07-13 11:15:38 +08:00
allow_failure : true # IDFCI-1752
2023-06-20 09:37:25 +02:00
parallel :
matrix :
- IDF_TARGET : [ esp32, esp32c3]
2022-05-18 14:59:34 +08:00
script :
2022-07-13 10:34:02 +08:00
- run_cmd python tools/ci/ci_build_apps.py . -vv
2023-06-20 09:37:25 +02:00
--target $IDF_TARGET
2022-07-13 10:34:02 +08:00
--pytest-apps
-m qemu
2023-07-11 15:32:57 +08:00
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
2023-11-01 12:43:19 +01:00
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
2022-12-23 16:24:57 +08:00
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
2023-07-19 10:19:44 +08:00
- run_cmd pytest
2023-06-20 09:37:25 +02:00
--target $IDF_TARGET
2022-12-23 16:24:57 +08:00
-m qemu
--embedded-services idf,qemu
--junitxml=XUNIT_RESULT.xml
2023-06-29 12:07:30 +08:00
--ignore-result-files known_failure_cases/known_failure_cases.txt
2023-07-11 15:32:57 +08:00
--app-info-filepattern \"list_job_*.txt\"
2023-01-05 12:28:47 +08:00
test_pytest_linux :
extends :
- .host_test_template
2023-09-26 13:24:26 +02:00
- .before_script:build
2023-01-05 12:28:47 +08:00
artifacts :
when : always
paths :
- XUNIT_RESULT.xml
- pytest_embedded_log/
2023-11-06 14:34:33 +08:00
- "**/build*/build_log.txt"
2023-01-05 12:28:47 +08:00
reports :
junit : XUNIT_RESULT.xml
expire_in : 1 week
script :
- run_cmd python tools/ci/ci_build_apps.py components examples tools/test_apps -vv
--target linux
--pytest-apps
-m host_test
2023-07-11 15:32:57 +08:00
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
2023-11-01 12:43:19 +01:00
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
2023-02-13 16:04:44 +08:00
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
2023-07-11 15:32:57 +08:00
- run_cmd pytest
--target linux
-m host_test
--junitxml=XUNIT_RESULT.xml
2023-06-29 12:07:30 +08:00
--ignore-result-files known_failure_cases/known_failure_cases.txt
2023-07-11 15:32:57 +08:00
--app-info-filepattern \"list_job_*.txt\"