more unittests

git-svn-id: https://svn.kapsi.fi/jpa/nanopb@964 e3a754e5-d11d-0410-8d38-ebb782a927b9
This commit is contained in:
Petteri Aimonen
2011-08-23 15:57:47 +00:00
parent 7780da38e8
commit 9966a8c9b6
2 changed files with 15 additions and 6 deletions

View File

@@ -337,17 +337,14 @@ bool checkreturn pb_decode(pb_istream_t *stream, const pb_field_t fields[], void
pb_field_iterator_t iter; pb_field_iterator_t iter;
int i; int i;
if (fields[0].tag == 0)
{
/* No fields -> nothing to do */
return pb_read(stream, NULL, stream->bytes_left);
}
pb_field_init(&iter, fields, dest_struct); pb_field_init(&iter, fields, dest_struct);
/* Initialize size/has fields and apply default values */ /* Initialize size/has fields and apply default values */
do do
{ {
if (iter.current->tag == 0)
continue;
if (PB_HTYPE(iter.current->type) == PB_HTYPE_OPTIONAL) if (PB_HTYPE(iter.current->type) == PB_HTYPE_OPTIONAL)
{ {
*(bool*)iter.pSize = false; *(bool*)iter.pSize = false;

View File

@@ -282,6 +282,18 @@ int main()
TEST((s = S("\x08\x55"), !pb_decode(&s, CallbackArray_fields, &dest))) TEST((s = S("\x08\x55"), !pb_decode(&s, CallbackArray_fields, &dest)))
} }
{
pb_istream_t s;
IntegerArray dest;
COMMENT("Testing pb_decode message termination")
TEST((s = S(""), pb_decode(&s, IntegerArray_fields, &dest)))
TEST((s = S("\x00"), pb_decode(&s, IntegerArray_fields, &dest)))
TEST((s = S("\x08\x01"), pb_decode(&s, IntegerArray_fields, &dest)))
TEST((s = S("\x08\x01\x00"), pb_decode(&s, IntegerArray_fields, &dest)))
TEST((s = S("\x08"), !pb_decode(&s, IntegerArray_fields, &dest)))
}
if (status != 0) if (status != 0)
fprintf(stdout, "\n\nSome tests FAILED!\n"); fprintf(stdout, "\n\nSome tests FAILED!\n");