blob: 23a934db996e4516d3bb86ee0b2448cb23ee5962 [file] [log] [blame]
#include <netdb.h>
#include <thrift/c_glib/thrift.h>
#include <thrift/c_glib/transport/thrift_server_transport.h>
#include <thrift/c_glib/transport/thrift_server_socket.h>
#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 ();
}