awtk/tests/idle_test.cc

36 lines
712 B
C++
Raw Normal View History

2018-06-27 13:46:42 +08:00
#include "base/idle.h"
#include "gtest/gtest.h"
#include <string>
using std::string;
static string s_log;
static ret_t on_idle(const idle_info_t* idle) {
s_log += "o:";
return RET_OK;
}
TEST(Idle, basic) {
uint32_t i = 0;
uint32_t nr = 10;
2018-06-29 15:46:43 +08:00
idle_manager_remove_all(idle_manager());
for (i = 0; i < nr; i++) {
ASSERT_EQ(idle_add(on_idle, NULL) > 0, true);
ASSERT_EQ(idle_count(), i + 1);
}
ASSERT_EQ(idle_dispatch(), RET_OK);
ASSERT_EQ(idle_count(), 0);
ASSERT_EQ(s_log, "o:o:o:o:o:o:o:o:o:o:");
2018-04-20 21:49:47 +08:00
for (i = 0; i < nr; i++) {
uint32_t id = idle_add(on_idle, NULL);
ASSERT_EQ(id > 0, true);
ASSERT_EQ(idle_remove(id), RET_OK);
ASSERT_EQ(idle_count(), 0);
}
}