From fe4b401ab271933d63d5bc8ab1f52ff438f21baf Mon Sep 17 00:00:00 2001 From: Frantisek Hrbata Date: Wed, 8 May 2024 13:38:19 +0200 Subject: [PATCH] ci: add simple test for idf_size.py python compatibility This adds a simple test that tries to run idf_size.py help and check if the process does not exit with error. This is just to make sure that idf_size.py can be used with minimum required python version. Signed-off-by: Frantisek Hrbata --- .gitlab/ci/host-test.yml | 2 ++ .gitlab/ci/rules.yml | 1 + tools/test_idf_size/pytest.ini | 12 ++++++++++++ tools/test_idf_size/test_idf_size.py | 17 +++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 tools/test_idf_size/pytest.ini create mode 100644 tools/test_idf_size/test_idf_size.py diff --git a/.gitlab/ci/host-test.yml b/.gitlab/ci/host-test.yml index f4b3966d94..f054b8236f 100644 --- a/.gitlab/ci/host-test.yml +++ b/.gitlab/ci/host-test.yml @@ -228,6 +228,8 @@ test_tools: - pytest --noconftest test_idf_qemu.py --junitxml=${IDF_PATH}/XUNIT_IDF_PY_QEMU.xml || stat=1 - cd ${IDF_PATH}/tools/test_mkdfu - pytest --noconftest test_mkdfu.py --junitxml=${IDF_PATH}/XUNIT_MKDFU.xml || stat=1 + - cd ${IDF_PATH}/tools/test_idf_size + - pytest --noconftest test_idf_size.py --junitxml=${IDF_PATH}/XUNIT_IDF_SIZE.xml || stat=1 - cd ${IDF_PATH} - shellcheck -s sh tools/detect_python.sh || stat=1 - shellcheck -s bash tools/detect_python.sh || stat=1 diff --git a/.gitlab/ci/rules.yml b/.gitlab/ci/rules.yml index a49c5795a9..b492bdc60c 100644 --- a/.gitlab/ci/rules.yml +++ b/.gitlab/ci/rules.yml @@ -86,6 +86,7 @@ - "tools/test_idf_py/**/*" - "tools/idf_size.py" + - "tools/test_idf_size/**/*" - "tools/tools.json" - "tools/tools_schema.json" diff --git a/tools/test_idf_size/pytest.ini b/tools/test_idf_size/pytest.ini new file mode 100644 index 0000000000..d95e773e5c --- /dev/null +++ b/tools/test_idf_size/pytest.ini @@ -0,0 +1,12 @@ +[pytest] +addopts = -s -p no:pytest_embedded + +# log related +log_cli = True +log_cli_level = INFO +log_cli_format = %(asctime)s %(levelname)s %(message)s +log_cli_date_format = %Y-%m-%d %H:%M:%S + +## log all to `system-out` when case fail +junit_logging = stdout +junit_log_passing_tests = False diff --git a/tools/test_idf_size/test_idf_size.py b/tools/test_idf_size/test_idf_size.py new file mode 100644 index 0000000000..2a3baabbe0 --- /dev/null +++ b/tools/test_idf_size/test_idf_size.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: Apache-2.0 +import logging +import os +import sys +from pathlib import Path +from subprocess import DEVNULL +from subprocess import run + + +def test_idf_size() -> None: + # Simple test to make sure that the idf_size.py wrapper is compatible + # with idf.py minimum required python version. + logging.info('idf_size.py python compatibility check') + idf_size_path = Path(os.environ['IDF_PATH']) / 'tools' / 'idf_size.py' + run([sys.executable, idf_size_path, '--help'], stdout=DEVNULL, stderr=DEVNULL, check=True)