THRIFT-3464 Fix several defects in c_glib code generator
Client: c_glib compiler
Patch: Nobuaki Sukegawa
This closes #724
diff --git a/lib/c_glib/test/testoptionalrequired.c b/lib/c_glib/test/testoptionalrequired.c
index ae0c3d2..cfc96a2 100755
--- a/lib/c_glib/test/testoptionalrequired.c
+++ b/lib/c_glib/test/testoptionalrequired.c
@@ -187,6 +187,26 @@
g_object_unref (t3);
}
+static void
+test_non_set_binary (void)
+{
+ TTestBinaries *b1 = NULL;
+ TTestBinaries *b2 = NULL;
+ GError *error = NULL;
+
+ b1 = g_object_new (T_TEST_TYPE_BINARIES, NULL);
+ b2 = g_object_new (T_TEST_TYPE_BINARIES, NULL);
+
+ write_to_read (THRIFT_STRUCT (b1), THRIFT_STRUCT (b2), NULL, &error);
+ g_assert(!error);
+ write_to_read (THRIFT_STRUCT (b2), THRIFT_STRUCT (b1), NULL, &error);
+ g_assert(!error);
+ // OK. No segfault
+
+ g_object_unref (b1);
+ g_object_unref (b2);
+}
+
int
main(int argc, char *argv[])
{
@@ -202,6 +222,7 @@
g_test_add_func ("/testoptionalrequired/Tricky2", test_tricky2);
g_test_add_func ("/testoptionalrequired/Tricky3", test_tricky3);
g_test_add_func ("/testoptionalrequired/Tricky4", test_tricky4);
+ g_test_add_func ("/testoptionalrequired/Binary", test_non_set_binary);
return g_test_run ();
}