Import of the watch repository from Pebble

This commit is contained in:
Matthieu Jeanson 2024-12-12 16:43:03 -08:00 committed by Katharine Berry
commit 3b92768480
10334 changed files with 2564465 additions and 0 deletions

View file

@ -0,0 +1,17 @@
# Test that multiple .proto files don't cause name collisions.
Import("env")
incpath = env.Clone()
incpath.Append(PROTOCPATH = '#multiple_files')
incpath.Append(CPPPATH = '$BUILD/multiple_files')
incpath.NanopbProto(["multifile1", "multifile1.options"])
incpath.NanopbProto("multifile2")
incpath.NanopbProto("subdir/multifile2")
test = incpath.Program(["test_multiple_files.c", "multifile1.pb.c",
"multifile2.pb.c", "subdir/multifile2.pb.c",
"$COMMON/pb_common.o"])
env.RunTest(test)

View file

@ -0,0 +1 @@
StaticMessage.repint32 max_count:5

View file

@ -0,0 +1,34 @@
syntax = "proto2";
message SubMessage {
optional string stringvalue = 1;
repeated int32 int32value = 2;
repeated fixed32 fixed32value = 3;
repeated fixed64 fixed64value = 4;
}
message TestMessage {
optional string stringvalue = 1;
repeated int32 int32value = 2;
repeated fixed32 fixed32value = 3;
repeated fixed64 fixed64value = 4;
optional SubMessage submsg = 5;
repeated string repeatedstring = 6;
}
message StaticMessage {
repeated fixed32 repint32 = 1;
}
enum SignedEnum {
SE_MIN = -128;
SE_MAX = 127;
}
enum UnsignedEnum {
UE_MIN = 0;
UE_MAX = 255;
}

View file

@ -0,0 +1,22 @@
// Test if including generated header file for this file + implicit include of
// multifile2.pb.h still compiles. Used with test_compiles.c.
syntax = "proto2";
import "multifile1.proto";
message Callback2Message {
required TestMessage tstmsg = 1;
required SubMessage submsg = 2;
}
message OneofMessage {
oneof msgs {
StaticMessage tstmsg = 1;
}
}
message Enums {
required SignedEnum senum = 1;
required UnsignedEnum uenum = 2;
}

View file

@ -0,0 +1,30 @@
syntax = "proto2";
package subdir;
import "multifile1.proto";
message Callback2Message {
required TestMessage tstmsg = 1;
required SubMessage submsg = 2;
}
message SmallMessage {
required bool dummy = 1;
}
message OneofMessage {
oneof msgs {
StaticMessage tstmsg = 1;
SmallMessage msg2 = 2;
}
}
message Enums {
required SignedEnum senum = 1;
required UnsignedEnum uenum = 2;
}
message SubdirMessage {
required int32 foo = 1 [default = 15];
}

View file

@ -0,0 +1,38 @@
/*
* Tests if this still compiles when multiple .proto files are involved.
*/
#include <stdio.h>
#include <pb_encode.h>
#include <pb_common.h>
#include "unittests.h"
#include "multifile2.pb.h"
#include "subdir/multifile2.pb.h"
int main()
{
int status = 0;
/* Test that included file options are properly loaded */
TEST(OneofMessage_size == 27);
/* Check that enum signedness is detected properly */
{
pb_field_iter_t iter;
Enums msg;
TEST(pb_field_iter_begin(&iter, Enums_fields, &msg));
TEST(PB_LTYPE(iter.type) == PB_LTYPE_VARINT);
TEST(pb_field_iter_next(&iter));
TEST(PB_LTYPE(iter.type) == PB_LTYPE_UVARINT);
}
/* Test that subdir file is correctly included */
{
subdir_SubdirMessage foo = subdir_SubdirMessage_init_default;
TEST(foo.foo == 15);
TEST(subdir_OneofMessage_size >= 27); /* Note: not perfectly accurate due to issue 172 */
TEST(subdir_OneofMessage_size <= 30);
}
return status;
}