ci: enable pytest panic test

This commit is contained in:
Fu Hanxi
2022-02-11 15:47:32 +08:00
parent 31fafaea93
commit 4cbaf6fbb1
4 changed files with 70 additions and 12 deletions

View File

@@ -73,7 +73,7 @@ variables:
TEST_ENV_CONFIG_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/ci-test-runner-configs.git" TEST_ENV_CONFIG_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/ci-test-runner-configs.git"
CI_AUTO_TEST_SCRIPT_REPO_URL: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/auto_test_script.git" CI_AUTO_TEST_SCRIPT_REPO_URL: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/auto_test_script.git"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v4.1" CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v4.1"
PYTEST_EMBEDDED_TAG: "v0.5.1" PYTEST_EMBEDDED_TAG: "v0.6.0rc0"
# cache python dependencies # cache python dependencies
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

View File

@@ -93,6 +93,20 @@ build_pytest_components_esp32c3:
script: script:
- run_cmd python tools/ci/build_pytest_apps.py components --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv - run_cmd python tools/ci/build_pytest_apps.py components --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv
build_pytest_test_apps_esp32:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32
script:
- run_cmd python tools/ci/build_pytest_apps.py tools/test_apps --target esp32 --size-info $SIZE_INFO_LOCATION -vv
build_pytest_test_apps_esp32s2:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32s2
script:
- run_cmd python tools/ci/build_pytest_apps.py tools/test_apps --target esp32s2 --size-info $SIZE_INFO_LOCATION -vv
build_non_test_components_apps: build_non_test_components_apps:
extends: extends:
- .build_template - .build_template

View File

@@ -167,6 +167,39 @@ component_ut_pytest_esp32c3_generic:
- ESP32C3 - ESP32C3
- COMPONENT_UT_GENERIC - COMPONENT_UT_GENERIC
.pytest_test_apps_dir_template:
extends: .pytest_template
variables:
TEST_DIR: tools/test_apps
test_app_test_pytest_esp32_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32
needs:
- build_pytest_test_apps_esp32
variables:
TARGET: esp32
ENV_MARKER: generic
SETUP_TOOLS: "1" # need gdb
tags:
- ESP32
- Example_GENERIC
test_app_test_pytest_esp32s2_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s2
needs:
- build_pytest_test_apps_esp32s2
variables:
TARGET: esp32s2
ENV_MARKER: generic
SETUP_TOOLS: "1" # need gdb
tags:
- ESP32S2
- Example_GENERIC
# for parallel jobs, CI_JOB_NAME will be "job_name index/total" (for example, "IT_001 1/2") # for parallel jobs, CI_JOB_NAME will be "job_name index/total" (for example, "IT_001 1/2")
# we need to convert to pattern "job_name_index.yml" # we need to convert to pattern "job_name_index.yml"
.define_config_file_name: &define_config_file_name | .define_config_file_name: &define_config_file_name |
@@ -538,12 +571,9 @@ test_app_test_005:
test_app_test_esp32_generic: test_app_test_esp32_generic:
extends: .test_app_esp32_template extends: .test_app_esp32_template
parallel: 5
tags: tags:
- ESP32 - ESP32
- Example_GENERIC - Example_GENERIC
variables:
SETUP_TOOLS: "1"
test_app_test_flash_psram_f4r4: test_app_test_flash_psram_f4r4:
extends: .test_app_esp32s3_template extends: .test_app_esp32s3_template

View File

@@ -6,6 +6,7 @@ This file is used to generate binary files for the given path.
""" """
import argparse import argparse
import copy
import logging import logging
import os import os
import sys import sys
@@ -58,17 +59,25 @@ def main(args: argparse.Namespace) -> None:
build_system='cmake', build_system='cmake',
config_rules=config_rules, config_rules=config_rules,
) )
logging.info(f'Found {len(build_items)} builds')
build_items.sort(key=lambda x: x.build_path) # type: ignore
modified_build_items = []
# auto clean up the binaries if no flag --preserve-all # auto clean up the binaries if no flag --preserve-all
if args.preserve_all is False: for item in build_items:
for item in build_items: is_test_related = item.config_name in app_configs[item.app_dir]
if item.config_name not in app_configs[item.app_dir]: if args.test_only and not is_test_related:
item.preserve = False logging.info(f'Skipping non-test app: {item}')
continue
copied_item = copy.deepcopy(item)
if not args.preserve_all and not is_test_related:
copied_item.preserve = False
modified_build_items.append(copied_item)
logging.info(f'Found {len(modified_build_items)} builds')
modified_build_items.sort(key=lambda x: x.build_path) # type: ignore
build_apps( build_apps(
build_items=build_items, build_items=modified_build_items,
parallel_count=args.parallel_count, parallel_count=args.parallel_count,
parallel_index=args.parallel_index, parallel_index=args.parallel_index,
dry_run=False, dry_run=False,
@@ -128,7 +137,12 @@ if __name__ == '__main__':
parser.add_argument( parser.add_argument(
'--preserve-all', '--preserve-all',
action='store_true', action='store_true',
help='add this flag to preserve the binaries for all apps', help='Preserve the binaries for all apps when specified.',
)
parser.add_argument(
'--test-only',
action='store_true',
help='Build only test related app when specified.',
) )
arguments = parser.parse_args() arguments = parser.parse_args()
setup_logging(arguments) setup_logging(arguments)