58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
#include <string>
|
|
#include <memory>
|
|
|
|
#include <di/errno.h>
|
|
#include <di/stdio.h>
|
|
#include <di/rpc.h>
|
|
#include <di/time.h>
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <di/device/uid.h>
|
|
|
|
#include <di/rpc/serialize.h>
|
|
|
|
#include "tests/rpc_serialize.h"
|
|
|
|
/** Used because serialize message header loads di_time_get_stamp */
|
|
TEST(time, init)
|
|
{
|
|
di_time_init();
|
|
di_device_init();
|
|
}
|
|
|
|
TEST(rpc_serialize_data, error) {
|
|
auto writer = TEST_RPC_SERIALIZE_WRITER;
|
|
mpack_writer_t w;
|
|
struct di_rpc_msg msg;
|
|
struct di_rpc_error err;
|
|
uint8_t buf[128];
|
|
|
|
di_rpc_msg_reset(&msg, di_device_uid_get());
|
|
msg.msg_type = DI_RPC_MSG_TYPE_REPLY;
|
|
msg.type = DI_RPC_TYPE_CONFIG_SET;
|
|
|
|
err.code = DNE_OPDENIED;
|
|
|
|
mpack_writer_init(&w, (char *)&buf, sizeof(buf));
|
|
di_rpc_serialize_item_error(&w, &err);
|
|
|
|
di_rpc_serialize_msg_data(writer->get(), &msg, buf, mpack_writer_buffer_used(&w));
|
|
}
|
|
|
|
TEST(rpc_serialize_device_data_errors, error) {
|
|
auto writer = TEST_RPC_SERIALIZE_WRITER;
|
|
struct di_rpc_device_data data;
|
|
di_errno_t errors[DI_DEVICE_ERROR_LIST_SIZE];
|
|
|
|
di_device_error_set(DNE_FIRMWARE_SPEAKER);
|
|
di_device_error_set(DNE_FIRMWARE_EEPROM);
|
|
|
|
memset(&data, 0, sizeof(data));
|
|
|
|
data.state = di_device_state_get_string();
|
|
data.errors = errors;
|
|
data.errorsn = di_device_error_list_copy(errors);
|
|
|
|
di_rpc_serialize_item(writer->get(), &data);
|
|
}
|