src.dualinventive.com/fw/dncm/libdi/tests/mpack.cpp

39 lines
696 B
C++

#include <mpack/mpack.h>
#include <gtest/gtest.h>
static mpack_reader_t r;
static const char data[] = "\x82\xA7""compact\xC3\xA6""schema\x00";
TEST(mpack, get_tag_example)
{
mpack_tag_t t;
char key[32];
/* char val[32]; */
mpack_reader_init_data(&r, data, sizeof(data) - 1);
size_t keys = mpack_expect_map(&r);
printf("map size: %zu\n", keys);
for (size_t n = 0; n < keys; n++) {
mpack_expect_cstr(&r, key, sizeof(key));
t = mpack_read_tag(&r);
switch (t.type) {
case mpack_type_str:
mpack_read_bytes(&r, key, t.v.l);
break;
default:
break;
}
printf("key: %s\n", key);
/* printf("val: %s\n", val); */
}
mpack_done_map(&r);
mpack_reader_destroy(&r);
}