Skip to content

Commit 18a3838

Browse files
JordanYatesjhedberg
authored andcommitted
tests: zbus: publish_stats: test zbus_chan_pub_stats_data_age
Test the behaviour of `zbus_chan_pub_stats_data_age`. Signed-off-by: Jordan Yates <jordan@embeint.com>
1 parent a9626ff commit 18a3838

File tree

1 file changed

+11
-0
lines changed
  • tests/subsys/zbus/publish_stats/src

1 file changed

+11
-0
lines changed

tests/subsys/zbus/publish_stats/src/main.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,21 @@ ZTEST(publish_stats, test_channel_metadata)
2323
zassert_equal(0, zbus_chan_pub_stats_count(&chan));
2424
zassert_equal(0, zbus_chan_pub_stats_last_time(&chan));
2525
zassert_equal(0, zbus_chan_pub_stats_avg_period(&chan));
26+
zassert_equal(UINT64_MAX, zbus_chan_pub_stats_msg_age(&chan));
2627

2728
/* Should be no different after a second of runtime */
2829
k_sleep(K_TIMEOUT_ABS_MS(1000));
2930
zassert_equal(0, zbus_chan_pub_stats_count(&chan));
3031
zassert_equal(0, zbus_chan_pub_stats_last_time(&chan));
3132
zassert_equal(0, zbus_chan_pub_stats_avg_period(&chan));
33+
zassert_equal(UINT64_MAX, zbus_chan_pub_stats_msg_age(&chan));
3234

3335
/* Normal publish */
3436
zassert_equal(0, zbus_chan_pub(&chan, &val, K_NO_WAIT));
3537
zassert_equal(1, zbus_chan_pub_stats_count(&chan));
3638
zassert_within(k_uptime_ticks(), zbus_chan_pub_stats_last_time(&chan), clock_window);
3739
zassert_within(1000, zbus_chan_pub_stats_avg_period(&chan), 50);
40+
zassert_equal(0, zbus_chan_pub_stats_msg_age(&chan));
3841

3942
/* Push 4 times in quick succession, wait for 2 second boundary */
4043
for (int i = 0; i < 4; i++) {
@@ -45,24 +48,28 @@ ZTEST(publish_stats, test_channel_metadata)
4548
zassert_equal(5, zbus_chan_pub_stats_count(&chan));
4649
zassert_within(pub_time, zbus_chan_pub_stats_last_time(&chan), clock_window);
4750
zassert_within(400, zbus_chan_pub_stats_avg_period(&chan), 50);
51+
zassert_within(1000, zbus_chan_pub_stats_msg_age(&chan), clock_window);
4852

4953
/* Channel claim and finish does not update metadata by default */
5054
zassert_equal(0, zbus_chan_claim(&chan, K_NO_WAIT));
5155
zassert_equal(0, zbus_chan_finish(&chan));
56+
zassert_within(1000, zbus_chan_pub_stats_msg_age(&chan), clock_window);
5257

5358
zassert_equal(0, zbus_chan_claim(&chan, K_NO_WAIT));
5459
cval = zbus_chan_msg(&chan);
5560
cval->x = 1000;
5661
zassert_equal(0, zbus_chan_finish(&chan));
5762
zassert_equal(5, zbus_chan_pub_stats_count(&chan));
5863
zassert_within(pub_time, zbus_chan_pub_stats_last_time(&chan), clock_window);
64+
zassert_within(1000, zbus_chan_pub_stats_msg_age(&chan), clock_window);
5965

6066
/* Channel notify does not update metadata */
6167
for (int i = 0; i < 10; i++) {
6268
zassert_equal(0, zbus_chan_notify(&chan, K_NO_WAIT));
6369
}
6470
zassert_equal(5, zbus_chan_pub_stats_count(&chan));
6571
zassert_within(pub_time, zbus_chan_pub_stats_last_time(&chan), clock_window);
72+
zassert_within(1000, zbus_chan_pub_stats_msg_age(&chan), clock_window);
6673

6774
/* Manually update publish statistics with claim */
6875
zassert_equal(0, zbus_chan_claim(&chan, K_NO_WAIT));
@@ -74,6 +81,10 @@ ZTEST(publish_stats, test_channel_metadata)
7481
zassert_equal(6, zbus_chan_pub_stats_count(&chan));
7582
zassert_within(pub_time, zbus_chan_pub_stats_last_time(&chan), clock_window);
7683
zassert_within(500, zbus_chan_pub_stats_avg_period(&chan), 50);
84+
zassert_within(1000, zbus_chan_pub_stats_msg_age(&chan), clock_window);
85+
86+
k_sleep(K_TIMEOUT_ABS_MS(5000));
87+
zassert_within(3000, zbus_chan_pub_stats_msg_age(&chan), clock_window);
7788
}
7889

7990
ZTEST_SUITE(publish_stats, NULL, NULL, NULL, NULL, NULL);

0 commit comments

Comments
 (0)