mirror of https://github.com/ARMmbed/mbed-os.git
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
parent
029237b683
commit
7900863c4d
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include "mbed.h"
|
#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
|
#error [NOT_SUPPORTED] test not supported
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -49,19 +49,22 @@ void get_cpu_usage()
|
||||||
{
|
{
|
||||||
static uint64_t prev_idle_time = 0;
|
static uint64_t prev_idle_time = 0;
|
||||||
mbed_stats_cpu_t stats;
|
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);
|
uint64_t diff = (stats.idle_time - prev_idle_time);
|
||||||
uint8_t usage = 100 - ((diff * 100) / (SAMPLE_TIME * 1000));
|
uint8_t usage = 100 - ((diff * 100) / (SAMPLE_TIME * 1000));
|
||||||
prev_idle_time = stats.idle_time;
|
prev_idle_time = stats.idle_time;
|
||||||
|
|
||||||
TEST_ASSERT_NOT_EQUAL(0, usage);
|
TEST_ASSERT_NOT_EQUAL(0, usage);
|
||||||
|
Thread::wait(SAMPLE_TIME);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_cpu_info(void)
|
void test_cpu_info(void)
|
||||||
{
|
{
|
||||||
mbed_stats_cpu_t stats;
|
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.uptime);
|
||||||
TEST_ASSERT_NOT_EQUAL(0, stats.idle_time);
|
TEST_ASSERT_NOT_EQUAL(0, stats.idle_time);
|
||||||
return;
|
return;
|
||||||
|
|
@ -69,11 +72,12 @@ void test_cpu_info(void)
|
||||||
|
|
||||||
void test_cpu_load(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(osPriorityNormal, MAX_THREAD_STACK);
|
||||||
|
Thread thread_stats(osPriorityNormal, MAX_THREAD_STACK);
|
||||||
|
|
||||||
thread.start(busy_thread);
|
thread.start(busy_thread);
|
||||||
|
thread_stats.start(get_cpu_usage);
|
||||||
|
|
||||||
// Steadily increase the system load
|
// Steadily increase the system load
|
||||||
for (int count = 1; ; count++) {
|
for (int count = 1; ; count++) {
|
||||||
|
|
@ -84,7 +88,7 @@ void test_cpu_load(void)
|
||||||
wait_time -= 1000; // usec
|
wait_time -= 1000; // usec
|
||||||
}
|
}
|
||||||
thread.terminate();
|
thread.terminate();
|
||||||
stats_queue->cancel(id);
|
thread_stats.terminate();
|
||||||
}
|
}
|
||||||
|
|
||||||
Case cases[] = {
|
Case cases[] = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue