#include <stdio.h>#include <stddef.h>#include <stdint.h>#include <setjmp.h>#include <string.h>#include <stdarg.h>#include <cmocka.h> enum enval { //# Defvalue = -3, Value0 = 3, //# Value1, //# pretty='wat' Value2 = 1, //# Value3, //#}; struct enums { //# decoder encoder enum enval e; //#1 default=Defvalue enum enval e2; //#2}; #include "test_enums.pb.h" voidtest_enum_default_pretty(void **state){ struct enums def; char buf[128]; (void)state; memset(&def, 0, sizeof(def)); assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 0)); assert_string_equal( buf, "{\n" "e = 0, // #1\n" "}" );} voidtest_enum_pretty(void **state){ struct enums def; char buf[128]; (void)state; def.e = Value0; def.e2 = Value1; assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 2)); assert_string_equal( buf, "{\n" " e = 3 (Value0), // #1\n" " e2 = 4 (wat), // #2\n" "}" ); def.e = Value2; def.e2 = Value3; assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 2)); assert_string_equal( buf, "{\n" " e = 1 (Value2), // #1\n" " e2 = 2 (Value3), // #2\n" "}" );} voidtest_enum_reset(void **state){ struct enums def; char buf[128]; (void)state; pb_reset_enums(&def); assert_true(def.e == Defvalue); assert_true(def.e2 == 0); assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 0)); assert_string_equal( buf, "{}" );}
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
#include <setjmp.h>
#include <string.h>
#include <stdarg.h>
#include <cmocka.h>
enum enval { //#
Defvalue = -3,
Value0 = 3, //#
Value1, //# pretty='wat'
Value2 = 1, //#
Value3, //#
};
struct enums { //# decoder encoder
enum enval e; //#1 default=Defvalue
enum enval e2; //#2
};
#include "test_enums.pb.h"
void
test_enum_default_pretty(void **state)
{
struct enums def;
char buf[128];
(void)state;
memset(&def, 0, sizeof(def));
assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 0));
assert_string_equal(
buf,
"{\n"
"e = 0, // #1\n"
"}"
);
}
void
test_enum_pretty(void **state)
{
struct enums def;
char buf[128];
(void)state;
def.e = Value0;
def.e2 = Value1;
assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 2));
assert_string_equal(
buf,
"{\n"
" e = 3 (Value0), // #1\n"
" e2 = 4 (wat), // #2\n"
"}"
);
def.e = Value2;
def.e2 = Value3;
assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 2));
assert_string_equal(
buf,
"{\n"
" e = 1 (Value2), // #1\n"
" e2 = 2 (Value3), // #2\n"
"}"
);
}
void
test_enum_reset(void **state)
{
struct enums def;
char buf[128];
(void)state;
pb_reset_enums(&def);
assert_true(def.e == Defvalue);
assert_true(def.e2 == 0);
assert_non_null(pb_seprint_enums(&def, buf, buf+sizeof(buf), 0, 0));
assert_string_equal(
buf,
"{}"
);
}