mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-14 18:11:04 +02:00
Merge branch 'feature/qemu-pthread' into 'master'
pthread: enable qemu tests Closes QEMU-81 See merge request espressif/esp-idf!21420
This commit is contained in:
@@ -4,6 +4,8 @@
|
|||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
#include "freertos/task.h"
|
||||||
#include "unity.h"
|
#include "unity.h"
|
||||||
#include "unity_test_runner.h"
|
#include "unity_test_runner.h"
|
||||||
#include "esp_heap_caps.h"
|
#include "esp_heap_caps.h"
|
||||||
@@ -32,6 +34,8 @@ void setUp(void)
|
|||||||
|
|
||||||
void tearDown(void)
|
void tearDown(void)
|
||||||
{
|
{
|
||||||
|
// Add a short delay of 100ms to allow the idle task to free an remaining memory
|
||||||
|
vTaskDelay(pdMS_TO_TICKS(100));
|
||||||
size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT);
|
size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT);
|
||||||
size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT);
|
size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT);
|
||||||
check_leak(before_free_8bit, after_free_8bit, "8BIT");
|
check_leak(before_free_8bit, after_free_8bit, "8BIT");
|
||||||
|
@@ -72,7 +72,8 @@ static void thread_main()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("pthread C++", "[pthread]")
|
// IDF-6423 - assert and crash when running this testcase on QEMU
|
||||||
|
TEST_CASE("pthread C++", "[pthread][qemu-ignore]")
|
||||||
{
|
{
|
||||||
global_sp_mtx.reset(new int(1));
|
global_sp_mtx.reset(new int(1));
|
||||||
global_sp_recur_mtx.reset(new int(-1000));
|
global_sp_recur_mtx.reset(new int(-1000));
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from pytest_embedded import Dut
|
from pytest_embedded import Dut
|
||||||
|
|
||||||
@@ -62,3 +64,13 @@ def test_pthread_single_core_tls(dut: Dut) -> None:
|
|||||||
dut.expect_exact('Press ENTER to see the list of tests')
|
dut.expect_exact('Press ENTER to see the list of tests')
|
||||||
dut.write('[thread-specific]')
|
dut.write('[thread-specific]')
|
||||||
dut.expect_unity_test_output(timeout=300)
|
dut.expect_unity_test_output(timeout=300)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.qemu
|
||||||
|
@pytest.mark.esp32
|
||||||
|
def test_pthread_qemu(dut: Dut) -> None:
|
||||||
|
dut.expect_exact('Press ENTER to see the list of tests')
|
||||||
|
# dut may not be ready to accept input, so adding the delay until handled in pytest embedded (RDT-328)
|
||||||
|
sleep(1)
|
||||||
|
dut.write('![qemu-ignore]')
|
||||||
|
dut.expect_unity_test_output(timeout=300)
|
||||||
|
Reference in New Issue
Block a user