From 2787237d38a350e020f4da2039a7830d7de91c0d Mon Sep 17 00:00:00 2001 From: Roland Dobai Date: Tue, 21 Dec 2021 17:06:05 +0100 Subject: [PATCH] Tools: Load tool versions automatically for IDF Tools tests --- tools/test_idf_tools/test_idf_tools.py | 31 ++++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/tools/test_idf_tools/test_idf_tools.py b/tools/test_idf_tools/test_idf_tools.py index 56ddb25c15..20ba4090cf 100755 --- a/tools/test_idf_tools/test_idf_tools.py +++ b/tools/test_idf_tools/test_idf_tools.py @@ -3,6 +3,7 @@ # SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 +import json import os import shutil import sys @@ -43,13 +44,29 @@ XTENSA_ESP32_ELF = 'xtensa-esp32-elf' XTENSA_ESP32S2_ELF = 'xtensa-esp32s2-elf' XTENSA_ESP32S3_ELF = 'xtensa-esp32s3-elf' -ESP32ULP_VERSION = '2.28.51-esp-20191205' -ESP32S2ULP_VERSION = '2.28.51-esp-20191205' -OPENOCD_VERSION = 'v0.10.0-esp32-20211111' -RISC_VERSION = 'esp-2021r2-8.4.0' -XTENSA_ESP32_ELF_VERSION = 'esp-2021r2-8.4.0' -XTENSA_ESP32S2_ELF_VERSION = 'esp-2021r2-8.4.0' -XTENSA_ESP32S3_ELF_VERSION = 'esp-2021r2-8.4.0' + +def get_version_dict(): + ''' + Return a dictionary with tool name to tool version mapping. + + It works with tools.json directly and not through idf_tools.py in order to bypass the script under test. This is + a little hacky but thanks to this, versions are not required to be updated here every time a tool is updated. + ''' + with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'tools.json')) as f: + tools_obj = json.loads(f.read()) + + return dict((tool['name'], tool['versions'][0]['name']) for tool in tools_obj['tools']) + + +version_dict = get_version_dict() + +ESP32ULP_VERSION = version_dict[ESP32ULP] +ESP32S2ULP_VERSION = version_dict[ESP32S2ULP] +OPENOCD_VERSION = version_dict[OPENOCD] +RISC_VERSION = version_dict[RISC] +XTENSA_ESP32_ELF_VERSION = version_dict[XTENSA_ESP32_ELF] +XTENSA_ESP32S2_ELF_VERSION = version_dict[XTENSA_ESP32S2_ELF] +XTENSA_ESP32S3_ELF_VERSION = version_dict[XTENSA_ESP32S3_ELF] class TestUsage(unittest.TestCase):