mirror of
https://github.com/google/pebble.git
synced 2025-07-28 02:04:53 -04:00
Import of the watch repository from Pebble
This commit is contained in:
commit
3b92768480
10334 changed files with 2564465 additions and 0 deletions
13
third_party/nanopb/tests/regression/issue_242/SConscript
vendored
Normal file
13
third_party/nanopb/tests/regression/issue_242/SConscript
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Regression test for Issue 242: pb_encode does not encode tag for
|
||||
# extension fields that is all zeros
|
||||
Import('env')
|
||||
|
||||
env.NanopbProto('zero_value')
|
||||
|
||||
p = env.Program(["zero_value.c",
|
||||
"zero_value.pb.c",
|
||||
"$COMMON/pb_decode.o",
|
||||
"$COMMON/pb_encode.o",
|
||||
"$COMMON/pb_common.o"])
|
||||
env.RunTest(p)
|
||||
|
51
third_party/nanopb/tests/regression/issue_242/zero_value.c
vendored
Normal file
51
third_party/nanopb/tests/regression/issue_242/zero_value.c
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
#include <unittests.h>
|
||||
#include <pb_encode.h>
|
||||
#include <pb_decode.h>
|
||||
#include <string.h>
|
||||
#include "zero_value.pb.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
int status = 0;
|
||||
|
||||
COMMENT("Test extension fields with zero values");
|
||||
{
|
||||
uint8_t buffer[256] = {0};
|
||||
pb_ostream_t ostream;
|
||||
int32_t value = 0;
|
||||
Extendable source = {0};
|
||||
|
||||
pb_extension_t source_ext = {0};
|
||||
source_ext.type = &opt_int32;
|
||||
source_ext.dest = &value;
|
||||
source.extensions = &source_ext;
|
||||
|
||||
ostream = pb_ostream_from_buffer(buffer, sizeof(buffer));
|
||||
TEST(pb_encode(&ostream, Extendable_fields, &source));
|
||||
|
||||
TEST(ostream.bytes_written == 2);
|
||||
TEST(memcmp(buffer, "\x58\x00", 2) == 0);
|
||||
}
|
||||
|
||||
/* Note: There never was a bug here, but this check is included
|
||||
* in the regression test because the logic is closely related.
|
||||
*/
|
||||
COMMENT("Test pointer fields with zero values");
|
||||
{
|
||||
uint8_t buffer[256] = {0};
|
||||
pb_ostream_t ostream;
|
||||
int32_t value = 0;
|
||||
PointerMessage source = {0};
|
||||
|
||||
source.opt_int32 = &value;
|
||||
|
||||
ostream = pb_ostream_from_buffer(buffer, sizeof(buffer));
|
||||
TEST(pb_encode(&ostream, PointerMessage_fields, &source));
|
||||
|
||||
TEST(ostream.bytes_written == 2);
|
||||
TEST(memcmp(buffer, "\x58\x00", 2) == 0);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
15
third_party/nanopb/tests/regression/issue_242/zero_value.proto
vendored
Normal file
15
third_party/nanopb/tests/regression/issue_242/zero_value.proto
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
syntax = "proto2";
|
||||
import "nanopb.proto";
|
||||
|
||||
message Extendable {
|
||||
extensions 10 to 100;
|
||||
}
|
||||
|
||||
extend Extendable {
|
||||
optional int32 opt_int32 = 11;
|
||||
}
|
||||
|
||||
message PointerMessage {
|
||||
optional int32 opt_int32 = 11 [(nanopb).type = FT_POINTER];
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue