equeue tests update

- test periodic user allocated events
- test user allocated events re-posting
- test unnecessary cancels of user allocated events
pull/12319/head
Maciej Bocianski 2020-01-24 15:06:38 +01:00
parent bc89974462
commit 784393a919
2 changed files with 34 additions and 26 deletions

View File

@ -1003,14 +1003,14 @@ static void test_equeue_user_allocated_event_post()
uint8_t touched = 0;
user_allocated_event e1 = { { 0, 0, 0, NULL, NULL, NULL, 0, -1, NULL, NULL }, 0 };
user_allocated_event e2 = { { 0, 0, 0, NULL, NULL, NULL, 1, -1, NULL, NULL }, 0 };
user_allocated_event e3 = { { 0, 0, 0, NULL, NULL, NULL, 1, -1, NULL, NULL }, 0 };
user_allocated_event e4 = { { 0, 0, 0, NULL, NULL, NULL, 1, -1, NULL, NULL }, 0 };
user_allocated_event e2 = { { 0, 0, 0, NULL, NULL, NULL, 10, 10, NULL, NULL }, 0 };
user_allocated_event e3 = { { 0, 0, 0, NULL, NULL, NULL, 10, 10, NULL, NULL }, 0 };
user_allocated_event e4 = { { 0, 0, 0, NULL, NULL, NULL, 10, 10, NULL, NULL }, 0 };
user_allocated_event e5 = { { 0, 0, 0, NULL, NULL, NULL, 0, -1, NULL, NULL }, 0 };
TEST_ASSERT_NOT_EQUAL(0, equeue_call(&q, simple_func, &touched));
TEST_ASSERT_EQUAL_INT(0, equeue_call(&q, simple_func, &touched));
TEST_ASSERT_EQUAL_INT(0, equeue_call(&q, simple_func, &touched));
TEST_ASSERT_NOT_EQUAL(0, equeue_call_every(&q, 10, simple_func, &touched));
TEST_ASSERT_EQUAL_INT(0, equeue_call_every(&q, 10, simple_func, &touched));
TEST_ASSERT_EQUAL_INT(0, equeue_call_every(&q, 10, simple_func, &touched));
equeue_post_user_allocated(&q, simple_func, &e1.e);
equeue_post_user_allocated(&q, simple_func, &e2.e);
@ -1018,8 +1018,9 @@ static void test_equeue_user_allocated_event_post()
equeue_post_user_allocated(&q, simple_func, &e4.e);
equeue_post_user_allocated(&q, simple_func, &e5.e);
equeue_cancel_user_allocated(&q, &e3.e);
equeue_cancel_user_allocated(&q, &e3.e);
equeue_dispatch(&q, 1);
equeue_dispatch(&q, 11);
TEST_ASSERT_EQUAL_UINT8(1, touched);
TEST_ASSERT_EQUAL_UINT8(1, e1.touched);
@ -1028,13 +1029,16 @@ static void test_equeue_user_allocated_event_post()
TEST_ASSERT_EQUAL_UINT8(1, e4.touched);
TEST_ASSERT_EQUAL_UINT8(1, e5.touched);
equeue_dispatch(&q, 10);
e3.e.target = 10; // set target as it's modified by equeue_call
e3.e.period = 10; // set period as it's reset by equeue_cancel
equeue_post_user_allocated(&q, simple_func, &e3.e);
equeue_dispatch(&q, 101);
TEST_ASSERT_EQUAL_UINT8(1, touched);
TEST_ASSERT_EQUAL_UINT8(11, touched);
TEST_ASSERT_EQUAL_UINT8(1, e1.touched);
TEST_ASSERT_EQUAL_UINT8(1, e2.touched);
TEST_ASSERT_EQUAL_UINT8(0, e3.touched);
TEST_ASSERT_EQUAL_UINT8(1, e4.touched);
TEST_ASSERT_EQUAL_UINT8(11, e2.touched);
TEST_ASSERT_EQUAL_UINT8(10, e3.touched);
TEST_ASSERT_EQUAL_UINT8(11, e4.touched);
TEST_ASSERT_EQUAL_UINT8(1, e5.touched);
equeue_destroy(&q);

View File

@ -1072,14 +1072,14 @@ TEST_F(TestEqueue, test_equeue_user_allocated_event_post)
uint8_t touched = 0;
user_allocated_event e1 = { { 0, 0, 0, NULL, NULL, NULL, 0, -1, NULL, NULL }, 0 };
user_allocated_event e2 = { { 0, 0, 0, NULL, NULL, NULL, 1, -1, NULL, NULL }, 0 };
user_allocated_event e3 = { { 0, 0, 0, NULL, NULL, NULL, 1, -1, NULL, NULL }, 0 };
user_allocated_event e4 = { { 0, 0, 0, NULL, NULL, NULL, 1, -1, NULL, NULL }, 0 };
user_allocated_event e2 = { { 0, 0, 0, NULL, NULL, NULL, 10, 10, NULL, NULL }, 0 };
user_allocated_event e3 = { { 0, 0, 0, NULL, NULL, NULL, 10, 10, NULL, NULL }, 0 };
user_allocated_event e4 = { { 0, 0, 0, NULL, NULL, NULL, 10, 10, NULL, NULL }, 0 };
user_allocated_event e5 = { { 0, 0, 0, NULL, NULL, NULL, 0, -1, NULL, NULL }, 0 };
EXPECT_NE(0, equeue_call(&q, simple_func, &touched));
EXPECT_EQ(0, equeue_call(&q, simple_func, &touched));
EXPECT_EQ(0, equeue_call(&q, simple_func, &touched));
EXPECT_NE(0, equeue_call_every(&q, 10, simple_func, &touched));
EXPECT_EQ(0, equeue_call_every(&q, 10, simple_func, &touched));
EXPECT_EQ(0, equeue_call_every(&q, 10, simple_func, &touched));
equeue_post_user_allocated(&q, simple_func, &e1.e);
equeue_post_user_allocated(&q, simple_func, &e2.e);
@ -1087,8 +1087,9 @@ TEST_F(TestEqueue, test_equeue_user_allocated_event_post)
equeue_post_user_allocated(&q, simple_func, &e4.e);
equeue_post_user_allocated(&q, simple_func, &e5.e);
equeue_cancel_user_allocated(&q, &e3.e);
equeue_cancel_user_allocated(&q, &e3.e);
equeue_dispatch(&q, 1);
equeue_dispatch(&q, 11);
EXPECT_EQ(1, touched);
EXPECT_EQ(1, e1.touched);
@ -1097,14 +1098,17 @@ TEST_F(TestEqueue, test_equeue_user_allocated_event_post)
EXPECT_EQ(1, e4.touched);
EXPECT_EQ(1, e5.touched);
equeue_dispatch(&q, 10);
e3.e.target = 10; // set target as it's modified by equeue_call
e3.e.period = 10; // set period as it's reset by equeue_cancel
equeue_post_user_allocated(&q, simple_func, &e3.e);
equeue_dispatch(&q, 101);
EXPECT_EQ(1, touched);
EXPECT_EQ(1, e1.touched);
EXPECT_EQ(1, e2.touched);
EXPECT_EQ(0, e3.touched);
EXPECT_EQ(1, e4.touched);
EXPECT_EQ(1, e5.touched);
EXPECT_EQ(11, touched);
EXPECT_EQ(1 , e1.touched);
EXPECT_EQ(11, e2.touched);
EXPECT_EQ(10 , e3.touched);
EXPECT_EQ(11, e4.touched);
EXPECT_EQ(1 , e5.touched);
equeue_destroy(&q);
}