diff options
Diffstat (limited to 'test/pbdrv')
-rw-r--r-- | test/pbdrv/main.cpp | 18 | ||||
-rw-r--r-- | test/pbdrv/mod.c | 12 | ||||
-rw-r--r-- | test/pbdrv/msg.cpp | 56 | ||||
-rw-r--r-- | test/pbdrv/msg.h | 32 | ||||
-rw-r--r-- | test/pbdrv/pb-route.c | 2 |
5 files changed, 102 insertions, 18 deletions
diff --git a/test/pbdrv/main.cpp b/test/pbdrv/main.cpp deleted file mode 100644 index de7e88a..0000000 --- a/test/pbdrv/main.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include <gtest/gtest.h> - -#include "pb-write.h" - -TEST(pbdrv, write) { - - pbdrv_buf_t buf = pbdrv_write_cmd_req_set_state({ - .header = { .sender = 0xf0, }, - .state = PB_GS_PLAYING, - }); - for (size_t i = 0; i < buf.size; i++) { - printf("%02x ", buf.data[i] & 0xff); - } - printf("\n"); - - ASSERT_TRUE(true); -} - diff --git a/test/pbdrv/mod.c b/test/pbdrv/mod.c new file mode 100644 index 0000000..5c4c95e --- /dev/null +++ b/test/pbdrv/mod.c @@ -0,0 +1,12 @@ +#include <stdio.h> + +#include "pb-mod.h" +#include "pb-types.h" + +const char * PB_MOD_NAME = "test"; +const i2c_addr_t PB_MOD_ADDR = 0x08; + +void pb_i2c_send(i2c_addr_t addr, const uint8_t * buf, size_t sz) { + printf("[0x%02x]: buf[%lu]\n", addr & 0x7f, sz); +} + diff --git a/test/pbdrv/msg.cpp b/test/pbdrv/msg.cpp new file mode 100644 index 0000000..ca23bc7 --- /dev/null +++ b/test/pbdrv/msg.cpp @@ -0,0 +1,56 @@ +#include <gtest/gtest.h> + +#include "pb-msg.h" +#include "pb-send.h" +#include "pb-mod.h" + +TEST(pb_msg_rw, cmd_req_read) { + pb_cmd_prop_t cmd = { + .propid = 2, + }; + pb_msg_t msg_write = { + .type = PB_CMD_PROP, + .action = PB_ACTION_REQ, + .sender = 0xff, + .cmd = &cmd, + }; + pb_buf_t buf = pb_msg_write(&msg_write); + + ASSERT_NE(buf.data, nullptr); + ASSERT_GE(buf.size, 0); + + pb_msg_t * msg_read = pb_msg_read(&buf); + pb_buf_free(&buf); + + ASSERT_EQ(buf.data, nullptr); + + EXPECT_EQ(msg_write.type, msg_read->type); + EXPECT_EQ(msg_write.sender, msg_read->sender); + EXPECT_NE(nullptr, msg_read->cmd); + pb_cmd_prop_t * prop = (pb_cmd_prop_t *) msg_read->cmd; + EXPECT_EQ(prop->propid, cmd.propid); + + pb_msg_free(msg_read); +} + +TEST(pb_msg_rw, cmd_req_magic) { + pb_buf_t buf = pb_send_magic_req(); + + ASSERT_NE(buf.data, nullptr); + ASSERT_GE(buf.size, 0); + + pb_msg_t * msg_read = pb_msg_read(&buf); + pb_buf_free(&buf); + + ASSERT_EQ(buf.data, nullptr); + + EXPECT_EQ(msg_read->type, PB_CMD_MAGIC); + EXPECT_EQ(msg_read->sender, PB_MOD_ADDR); + EXPECT_NE(msg_read->cmd, nullptr); + pb_cmd_magic_t * magic = (pb_cmd_magic_t *) msg_read->cmd; + EXPECT_EQ(magic->_magic_size, sizeof(pb_cmd_magic_req)); + EXPECT_EQ(0, memcmp(pb_cmd_magic_req, magic->magic, magic->_magic_size)); + + pb_msg_free(msg_read); +} + diff --git a/test/pbdrv/msg.h b/test/pbdrv/msg.h new file mode 100644 index 0000000..52bee37 --- /dev/null +++ b/test/pbdrv/msg.h @@ -0,0 +1,32 @@ +#pragma once + +#include "pb-types.h" + +static const pb_cmd_req_read_t expected_req_read = { + .propid = 0, +}; + +static const pb_cmd_res_read_t expected_res_read = { + .propid = 0, + .value = (uint8_t[]) { 0x00, }, + ._value_size = 1, +}; + +static const pb_cmd_req_write_t expected_req_write = { + .propid = 0, + .value = (uint8_t[]) { 0x00, }, + ._value_size = 1, +}; + +static const pb_cmd_req_state_t expected_req_state = { + .state = PB_GS_PLAYING, +}; + +static const pb_cmd_res_state_t expected_res_state = { + .state = PB_GS_IDLE, +}; + +static const pb_cmd_req_set_state_t expected_req_set_state ={ + .state = PB_GS_PLAYING, +}; + diff --git a/test/pbdrv/pb-route.c b/test/pbdrv/pb-route.c new file mode 100644 index 0000000..62a4b85 --- /dev/null +++ b/test/pbdrv/pb-route.c @@ -0,0 +1,2 @@ +void pb_mod_blocking_delay_ms(unsigned long ms) { } + |