Skip to content

Commit 7900863

Browse files
author
Deepika
committed
Updated test to not use event queue.
Test was failing on limited RAM devices, because of shared event queue size. Updated test to use thread instead of event queue.
1 parent 029237b commit 7900863

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

TESTS/mbed_platform/stats_cpu/main.cpp

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include "mbed.h"
2323

24-
#if !defined(MBED_CPU_STATS_ENABLED)
24+
#if !defined(MBED_CPU_STATS_ENABLED) || !defined(DEVICE_LOWPOWERTIMER) || !defined(DEVICE_SLEEP)
2525
#error [NOT_SUPPORTED] test not supported
2626
#endif
2727

@@ -49,31 +49,35 @@ void get_cpu_usage()
4949
{
5050
static uint64_t prev_idle_time = 0;
5151
mbed_stats_cpu_t stats;
52-
mbed_stats_cpu_get(&stats);
53-
54-
uint64_t diff = (stats.idle_time - prev_idle_time);
55-
uint8_t usage = 100 - ((diff * 100) / (SAMPLE_TIME * 1000));
56-
prev_idle_time = stats.idle_time;
5752

58-
TEST_ASSERT_NOT_EQUAL(0, usage);
53+
while (1) {
54+
mbed_stats_cpu_get(&stats);
55+
uint64_t diff = (stats.idle_time - prev_idle_time);
56+
uint8_t usage = 100 - ((diff * 100) / (SAMPLE_TIME * 1000));
57+
prev_idle_time = stats.idle_time;
58+
TEST_ASSERT_NOT_EQUAL(0, usage);
59+
Thread::wait(SAMPLE_TIME);
60+
}
5961
}
6062

6163
void test_cpu_info(void)
6264
{
6365
mbed_stats_cpu_t stats;
64-
Thread::wait(0.1);
66+
Thread::wait(1);
67+
mbed_stats_cpu_get(&stats);
6568
TEST_ASSERT_NOT_EQUAL(0, stats.uptime);
6669
TEST_ASSERT_NOT_EQUAL(0, stats.idle_time);
6770
return;
6871
}
6972

7073
void test_cpu_load(void)
7174
{
72-
EventQueue *stats_queue = mbed_event_queue();
73-
int id = stats_queue->call_every(SAMPLE_TIME, get_cpu_usage);
75+
7476
Thread thread(osPriorityNormal, MAX_THREAD_STACK);
77+
Thread thread_stats(osPriorityNormal, MAX_THREAD_STACK);
7578

7679
thread.start(busy_thread);
80+
thread_stats.start(get_cpu_usage);
7781

7882
// Steadily increase the system load
7983
for (int count = 1; ; count++) {
@@ -84,7 +88,7 @@ void test_cpu_load(void)
8488
wait_time -= 1000; // usec
8589
}
8690
thread.terminate();
87-
stats_queue->cancel(id);
91+
thread_stats.terminate();
8892
}
8993

9094
Case cases[] = {

0 commit comments

Comments
 (0)