more unittests
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@964 e3a754e5-d11d-0410-8d38-ebb782a927b9
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user