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,8 @@
# Build and run a basic test for floating point default values.
Import("env")
env.NanopbProto("floats")
test = env.Program(["infinity_nan_test.c", "floats.pb.c", "$COMMON/pb_decode.o", "$COMMON/pb_common.o"])
env.RunTest(test)

View file

@ -0,0 +1,12 @@
syntax = "proto2";
message Floats {
optional float float_pos_inf = 1 [default = inf];
optional float float_neg_inf = 2 [default = -inf];
optional float float_pos_nan = 3 [default = nan];
optional float float_neg_nan = 4 [default = -nan];
optional double double_pos_inf = 5 [default = inf];
optional double double_neg_inf = 6 [default = -inf];
optional double double_pos_nan = 7 [default = nan];
optional double double_neg_nan = 8 [default = -nan];
}

View file

@ -0,0 +1,62 @@
/* Tests for floating point default values +-infinity and nan. */
#undef __STRICT_ANSI__
#include <math.h>
#include <pb_decode.h>
#include "floats.pb.h"
#include "unittests.h"
bool check_floats(Floats *floats)
{
int status = 0;
TEST(!floats->has_float_pos_inf);
TEST(isinf(floats->float_pos_inf));
TEST(!signbit(floats->float_pos_inf));
TEST(!floats->has_float_neg_inf);
TEST(isinf(floats->float_neg_inf));
TEST(signbit(floats->float_neg_inf));
TEST(!floats->has_float_pos_nan);
TEST(isnan(floats->float_pos_nan));
TEST(!floats->has_float_neg_nan);
TEST(isnan(floats->float_neg_nan));
TEST(!floats->has_double_pos_inf);
TEST(isinf(floats->double_pos_inf));
TEST(!signbit(floats->double_pos_inf));
TEST(!floats->has_double_neg_inf);
TEST(isinf(floats->double_neg_inf));
TEST(signbit(floats->double_neg_inf));
TEST(!floats->has_double_pos_nan);
TEST(isnan(floats->double_pos_nan));
TEST(!floats->has_double_neg_nan);
TEST(isnan(floats->double_neg_nan));
return status == 0;
}
int main()
{
int status = 0;
{
Floats floats = Floats_init_default;
COMMENT("Checking init_default");
TEST(check_floats(&floats));
}
{
Floats floats = {0};
pb_istream_t stream = pb_istream_from_buffer(NULL, 0);
COMMENT("Check decoded");
TEST(pb_decode(&stream, Floats_fields, &floats));
TEST(check_floats(&floats));
}
return status;
}