mirror of
https://github.com/google/pebble
synced 2026-10-18 01:04:12 +02:00
Import of the watch repository from Pebble
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
# Regression test for Issue 256: Proto3 mode skips submessages even when
|
||||
# later array fields have non-zero value
|
||||
|
||||
Import('env')
|
||||
|
||||
env.NanopbProto('submsg_array')
|
||||
|
||||
p = env.Program(['submsg_array.c',
|
||||
'submsg_array.pb.c',
|
||||
"$COMMON/pb_decode.o",
|
||||
"$COMMON/pb_encode.o",
|
||||
"$COMMON/pb_common.o"])
|
||||
|
||||
env.RunTest(p)
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#include <unittests.h>
|
||||
#include <pb_encode.h>
|
||||
#include <pb_decode.h>
|
||||
#include "submsg_array.pb.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
int status = 0;
|
||||
|
||||
COMMENT("Test encoding for submessage with array");
|
||||
{
|
||||
uint8_t buffer[TestMessage_size] = {0};
|
||||
pb_ostream_t ostream = pb_ostream_from_buffer(buffer, TestMessage_size);
|
||||
TestMessage msg = TestMessage_init_zero;
|
||||
|
||||
msg.submsg.rep_uint32_count = 3;
|
||||
msg.submsg.rep_uint32[0] = 0;
|
||||
msg.submsg.rep_uint32[1] = 1;
|
||||
msg.submsg.rep_uint32[2] = 2;
|
||||
|
||||
TEST(pb_encode(&ostream, TestMessage_fields, &msg));
|
||||
TEST(ostream.bytes_written > 0);
|
||||
|
||||
{
|
||||
pb_istream_t istream = pb_istream_from_buffer(buffer, ostream.bytes_written);
|
||||
TestMessage msg2 = TestMessage_init_zero;
|
||||
|
||||
TEST(pb_decode(&istream, TestMessage_fields, &msg2));
|
||||
TEST(msg2.submsg.rep_uint32_count == 3);
|
||||
TEST(msg2.submsg.rep_uint32[0] == 0);
|
||||
TEST(msg2.submsg.rep_uint32[1] == 1);
|
||||
TEST(msg2.submsg.rep_uint32[2] == 2);
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
syntax = "proto3";
|
||||
import "nanopb.proto";
|
||||
|
||||
message SubMessage {
|
||||
repeated uint32 rep_uint32 = 1 [(nanopb).max_count = 3];
|
||||
}
|
||||
|
||||
message TestMessage {
|
||||
SubMessage submsg = 1 [(nanopb).proto3_singular_msgs = true];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user