Jelajahi Sumber

CI: port startup test app to pytest and enable for all targets

Marius Vikhammer 3 tahun lalu
induk
melakukan
d6c0227d84

+ 0 - 33
tools/test_apps/system/startup/app_test.py

@@ -1,33 +0,0 @@
-#!/usr/bin/env python
-
-import glob
-import os
-import re
-
-import ttfw_idf
-from tiny_test_fw import Utility
-from ttfw_idf.IDFDUT import ESP32DUT
-
-
-@ttfw_idf.idf_custom_test(env_tag='Example_GENERIC', group='test-apps')
-def test_sys_startup(env, extra_data):
-    config_files = glob.glob(os.path.join(os.path.dirname(__file__), 'sdkconfig.ci.*'))
-    config_names = [os.path.basename(s).replace('sdkconfig.ci.', '') for s in config_files]
-    for name in config_names:
-        Utility.console_log("Checking config \"{}\"... ".format(name), end='')
-        dut = env.get_dut('startup', 'tools/test_apps/system/startup', app_config_name=name)
-        dut.start_app()
-
-        if (name == 'single_core_variant' and isinstance(dut, ESP32DUT)):
-            dut.allow_dut_exception = True
-            dut.expect('Running on single core variant of a chip, but app is built with multi-core support.')
-            dut.expect(re.compile(r'abort\(\) was called at PC [0-9xa-f]+ on core 0'))
-        else:
-            dut.expect('app_main running')
-
-        env.close_dut(dut.name)
-        Utility.console_log('done')
-
-
-if __name__ == '__main__':
-    test_sys_startup()

+ 30 - 0
tools/test_apps/system/startup/pytest_startup.py

@@ -0,0 +1,30 @@
+# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+# SPDX-License-Identifier: CC0-1.0
+
+import pytest
+from pytest_embedded import Dut
+
+
+@pytest.mark.supported_targets
+@pytest.mark.generic
+@pytest.mark.parametrize('config', [
+    'default',
+    'flash_80m_qio',
+    'no_vfs',
+    'no_vfs_partial',
+    'opt_o0',
+    'opt_o2',
+    'stack_check',
+    'verbose_log',
+], indirect=True)
+def test_sys_startup(dut: Dut) -> None:
+    dut.expect_exact('app_main running')
+
+
+@pytest.mark.esp32
+@pytest.mark.esp32s3
+@pytest.mark.generic
+@pytest.mark.parametrize('config', ['single_core_variant'], indirect=True)
+def test_sys_startup_single_core_variant(dut: Dut) -> None:
+    dut.expect('Running on single core variant of a chip, but app is built with multi-core support.')
+    dut.expect(r'abort\(\) was called at PC [0-9xa-f]+ on core 0')