~schuster/mysql-proxy/remove_unix_socket

« back to all changes in this revision

Viewing changes to tests/unit/t_network_socket.c

  • Committer: michael.schuster at oracle
  • Date: 2010-05-03 08:17:46 UTC
  • Revision ID: michael.schuster@oracle.com-20100503081746-21rjhzp89ny3ak3d
add check for local socket removal to "is local" testcase

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#include <string.h>
24
24
#include <errno.h>
25
25
 
 
26
#ifndef WIN32
 
27
#include <unistd.h>
 
28
#endif /* WIN32 */
 
29
 
26
30
#include <glib.h>
27
31
#include <glib/gstdio.h> /* for g_unlink */
28
32
 
295
299
        network_socket_free(server);
296
300
}
297
301
 
 
302
#ifndef WIN32
 
303
 
 
304
#define LOCAL_SOCK "/tmp/mysql-proxy-test.socket"
 
305
 
298
306
/**
299
307
 * test if _is_local() works on unix-domain sockets
300
308
 *
304
312
        network_socket *s_sock; /* the server side socket, listening for requests */
305
313
        network_socket *c_sock; /* the client side socket, that connects */
306
314
        network_socket *a_sock; /* the server side, accepted socket */
 
315
        gchar sockname[sizeof(LOCAL_SOCK) + 10];
307
316
 
308
317
        g_test_bug("42220");
309
318
        g_log_set_always_fatal(G_LOG_FATAL_MASK); /* gtest modifies the fatal-mask */
310
319
 
 
320
        snprintf(sockname, sizeof(sockname), LOCAL_SOCK ".%d", (int)getpid());
 
321
 
311
322
        s_sock = network_socket_new();
312
 
        network_address_set_address(s_sock->dst, "/tmp/mysql-proxy-test.socket");
 
323
        network_address_set_address(s_sock->dst, sockname);
313
324
 
314
325
        c_sock = network_socket_new();
315
 
        network_address_set_address(c_sock->dst, "/tmp/mysql-proxy-test.socket");
 
326
        network_address_set_address(c_sock->dst, sockname);
316
327
 
317
328
        /* hack together a network_socket_accept() which we don't have in this tree yet */
318
329
        g_assert_cmpint(NETWORK_SOCKET_SUCCESS, ==, network_socket_bind(s_sock));
319
330
 
 
331
        g_assert_cmpint(g_access(sockname, 0), ==, 0);
 
332
 
320
333
        g_assert_cmpint(NETWORK_SOCKET_SUCCESS, ==, network_socket_connect(c_sock));
321
334
 
322
335
        a_sock = network_socket_accept(s_sock);
325
338
        g_assert_cmpint(TRUE, ==, network_address_is_local(s_sock->dst, a_sock->dst));
326
339
 
327
340
        network_socket_free(a_sock);
 
341
        g_assert_cmpint(g_access(sockname, 0), ==, 0);
328
342
        network_socket_free(c_sock);
 
343
        g_assert_cmpint(g_access(sockname, 0), ==, 0);
329
344
        network_socket_free(s_sock);
 
345
        g_assert_cmpint(g_access(sockname, 0), ==, -1);
330
346
 
331
 
        g_unlink("/tmp/mysql-proxy-test.socket");
 
347
        /* g_unlink("/tmp/mysql-proxy-test.socket"); */
332
348
}
 
349
#endif /* WIN32 */
333
350
 
334
351
 
335
352
int main(int argc, char **argv) {
342
359
        g_test_add_func("/core/network_queue_append", test_network_queue_append);
343
360
        g_test_add_func("/core/network_queue_peek_string", test_network_queue_peek_string);
344
361
        g_test_add_func("/core/network_queue_pop_string", test_network_queue_pop_string);
 
362
#ifndef WIN32
345
363
        g_test_add_func("/core/network_socket_is_local_unix", t_network_socket_is_local_unix);
 
364
#endif
346
365
#if 0
347
366
        /**
348
367
         * disabled for now until we fixed the _to_read() on HP/UX and AIX (and MacOS X)
354
373
 
355
374
        return g_test_run();
356
375
}
357
 
#else
 
376
#else /* GLIB_CHECK_VERSION */
358
377
int main() {
359
378
        return 77;
360
379
}
361
 
#endif
 
380
#endif /* GLIB_CHECK_VERSION */