mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'fix/idf_size_python_compat' into 'master'
fix: make idf_size.py compatible with python3.8 Closes IDF-9893 See merge request espressif/esp-idf!30700
This commit is contained in:
commit
fee61b76a1
@ -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
|
||||
|
@ -86,6 +86,7 @@
|
||||
- "tools/test_idf_py/**/*"
|
||||
|
||||
- "tools/idf_size.py"
|
||||
- "tools/test_idf_size/**/*"
|
||||
|
||||
- "tools/tools.json"
|
||||
- "tools/tools_schema.json"
|
||||
|
@ -13,8 +13,13 @@ if __name__ == '__main__':
|
||||
# Here the argparse is used only to "peek" into arguments if
|
||||
# legacy version is requested or if old json format is specified.
|
||||
# In these two cases the esp_idf_size legacy version is spawned.
|
||||
parser = argparse.ArgumentParser(exit_on_error=False, add_help=False)
|
||||
parser.add_argument('--format')
|
||||
parser = argparse.ArgumentParser(add_help=False)
|
||||
# Make the --format arg optional, so this argparse instance does not
|
||||
# fail with an error and the proper underlying help is displayed.
|
||||
# Note that exit_on_error is supported from python3.9, so this is
|
||||
# a workaround how to make sure that the args parsing doesn't fail here if idf_size.py
|
||||
# is invoked e.g. without specifying the format, like "idf_size.py --format".
|
||||
parser.add_argument('--format', nargs='?')
|
||||
parser.add_argument('-l', '--legacy', action='store_true', default=os.environ.get('ESP_IDF_SIZE_LEGACY', '0') == '1')
|
||||
|
||||
# The sys.argv is parsed with "exit_on_error", but the argparse.ArgumentError
|
||||
@ -34,7 +39,9 @@ if __name__ == '__main__':
|
||||
os.environ['ESP_IDF_SIZE_NG'] = '1'
|
||||
if not rest or '-h' in rest or '--help' in rest:
|
||||
print(('Note: legacy esp_idf_size version can be invoked by specifying the -l/--legacy '
|
||||
'option or by setting the ESP_IDF_SIZE_LEGACY environment variable.'))
|
||||
'option or by setting the ESP_IDF_SIZE_LEGACY environment variable. Additionally, the '
|
||||
'legacy version is automatically employed when the JSON format is specified for '
|
||||
'compatibility with previous versions.'))
|
||||
|
||||
if args.format is not None:
|
||||
rest = ['--format', args.format] + rest
|
||||
|
12
tools/test_idf_size/pytest.ini
Normal file
12
tools/test_idf_size/pytest.ini
Normal file
@ -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
|
17
tools/test_idf_size/test_idf_size.py
Normal file
17
tools/test_idf_size/test_idf_size.py
Normal file
@ -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)
|
Loading…
Reference in New Issue
Block a user