#include #include #include #include #include "t_test_thrift_test_types.h" #include "thrift_test_handler.h" static const char TEST_ADDRESS[] = "localhost"; static const int TEST_PORT = 64444; static void test_thrift_server (void) { ThriftServerSocket *tsocket = g_object_new (THRIFT_TYPE_SERVER_SOCKET, "port", TEST_PORT, NULL); g_object_unref (tsocket); } static void set_indicator (gpointer data, GObject *where_the_object_was) { THRIFT_UNUSED_VAR(where_the_object_was); *(gboolean *) data = TRUE; } static void test_thrift_handler (void) { GError *error; GHashTable *_return; TTestInsanity *argument; gboolean indicator; TTestXtruct *xtruct, *xtruct2; TTestNumberz numberz; TTestNumberz numberz2; TTestUserId user_id, *user_id_ptr, *user_id_ptr2; GHashTable *user_map; GPtrArray *xtructs; error = NULL; indicator = FALSE; user_map = NULL; xtructs = NULL; argument = g_object_new (T_TEST_TYPE_INSANITY, NULL); g_object_get (argument, "userMap", &user_map, "xtructs", &xtructs, NULL); numberz = T_TEST_NUMBERZ_FIVE; numberz2 = T_TEST_NUMBERZ_EIGHT; user_id_ptr = g_malloc (sizeof *user_id_ptr); *user_id_ptr = 5; user_id_ptr2 = g_malloc (sizeof *user_id_ptr); *user_id_ptr2 = 8; g_hash_table_insert (user_map, (gpointer)numberz, user_id_ptr); g_hash_table_insert (user_map, (gpointer)numberz2, user_id_ptr2); g_hash_table_unref (user_map); xtruct = g_object_new (T_TEST_TYPE_XTRUCT, "string_thing", "Hello2", "byte_thing", 2, "i32_thing", 2, "i64_thing", 2LL, NULL); xtruct2 = g_object_new (T_TEST_TYPE_XTRUCT, "string_thing", "Goodbye4", "byte_thing", 4, "i32_thing", 4, "i64_thing", 4LL, NULL); g_ptr_array_add (xtructs, xtruct2); g_ptr_array_add (xtructs, xtruct); g_ptr_array_unref (xtructs); _return = g_hash_table_new_full (g_int64_hash, g_int64_equal, g_free, (GDestroyNotify)g_hash_table_unref); g_object_weak_ref (G_OBJECT (argument), set_indicator, (gpointer) &indicator); g_assert (thrift_test_handler_test_insanity (NULL, &_return, argument, &error)); g_assert (! indicator); g_hash_table_unref (_return); g_assert (! indicator); g_object_unref (argument); g_assert (indicator); } int main(int argc, char *argv[]) { #if (!GLIB_CHECK_VERSION (2, 36, 0)) g_type_init(); #endif g_test_init (&argc, &argv, NULL); g_test_add_func ("/testthrift/Server", test_thrift_server); g_test_add_func ("/testthrift/Handler", test_thrift_handler); return g_test_run (); }