mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2026-01-06 08:39:03 +03:00
add nanopb (manual)
This commit is contained in:
@@ -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)
|
||||
@@ -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];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user