mirror of
https://github.com/google/pebble.git
synced 2025-12-02 04:02:24 -05:00
Import of the watch repository from Pebble
This commit is contained in:
13
third_party/nanopb/tests/regression/issue_166/SConscript
vendored
Normal file
13
third_party/nanopb/tests/regression/issue_166/SConscript
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# Verify that the maximum encoded size is calculated properly
|
||||
# for enums.
|
||||
|
||||
Import('env')
|
||||
|
||||
env.NanopbProto('enums')
|
||||
|
||||
p = env.Program(["enum_encoded_size.c",
|
||||
"enums.pb.c",
|
||||
"$COMMON/pb_encode.o",
|
||||
"$COMMON/pb_common.o"])
|
||||
env.RunTest(p)
|
||||
|
||||
43
third_party/nanopb/tests/regression/issue_166/enum_encoded_size.c
vendored
Normal file
43
third_party/nanopb/tests/regression/issue_166/enum_encoded_size.c
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <pb_encode.h>
|
||||
#include "unittests.h"
|
||||
#include "enums.pb.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
int status = 0;
|
||||
|
||||
uint8_t buf[256];
|
||||
SignedMsg msg1;
|
||||
UnsignedMsg msg2;
|
||||
pb_ostream_t s;
|
||||
|
||||
{
|
||||
COMMENT("Test negative value of signed enum");
|
||||
/* Negative value should take up the maximum size */
|
||||
msg1.value = SignedEnum_SE_MIN;
|
||||
s = pb_ostream_from_buffer(buf, sizeof(buf));
|
||||
TEST(pb_encode(&s, SignedMsg_fields, &msg1));
|
||||
TEST(s.bytes_written == SignedMsg_size);
|
||||
|
||||
COMMENT("Test positive value of signed enum");
|
||||
/* Positive value should be smaller */
|
||||
msg1.value = SignedEnum_SE_MAX;
|
||||
s = pb_ostream_from_buffer(buf, sizeof(buf));
|
||||
TEST(pb_encode(&s, SignedMsg_fields, &msg1));
|
||||
TEST(s.bytes_written < SignedMsg_size);
|
||||
}
|
||||
|
||||
{
|
||||
COMMENT("Test positive value of unsigned enum");
|
||||
/* This should take up the maximum size */
|
||||
msg2.value = UnsignedEnum_UE_MAX;
|
||||
s = pb_ostream_from_buffer(buf, sizeof(buf));
|
||||
TEST(pb_encode(&s, UnsignedMsg_fields, &msg2));
|
||||
TEST(s.bytes_written == UnsignedMsg_size);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
18
third_party/nanopb/tests/regression/issue_166/enums.proto
vendored
Normal file
18
third_party/nanopb/tests/regression/issue_166/enums.proto
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
syntax = "proto2";
|
||||
|
||||
enum SignedEnum {
|
||||
SE_MIN = -1;
|
||||
SE_MAX = 255;
|
||||
}
|
||||
|
||||
enum UnsignedEnum {
|
||||
UE_MAX = 65536;
|
||||
}
|
||||
|
||||
message SignedMsg {
|
||||
required SignedEnum value = 1;
|
||||
}
|
||||
|
||||
message UnsignedMsg {
|
||||
required UnsignedEnum value = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user