#include #include #include #include #include #include #include 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, "{}" ); }