From aaa1d01d382031c47f4df2a06d9288324e5b7b94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 31 Jul 2019 19:20:27 -0400 Subject: tests: Port test-fullmode-with-stun wrapper to C Shell scripts don't work well on Windows and Python doesn't work with valgrind. --- tests/meson.build | 17 +++++++++---- tests/test-fullmode-with-stun.c | 56 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 tests/test-fullmode-with-stun.c diff --git a/tests/meson.build b/tests/meson.build index 332a8a9..4cb1cb1 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -54,6 +54,18 @@ foreach tname : nice_tests install: false) set_variable(tname.underscorify(), exe) test(tname, exe, env: tenv) + + if tname == 'test-fullmode' + wrapper_exe = executable ('nice-test-fullmode-with-stun', + 'test-fullmode-with-stun.c', + dependencies: gio_deps, + install: false) + test('test-fullmode-with-stun', wrapper_exe, + args: [stund_exe, test_fullmode], + env: tenv, + is_parallel: false, + depends: exe) + endif endforeach if gst_dep.found() @@ -81,11 +93,6 @@ if find_program('sh', required : false).found() args: test_pseudotcp, env: tenv) endif - - test('test-fullmode-with-stun', files('check-test-fullmode-with-stun.sh'), - args: [stund_exe, test_fullmode], - env: tenv, - is_parallel: false) endif debugenv = environment() diff --git a/tests/test-fullmode-with-stun.c b/tests/test-fullmode-with-stun.c new file mode 100644 index 0000000..7d0b9fd --- /dev/null +++ b/tests/test-fullmode-with-stun.c @@ -0,0 +1,56 @@ +#include + +int +main (int argc, char ** argv) +{ + int retval = 0; + char *stund; + char *test_fullmode; + GSubprocessLauncher *launcher; + GSubprocess *stund_proc, *test_subprocess; + const gchar NICE_STUN_SERVER[] = "127.0.0.1"; + const gchar NICE_STUN_SERVER_PORT[] = "3800"; + GError *gerr = NULL; + + if (argc < 3) { + g_printerr ("Usage: %s \n", + argv[0]); + return 77; + } + + stund = argv[1]; + test_fullmode = argv[2]; + + g_print ("Starting ICE full-mode with STUN unit test.\n"); + g_print ("Launching %s on port %s.\n", stund, NICE_STUN_SERVER_PORT); + + + stund_proc = g_subprocess_new (G_SUBPROCESS_FLAGS_NONE, &gerr, + stund, NICE_STUN_SERVER_PORT, NULL); + + sleep(1); + + launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE); + + g_subprocess_launcher_setenv (launcher, "NICE_STUN_SERVER", NICE_STUN_SERVER, + TRUE); + g_subprocess_launcher_setenv (launcher, "NICE_STUN_SERVER_PORT", + NICE_STUN_SERVER_PORT, TRUE); + g_print ("Running test fullmode as %s\n", test_fullmode); + test_subprocess = g_subprocess_launcher_spawn (launcher, &gerr, + test_fullmode, NULL); + g_assert_no_error (gerr); + g_subprocess_wait (test_subprocess, NULL, &gerr); + g_assert_no_error (gerr); + retval = g_subprocess_get_exit_status (test_subprocess); + g_print ("Test process returned %d\n", retval); + g_object_unref (test_subprocess); + g_object_unref (launcher); + + g_subprocess_force_exit (stund_proc); + g_subprocess_wait (stund_proc, NULL, &gerr); + g_assert_no_error (gerr); + g_object_unref(stund_proc); + + return retval; +} -- cgit v1.2.1