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.
pull/6857/head
Deepika 2018-05-16 13:31:14 -05:00
parent 029237b683
commit 7900863c4d
1 changed files with 15 additions and 11 deletions

View File

@ -21,7 +21,7 @@
#include "mbed.h"
#if !defined(MBED_CPU_STATS_ENABLED)
#if !defined(MBED_CPU_STATS_ENABLED) || !defined(DEVICE_LOWPOWERTIMER) || !defined(DEVICE_SLEEP)
#error [NOT_SUPPORTED] test not supported
#endif
@ -49,19 +49,22 @@ void get_cpu_usage()
{
static uint64_t prev_idle_time = 0;
mbed_stats_cpu_t stats;
mbed_stats_cpu_get(&stats);
while (1) {
mbed_stats_cpu_get(&stats);
uint64_t diff = (stats.idle_time - prev_idle_time);
uint8_t usage = 100 - ((diff * 100) / (SAMPLE_TIME * 1000));
prev_idle_time = stats.idle_time;
TEST_ASSERT_NOT_EQUAL(0, usage);
Thread::wait(SAMPLE_TIME);
}
}
void test_cpu_info(void)
{
mbed_stats_cpu_t stats;
Thread::wait(0.1);
Thread::wait(1);
mbed_stats_cpu_get(&stats);
TEST_ASSERT_NOT_EQUAL(0, stats.uptime);
TEST_ASSERT_NOT_EQUAL(0, stats.idle_time);
return;
@ -69,11 +72,12 @@ void test_cpu_info(void)
void test_cpu_load(void)
{
EventQueue *stats_queue = mbed_event_queue();
int id = stats_queue->call_every(SAMPLE_TIME, get_cpu_usage);
Thread thread(osPriorityNormal, MAX_THREAD_STACK);
Thread thread_stats(osPriorityNormal, MAX_THREAD_STACK);
thread.start(busy_thread);
thread_stats.start(get_cpu_usage);
// Steadily increase the system load
for (int count = 1; ; count++) {
@ -84,7 +88,7 @@ void test_cpu_load(void)
wait_time -= 1000; // usec
}
thread.terminate();
stats_queue->cancel(id);
thread_stats.terminate();
}
Case cases[] = {