forked from espressif/esp-idf
fix(freertos): Fix freertos example pytest script
This commit updates the freertos/basic_freertos_smp_usage pytest script to not follow a rigid order when testing against output logs as tasks can spawn on any core in no particular order.
This commit is contained in:
@@ -78,7 +78,7 @@ static void inc_num_atomic_iter(void *arg)
|
|||||||
|
|
||||||
static void inc_num_mutex(void *arg)
|
static void inc_num_mutex(void *arg)
|
||||||
{
|
{
|
||||||
int task_index = *(int*)arg;
|
int task_index = (int)arg;
|
||||||
ESP_LOGI(TAG, "mutex task %d created", task_index);
|
ESP_LOGI(TAG, "mutex task %d created", task_index);
|
||||||
|
|
||||||
while (!timed_out) {
|
while (!timed_out) {
|
||||||
@@ -159,7 +159,7 @@ int comp_lock_entry_func(int argc, char **argv)
|
|||||||
s_global_num = 0;
|
s_global_num = 0;
|
||||||
// create 2 tasks to increase a shared number in turn
|
// create 2 tasks to increase a shared number in turn
|
||||||
for (thread_id = 0; thread_id < SHARE_RES_THREAD_NUM; thread_id++) {
|
for (thread_id = 0; thread_id < SHARE_RES_THREAD_NUM; thread_id++) {
|
||||||
xTaskCreatePinnedToCore(inc_num_mutex, NULL, 4096, &thread_id, TASK_PRIO_3, NULL, tskNO_AFFINITY);
|
xTaskCreatePinnedToCore(inc_num_mutex, NULL, 4096, (void *)thread_id, TASK_PRIO_3, NULL, tskNO_AFFINITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// time out and stop running after 5 seconds
|
// time out and stop running after 5 seconds
|
||||||
|
@@ -13,10 +13,13 @@ def test_creating_task(
|
|||||||
dut.expect(r'esp32(?:[a-zA-Z]\d)?>')
|
dut.expect(r'esp32(?:[a-zA-Z]\d)?>')
|
||||||
# test creating_task
|
# test creating_task
|
||||||
dut.write('create_task')
|
dut.write('create_task')
|
||||||
dut.expect('create task example: task#0 is running on core#0')
|
expected_patterns = [
|
||||||
dut.expect('create task example: task#1 is running on core#0')
|
'create task example: task#0 is running on core#0',
|
||||||
dut.expect(r'create task example: task#2 is running on core#\d')
|
'create task example: task#1 is running on core#0',
|
||||||
dut.expect(r'create task example: task#3 is running on core#\d')
|
r'create task example: task#2 is running on core#\d',
|
||||||
|
r'create task example: task#3 is running on core#\d',
|
||||||
|
]
|
||||||
|
dut.expect(expected_patterns, expect_all=True)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.esp32c3
|
@pytest.mark.esp32c3
|
||||||
@@ -46,14 +49,14 @@ def test_locks(
|
|||||||
dut.expect(r'esp32(?:[a-zA-Z]\d)?>')
|
dut.expect(r'esp32(?:[a-zA-Z]\d)?>')
|
||||||
# test locks
|
# test locks
|
||||||
dut.write('lock')
|
dut.write('lock')
|
||||||
dut.expect(r'lock example: mutex task took \d+ us on core\d')
|
expected_patterns = [
|
||||||
dut.expect(r'lock example: spinlock task took \d+ us on core\d')
|
r'lock example: mutex task took \d+ us on core\d',
|
||||||
dut.expect(r'lock example: atomic task took \d+ us on core\d')
|
r'lock example: spinlock task took \d+ us on core\d',
|
||||||
dut.expect(r'task0 read value = 0 on core #\d')
|
r'lock example: atomic task took \d+ us on core\d',
|
||||||
dut.expect('task0 set value = 1')
|
r'task\d read value = \d on core #\d',
|
||||||
dut.expect(r'task\d read value = 1 on core #\d')
|
r'task\d set value = \d',
|
||||||
dut.expect(r'task\d set value = 2')
|
]
|
||||||
dut.expect(r'task0 read value = 2 on core #\d')
|
dut.expect(expected_patterns, expect_all=True)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.esp32c3
|
@pytest.mark.esp32c3
|
||||||
|
Reference in New Issue
Block a user