Skip to content

Commit

Permalink
C decoding.
Browse files Browse the repository at this point in the history
  • Loading branch information
eerimoq committed Aug 24, 2019
1 parent bd90867 commit d4c23eb
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 8 deletions.
28 changes: 25 additions & 3 deletions tests/files/c_source/enum.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,10 +220,32 @@ static int decoder_read_tag(struct decoder_t *self_p,
return (value >> 3);
}

static uint64_t decoder_read_enum(struct decoder_t *self_p,
int wire_type)
static uint64_t decoder_read_varint(struct decoder_t *self_p)
{
return (0);
uint64_t value;
uint8_t byte;
int offset;

value = 0;
offset = 0;

do {
byte = decoder_read_byte(self_p);
value |= (((uint64_t)byte & 0x7f) << offset);
offset += 7;
} while (byte & 0x80);

return (value);
}

static int decoder_read_enum(struct decoder_t *self_p,
int wire_type)
{
if (wire_type != 0) {
return (0);
}

return (decoder_read_varint(self_p));
}

struct enum_message_t *enum_message_new(
Expand Down
10 changes: 5 additions & 5 deletions tests/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -727,11 +727,11 @@ TEST(enum_)
ASSERT_EQ(size, datas[i].size);
ASSERT_EQ(memcmp(&encoded[0], datas[i].encoded_p, size), 0);

/* message_p = enum_message_new(&workspace[0], sizeof(workspace)); */
/* ASSERT_NE(message_p, NULL); */
/* size = enum_message_decode(message_p, &encoded[0], size); */
/* ASSERT_EQ(size, datas[i].size); */
/* ASSERT_EQ(message_p->value, datas[i].decoded); */
message_p = enum_message_new(&workspace[0], sizeof(workspace));
ASSERT_NE(message_p, NULL);
size = enum_message_decode(message_p, &encoded[0], size);
ASSERT_EQ(size, datas[i].size);
ASSERT_EQ(message_p->value, datas[i].decoded);
}
}

Expand Down

0 comments on commit d4c23eb

Please sign in to comment.