Skip to content
Snippets Groups Projects
Commit efb9a31c authored by Petteri Aimonen's avatar Petteri Aimonen
Browse files

Add testcase for issue #247

parent b5abefc2
No related branches found
No related tags found
No related merge requests found
# Test that pb_check_proto3_default_value() correctly skips padding
# bytes in submessage structures.
Import("env")
env.NanopbProto("padding")
p = env.Program(["padding.c",
"padding.pb.c",
"$COMMON/pb_encode.o",
"$COMMON/pb_common.o"])
env.RunTest(p)
#include <pb_encode.h>
#include <unittests.h>
#include <string.h>
#include "padding.pb.h"
int main()
{
int status = 0;
TestMessage msg;
/* Set padding bytes to garbage */
memset(&msg, 0xAA, sizeof(msg));
/* Set all meaningful fields to 0 */
msg.submsg.boolfield = false;
msg.submsg.intfield = 0;
/* Test encoding */
{
pb_byte_t buf[128] = {0};
pb_ostream_t stream = pb_ostream_from_buffer(buf, sizeof(buf));
TEST(pb_encode(&stream, TestMessage_fields, &msg));
/* Because all fields have zero values, proto3 encoder
* shouldn't write out anything. */
TEST(stream.bytes_written == 0);
}
return status;
}
syntax = "proto3";
import "nanopb.proto";
message SubMessage {
bool boolfield = 1;
int64 intfield = 2;
}
message TestMessage {
SubMessage submsg = 1;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment