diff options
| author | Michael Biebl <biebl@debian.org> | 2018-04-23 18:00:21 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2018-04-23 18:00:21 +0200 |
| commit | f60117b41d5433be1b4a96d82cd11d0c3dce9b63 (patch) | |
| tree | 2dd55c4ab0fdcbe9cddb26adb4a554b1a45c73c8 /src/tests | |
| parent | 7e9ff09fcb2366b383b7ebbec80d2f6fff117290 (diff) | |
New upstream version 1.11.3 upstream/1.11.3
Diffstat (limited to 'src/tests')
| -rw-r--r-- | src/tests/config/meson.build | 26 | ||||
| -rw-r--r-- | src/tests/config/nm-test-device.c | 2 | ||||
| -rw-r--r-- | src/tests/config/test-config.c | 39 | ||||
| -rw-r--r-- | src/tests/meson.build | 47 | ||||
| -rw-r--r-- | src/tests/test-general-with-expect.c | 126 | ||||
| -rw-r--r-- | src/tests/test-general.c | 25 | ||||
| -rw-r--r-- | src/tests/test-ip6-config.c | 18 | ||||
| -rw-r--r-- | src/tests/test-resolvconf-capture.c | 298 |
8 files changed, 191 insertions, 390 deletions
diff --git a/src/tests/config/meson.build b/src/tests/config/meson.build new file mode 100644 index 00000000..fb40d9a9 --- /dev/null +++ b/src/tests/config/meson.build @@ -0,0 +1,26 @@ +test_unit = 'test-config' + +sources = files( + 'nm-test-device.c', + 'test-config.c' +) + +test_config_dir = meson.current_source_dir() + +cflags = [ + '-DSRCDIR="@0@"'.format(test_config_dir), + '-DBUILDDIR="@0@"'.format(test_config_dir) +] + +exe = executable( + test_unit, + sources, + dependencies: test_nm_dep, + c_args: cflags +) + +test( + 'config/' + test_unit, + test_script, + args: test_args + [exe.full_path()] +) diff --git a/src/tests/config/nm-test-device.c b/src/tests/config/nm-test-device.c index 3ec866f5..49631583 100644 --- a/src/tests/config/nm-test-device.c +++ b/src/tests/config/nm-test-device.c @@ -57,7 +57,7 @@ nm_test_device_init (NMTestDevice *self) } /* We jump over NMDevice's construct/destruct methods, which require NMPlatform - * and NMConnectionProvider to be initialized. + * and NMSettings to be initialized. */ static void constructed (GObject *object) diff --git a/src/tests/config/test-config.c b/src/tests/config/test-config.c index 89b22a9f..50215756 100644 --- a/src/tests/config/test-config.c +++ b/src/tests/config/test-config.c @@ -25,7 +25,7 @@ #include "nm-config.h" #include "nm-test-device.h" #include "platform/nm-fake-platform.h" -#include "nm-bus-manager.h" +#include "nm-dbus-manager.h" #include "nm-connectivity.h" #include "nm-test-utils-core.h" @@ -254,7 +254,7 @@ test_config_global_dns (void) NMConfig *config; const NMGlobalDnsConfig *dns; NMGlobalDnsDomain *domain; - const char *const *strv; + const char *const*strv; config = setup_config (NULL, SRCDIR "/NetworkManager.conf", "", NULL, "/no/such/dir", "", NULL); @@ -318,10 +318,10 @@ test_config_global_dns (void) g_object_unref (config); } -#if WITH_CONCHECK static void test_config_connectivity_check (void) { +#if WITH_CONCHECK const char *CONFIG_INTERN = BUILDDIR"/test-connectivity-check-intern.conf"; NMConfig *config; NMConnectivity *connectivity; @@ -334,14 +334,14 @@ test_config_connectivity_check (void) g_assert (nm_connectivity_check_enabled (connectivity)); /* disable connectivity checking */ - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal *"); + NMTST_EXPECT_NM_INFO ("config: signal: *"); nm_config_set_connectivity_check_enabled (config, FALSE); g_test_assert_expected_messages (); g_assert (!nm_connectivity_check_enabled (connectivity)); /* re-enable connectivity checking */ - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal *"); + NMTST_EXPECT_NM_INFO ("config: signal: *"); nm_config_set_connectivity_check_enabled (config, TRUE); g_test_assert_expected_messages (); @@ -351,8 +351,10 @@ test_config_connectivity_check (void) g_object_unref (config); g_assert (remove (CONFIG_INTERN) == 0); -} +#else + g_test_skip ("concheck disabled"); #endif +} static void test_config_no_auto_default (void) @@ -386,7 +388,7 @@ test_config_no_auto_default (void) g_assert (!nm_config_get_no_auto_default_for_device (config, dev3)); g_assert (nm_config_get_no_auto_default_for_device (config, dev4)); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal NO_AUTO_DEFAULT,no-auto-default *"); + NMTST_EXPECT_NM_INFO ("config: signal: NO_AUTO_DEFAULT,no-auto-default *"); nm_config_set_no_auto_default_for_device (config, dev3); g_test_assert_expected_messages (); @@ -597,9 +599,9 @@ _set_values_user (NMConfig *config, config_data_before = g_object_ref (nm_config_get_data (config)); if (expected_changes != NM_CONFIG_CHANGE_NONE) - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal *"); + NMTST_EXPECT_NM_INFO ("config: signal: *"); else - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGHUP (no changes from disk)*"); + NMTST_EXPECT_NM_INFO ("config: signal: SIGHUP (no changes from disk)*"); nm_config_reload (config, NM_CONFIG_CHANGE_CAUSE_SIGHUP); @@ -641,7 +643,7 @@ _set_values_intern (NMConfig *config, &config_changed_data); if (expected_changes != NM_CONFIG_CHANGE_NONE) - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal *"); + NMTST_EXPECT_NM_INFO ("config: signal: *"); nm_config_set_values (config, keyfile_intern, TRUE, FALSE); @@ -904,15 +906,15 @@ test_config_signal (void) &expected); expected = NM_CONFIG_CHANGE_CAUSE_SIGUSR1; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGUSR1"); + NMTST_EXPECT_NM_INFO ("config: signal: SIGUSR1"); nm_config_reload (config, expected); expected = NM_CONFIG_CHANGE_CAUSE_SIGUSR2; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGUSR2"); + NMTST_EXPECT_NM_INFO ("config: signal: SIGUSR2"); nm_config_reload (config, expected); expected = NM_CONFIG_CHANGE_CAUSE_SIGHUP; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGHUP (no changes from disk)*"); + NMTST_EXPECT_NM_INFO ("config: signal: SIGHUP (no changes from disk)*"); nm_config_reload (config, expected); @@ -925,7 +927,7 @@ test_config_signal (void) G_CALLBACK (_test_signal_config_changed_cb2), &expected); expected = NM_CONFIG_CHANGE_CAUSE_SIGUSR2; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGUSR2"); + NMTST_EXPECT_NM_INFO ("config: signal: SIGUSR2"); nm_config_reload (config, NM_CONFIG_CHANGE_CAUSE_SIGUSR2); g_signal_handlers_disconnect_by_func (config, _test_signal_config_changed_cb2, &expected); @@ -1037,13 +1039,6 @@ main (int argc, char **argv) { nmtst_init_assert_logging (&argc, &argv, "INFO", "DEFAULT"); - /* Initialize the DBus manager singleton explicitly, because it is accessed by - * the class initializer of NMDevice (used by the NMTestDevice stub). - * This way, we skip calling nm_bus_manager_init_bus() which would - * either fail and/or cause unexpected actions in the test. - * */ - nm_bus_manager_setup (g_object_new (NM_TYPE_BUS_MANAGER, NULL)); - nm_fake_platform_setup (); g_test_add_func ("/config/simple", test_config_simple); @@ -1055,9 +1050,7 @@ main (int argc, char **argv) g_test_add_func ("/config/set-values", test_config_set_values); g_test_add_func ("/config/global-dns", test_config_global_dns); -#if WITH_CONCHECK g_test_add_func ("/config/connectivity-check", test_config_connectivity_check); -#endif g_test_add_func ("/config/signal", test_config_signal); diff --git a/src/tests/meson.build b/src/tests/meson.build new file mode 100644 index 00000000..386ede87 --- /dev/null +++ b/src/tests/meson.build @@ -0,0 +1,47 @@ +subdir('config') + +test_units = [ + 'test-general', + 'test-general-with-expect', + 'test-ip4-config', + 'test-ip6-config', + 'test-dcb', + 'test-wired-defname', + 'test-utils' +] + +foreach test_unit: test_units + exe = executable( + test_unit, + test_unit + '.c', + dependencies: test_nm_dep + ) + + test( + 'src/' + test_unit, + test_script, + args: test_args + [exe.full_path()] + ) +endforeach + +test_unit = 'test-systemd' + +cflags = [ + '-DNETWORKMANAGER_COMPILATION_TEST', + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD', +] + +exe = executable( + test_unit, + [test_unit + '.c'] + shared_siphash, + include_directories: src_inc, + dependencies: nm_core_dep, + c_args: cflags, + link_with: libsystemd_nm +) + +test( + 'src/' + test_unit, + test_script, + args: test_args + [exe.full_path()] +) diff --git a/src/tests/test-general-with-expect.c b/src/tests/test-general-with-expect.c index 2911d84d..f67c332b 100644 --- a/src/tests/test-general-with-expect.c +++ b/src/tests/test-general-with-expect.c @@ -167,7 +167,7 @@ test_nm_utils_kill_child_spawn (char **argv, gboolean do_not_reap_child) } static pid_t -test_nm_utils_kill_child_create_and_join_pgroup (void) +do_test_nm_utils_kill_child_create_and_join_pgroup (void) { int err, tmp = 0; int pipefd[2]; @@ -177,10 +177,7 @@ test_nm_utils_kill_child_create_and_join_pgroup (void) g_assert (err == 0); pgid = fork(); - if (pgid < 0) { - g_assert_not_reached (); - return pgid; - } + g_assert (pgid >= 0); if (pgid == 0) { /* child process... */ @@ -206,7 +203,6 @@ test_nm_utils_kill_child_create_and_join_pgroup (void) err = setpgid (0, pgid); g_assert (err == 0); - do { err = waitpid (pgid, &tmp, 0); } while (err == -1 && errno == EINTR); @@ -219,9 +215,8 @@ test_nm_utils_kill_child_create_and_join_pgroup (void) #define TEST_TOKEN "nm_test_kill_child_process" static void -test_nm_utils_kill_child (void) +do_test_nm_utils_kill_child (void) { - int err; GLogLevelFlags fatal_mask; char *argv_watchdog[] = { "bash", @@ -255,7 +250,6 @@ test_nm_utils_kill_child (void) "trap \"while true; do :; done\" TERM; while true; do :; done; #" TEST_TOKEN, NULL, }; - pid_t gpid; pid_t pid1a_1, pid1a_2, pid1a_3, pid2a, pid3a, pid4a; pid_t pid1s_1, pid1s_2, pid1s_3, pid2s, pid3s, pid4s; @@ -263,8 +257,6 @@ test_nm_utils_kill_child (void) const int expected_signal_TERM = SIGTERM; const int expected_signal_KILL = SIGKILL; - gpid = test_nm_utils_kill_child_create_and_join_pgroup (); - test_nm_utils_kill_child_spawn (argv_watchdog, FALSE); pid1s_1 = test_nm_utils_kill_child_spawn (argv1, TRUE); @@ -284,92 +276,124 @@ test_nm_utils_kill_child (void) /* give processes time to start (and potentially block signals) ... */ g_usleep (G_USEC_PER_SEC / 10); - fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-1' (*): waiting up to 3000 milliseconds for process to terminate normally after sending SIGTERM (15)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-1' (*): after sending SIGTERM (15), process * exited by signal 15 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-1' (*): waiting up to 3000 milliseconds for process to terminate normally after sending SIGTERM (15)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-1' (*): after sending SIGTERM (15), process * exited by signal 15 (* usec elapsed)"); test_nm_utils_kill_child_sync_do ("test-s-1-1", pid1s_1, SIGTERM, 3000, TRUE, &expected_signal_TERM); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-2' (*): waiting for process to terminate after sending SIGKILL (9)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-2' (*): after sending SIGKILL (9), process * exited by signal 9 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-2' (*): waiting for process to terminate after sending SIGKILL (9)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-2' (*): after sending SIGKILL (9), process * exited by signal 9 (* usec elapsed)"); test_nm_utils_kill_child_sync_do ("test-s-1-2", pid1s_2, SIGKILL, 1000 / 2, TRUE, &expected_signal_KILL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-3' (*): waiting up to 1 milliseconds for process to terminate normally after sending no signal (0)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-3' (*): sending SIGKILL..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-1-3' (*): after sending no signal (0) and SIGKILL, process * exited by signal 9 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-3' (*): waiting up to 1 milliseconds for process to terminate normally after sending no signal (0)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-3' (*): sending SIGKILL..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-1-3' (*): after sending no signal (0) and SIGKILL, process * exited by signal 9 (* usec elapsed)"); test_nm_utils_kill_child_sync_do ("test-s-1-3", pid1s_3, 0, 1, TRUE, &expected_signal_KILL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-2' (*): process * already terminated normally with status 47"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-2' (*): process * already terminated normally with status 47"); test_nm_utils_kill_child_sync_do ("test-s-2", pid2s, SIGTERM, 3000, TRUE, &expected_exit_47); /* send invalid signal. */ - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*kill child process 'test-s-3-0' (*): failed to send Unexpected signal: Invalid argument (22)"); + NMTST_EXPECT_NM_ERROR ("kill child process 'test-s-3-0' (*): failed to send Unexpected signal: Invalid argument (22)"); test_nm_utils_kill_child_sync_do ("test-s-3-0", pid3s, -1, 0, FALSE, NULL); /* really kill pid3s */ - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-3-1' (*): waiting up to 3000 milliseconds for process to terminate normally after sending SIGTERM (15)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-3-1' (*): after sending SIGTERM (15), process * exited normally with status 47 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-3-1' (*): waiting up to 3000 milliseconds for process to terminate normally after sending SIGTERM (15)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-3-1' (*): after sending SIGTERM (15), process * exited normally with status 47 (* usec elapsed)"); test_nm_utils_kill_child_sync_do ("test-s-3-1", pid3s, SIGTERM, 3000, TRUE, &expected_exit_47); /* pid3s should not be a valid process, hence the call should fail. Note, that there * is a race here. */ - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*kill child process 'test-s-3-2' (*): failed due to unexpected return value -1 by waitpid (No child processes, 10) after sending no signal (0)"); + NMTST_EXPECT_NM_ERROR ("kill child process 'test-s-3-2' (*): failed due to unexpected return value -1 by waitpid (No child processes, 10) after sending no signal (0)"); test_nm_utils_kill_child_sync_do ("test-s-3-2", pid3s, 0, 0, FALSE, NULL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-4' (*): waiting up to 1 milliseconds for process to terminate normally after sending SIGTERM (15)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-4' (*): sending SIGKILL..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-s-4' (*): after sending SIGTERM (15) and SIGKILL, process * exited by signal 9 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-4' (*): waiting up to 1 milliseconds for process to terminate normally after sending SIGTERM (15)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-4' (*): sending SIGKILL..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-s-4' (*): after sending SIGTERM (15) and SIGKILL, process * exited by signal 9 (* usec elapsed)"); test_nm_utils_kill_child_sync_do ("test-s-4", pid4s, SIGTERM, 1, TRUE, &expected_signal_KILL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-1' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 3000 milliseconds)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-1' (*): terminated by signal 15 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-1' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 3000 milliseconds)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-1' (*): terminated by signal 15 (* usec elapsed)"); test_nm_utils_kill_child_async_do ("test-a-1-1", pid1a_1, SIGTERM, 3000, TRUE, &expected_signal_TERM); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-2' (*): wait for process to terminate after sending SIGKILL (9)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-2' (*): terminated by signal 9 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-2' (*): wait for process to terminate after sending SIGKILL (9)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-2' (*): terminated by signal 9 (* usec elapsed)"); test_nm_utils_kill_child_async_do ("test-a-1-2", pid1a_2, SIGKILL, 1000 / 2, TRUE, &expected_signal_KILL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-3' (*): wait for process to terminate after sending no signal (0) (send SIGKILL in 1 milliseconds)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-3' (*): process not terminated after * usec. Sending SIGKILL signal"); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-1-3' (*): terminated by signal 9 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-3' (*): wait for process to terminate after sending no signal (0) (send SIGKILL in 1 milliseconds)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-3' (*): process not terminated after * usec. Sending SIGKILL signal"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-1-3' (*): terminated by signal 9 (* usec elapsed)"); test_nm_utils_kill_child_async_do ("test-a-1-3", pid1a_3, 0, 1, TRUE, &expected_signal_KILL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-2' (*): process * already terminated normally with status 47"); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-2' (*): invoke callback: terminated normally with status 47"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-2' (*): process * already terminated normally with status 47"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-2' (*): invoke callback: terminated normally with status 47"); test_nm_utils_kill_child_async_do ("test-a-2", pid2a, SIGTERM, 3000, TRUE, &expected_exit_47); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*kill child process 'test-a-3-0' (*): unexpected error sending Unexpected signal: Invalid argument (22)"); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-3-0' (*): invoke callback: killing child failed"); + NMTST_EXPECT_NM_ERROR ("kill child process 'test-a-3-0' (*): unexpected error sending Unexpected signal: Invalid argument (22)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-3-0' (*): invoke callback: killing child failed"); /* coverity[negative_returns] */ test_nm_utils_kill_child_async_do ("test-a-3-0", pid3a, -1, 1000 / 2, FALSE, NULL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-3-1' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 3000 milliseconds)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-3-1' (*): terminated normally with status 47 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-3-1' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 3000 milliseconds)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-3-1' (*): terminated normally with status 47 (* usec elapsed)"); test_nm_utils_kill_child_async_do ("test-a-3-1", pid3a, SIGTERM, 3000, TRUE, &expected_exit_47); /* pid3a should not be a valid process, hence the call should fail. Note, that there * is a race here. */ - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*kill child process 'test-a-3-2' (*): failed due to unexpected return value -1 by waitpid (No child processes, 10) after sending no signal (0)"); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-3-2' (*): invoke callback: killing child failed"); + NMTST_EXPECT_NM_ERROR ("kill child process 'test-a-3-2' (*): failed due to unexpected return value -1 by waitpid (No child processes, 10) after sending no signal (0)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-3-2' (*): invoke callback: killing child failed"); test_nm_utils_kill_child_async_do ("test-a-3-2", pid3a, 0, 0, FALSE, NULL); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-4' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 1 milliseconds)..."); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-4' (*): process not terminated after * usec. Sending SIGKILL signal"); - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-4' (*): terminated by signal 9 (* usec elapsed)"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-4' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 1 milliseconds)..."); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-4' (*): process not terminated after * usec. Sending SIGKILL signal"); + NMTST_EXPECT_NM_DEBUG ("kill child process 'test-a-4' (*): terminated by signal 9 (* usec elapsed)"); test_nm_utils_kill_child_async_do ("test-a-4", pid4a, SIGTERM, 1, TRUE, &expected_signal_KILL); - err = setpgid (0, 0); - g_assert (err == 0); - - kill (-gpid, SIGKILL); - g_log_set_always_fatal (fatal_mask); g_test_assert_expected_messages (); } +static void +test_nm_utils_kill_child (void) +{ + int err; + int exit_status; + pid_t gpid; + pid_t child_pid; + + /* the tests spawns several processes, we want to clean them up + * by sending a SIGKILL to the process group. + * + * The current process might be a session leader, which prevents it from + * creating a new process group. Hence, first fork and let the child + * create a new process group, run the tests, and kill all pending + * processes. */ + child_pid = fork (); + g_assert (child_pid >= 0); + + if (child_pid == 0) { + gpid = do_test_nm_utils_kill_child_create_and_join_pgroup (); + + do_test_nm_utils_kill_child (); + + err = setpgid (0, 0); + g_assert (err == 0); + + kill (-gpid, SIGKILL); + + exit (0); + }; + + do { + err = waitpid (child_pid, &exit_status, 0); + } while (err == -1 && errno == EINTR); + g_assert (err == child_pid); + g_assert (WIFEXITED (exit_status) && WEXITSTATUS(exit_status) == 0); +} + /*****************************************************************************/ static void @@ -432,7 +456,7 @@ test_nm_utils_array_remove_at_indexes (void) idx = g_array_new (FALSE, FALSE, sizeof (guint)); array = g_array_new (FALSE, FALSE, sizeof (gssize)); - unique = g_hash_table_new (NULL, NULL); + unique = g_hash_table_new (nm_direct_hash, NULL); for (i_len = 1; i_len < 20; i_len++) { for (i_idx_len = 1; i_idx_len <= i_len; i_idx_len++) { for (i_rnd = 0; i_rnd < 20; i_rnd++) { diff --git a/src/tests/test-general.c b/src/tests/test-general.c index bfa2ea73..38eaf25e 100644 --- a/src/tests/test-general.c +++ b/src/tests/test-general.c @@ -232,13 +232,13 @@ test_nm_utils_log_connection_diff (void) connection = nm_simple_connection_new (); nm_connection_add_setting (connection, nm_setting_connection_new ()); - nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test1", ">>> "); + nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test1", ">>> ", NULL); nm_connection_add_setting (connection, nm_setting_wired_new ()); - nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test2", ">>> "); + nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test2", ">>> ", NULL); connection2 = nm_simple_connection_new_clone (connection); - nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test3", ">>> "); + nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test3", ">>> ", NULL); g_object_set (nm_connection_get_setting_connection (connection), NM_SETTING_CONNECTION_ID, "id", @@ -248,24 +248,24 @@ test_nm_utils_log_connection_diff (void) NM_SETTING_CONNECTION_ID, "id2", NM_SETTING_CONNECTION_MASTER, "master2", NULL); - nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test4", ">>> "); + nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test4", ">>> ", NULL); nm_connection_add_setting (connection, nm_setting_802_1x_new ()); - nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test5", ">>> "); + nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test5", ">>> ", NULL); g_object_set (nm_connection_get_setting_802_1x (connection), NM_SETTING_802_1X_PASSWORD, "id2", NM_SETTING_802_1X_PASSWORD_FLAGS, NM_SETTING_SECRET_FLAG_NOT_SAVED, NULL); - nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test6", ">>> "); - nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test7", ">>> "); - nm_utils_log_connection_diff (connection2, connection, LOGL_DEBUG, LOGD_CORE, "test8", ">>> "); + nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test6", ">>> ", NULL); + nm_utils_log_connection_diff (connection, connection2, LOGL_DEBUG, LOGD_CORE, "test7", ">>> ", NULL); + nm_utils_log_connection_diff (connection2, connection, LOGL_DEBUG, LOGD_CORE, "test8", ">>> ", NULL); g_clear_object (&connection); g_clear_object (&connection2); connection = nmtst_create_minimal_connection ("id-vpn-1", NULL, NM_SETTING_VPN_SETTING_NAME, NULL); - nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test-vpn-1", ">>> "); + nm_utils_log_connection_diff (connection, NULL, LOGL_DEBUG, LOGD_CORE, "test-vpn-1", ">>> ", NULL); g_clear_object (&connection); } @@ -1460,6 +1460,11 @@ test_nm_utils_strbuf_append (void) static void test_duplicate_decl_specifier (void) { + /* We're intentionally assigning values to static arrays v_const + * and v_result without using it afterwards just so that valgrind + * doesn't complain about the leak. */ + NM_PRAGMA_WARNING_DISABLE("-Wunused-but-set-variable") + /* have some static variables, so that the result is certainly not optimized out. */ static const int v_const[1] = { 1 }; static int v_result[1] = { }; @@ -1477,6 +1482,8 @@ test_duplicate_decl_specifier (void) }) v_result[0] = TEST_MAX (v_const[0], nmtst_get_rand_int () % 5) + v2; + + NM_PRAGMA_WARNING_REENABLE } static void diff --git a/src/tests/test-ip6-config.c b/src/tests/test-ip6-config.c index bcbeee3e..816a816f 100644 --- a/src/tests/test-ip6-config.c +++ b/src/tests/test-ip6-config.c @@ -246,8 +246,10 @@ test_nm_ip6_config_addresses_sort_check (NMIP6Config *config, NMSettingIP6Config int *idx = g_new (int, addr_count); nm_ip6_config_set_privacy (config, use_tempaddr); - copy = nmtst_ip6_config_clone (config); - copy2 = nmtst_ip6_config_clone (config); + copy = nm_ip6_config_clone (config); + g_assert (copy); + copy2 = nm_ip6_config_clone (config); + g_assert (copy2); /* initialize the array of indeces, and keep shuffling them for every @repeat iteration. */ for (i = 0; i < addr_count; i++) @@ -296,9 +298,9 @@ test_nm_ip6_config_addresses_sort (void) ADDR_ADD("2607:f0d0:1002:51::4", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, 0); ADDR_ADD("2607:f0d0:1002:51::5", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, 0); ADDR_ADD("2607:f0d0:1002:51::6", NULL, 64, 0, NM_IP_CONFIG_SOURCE_NDISC, 0, 0, 0, IFA_F_MANAGETEMPADDR); - ADDR_ADD("2607:f0d0:1002:51::3", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_SECONDARY); - ADDR_ADD("2607:f0d0:1002:51::8", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_SECONDARY); - ADDR_ADD("2607:f0d0:1002:51::0", NULL, 64, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, IFA_F_SECONDARY); + ADDR_ADD("2607:f0d0:1002:51::3", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_TEMPORARY); + ADDR_ADD("2607:f0d0:1002:51::8", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_TEMPORARY); + ADDR_ADD("2607:f0d0:1002:51::0", NULL, 64, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, IFA_F_TEMPORARY); ADDR_ADD("fec0::1", NULL, 128, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, 0); ADDR_ADD("fe80::208:74ff:feda:625c", NULL, 128, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, 0); ADDR_ADD("fe80::208:74ff:feda:625d", NULL, 128, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, 0); @@ -309,11 +311,11 @@ test_nm_ip6_config_addresses_sort (void) test_nm_ip6_config_addresses_sort_check (config, NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR, 8); nm_ip6_config_reset_addresses (config); - ADDR_ADD("2607:f0d0:1002:51::3", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_SECONDARY); + ADDR_ADD("2607:f0d0:1002:51::3", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_TEMPORARY); ADDR_ADD("2607:f0d0:1002:51::4", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, 0); ADDR_ADD("2607:f0d0:1002:51::5", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, 0); - ADDR_ADD("2607:f0d0:1002:51::8", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_SECONDARY); - ADDR_ADD("2607:f0d0:1002:51::0", NULL, 64, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, IFA_F_SECONDARY); + ADDR_ADD("2607:f0d0:1002:51::8", NULL, 64, 0, NM_IP_CONFIG_SOURCE_USER, 0, 0, 0, IFA_F_TEMPORARY); + ADDR_ADD("2607:f0d0:1002:51::0", NULL, 64, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, IFA_F_TEMPORARY); ADDR_ADD("2607:f0d0:1002:51::6", NULL, 64, 0, NM_IP_CONFIG_SOURCE_NDISC, 0, 0, 0, IFA_F_MANAGETEMPADDR); ADDR_ADD("fec0::1", NULL, 128, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, 0); ADDR_ADD("fe80::208:74ff:feda:625c", NULL, 128, 0, NM_IP_CONFIG_SOURCE_KERNEL, 0, 0, 0, 0); diff --git a/src/tests/test-resolvconf-capture.c b/src/tests/test-resolvconf-capture.c deleted file mode 100644 index 2c34ff74..00000000 --- a/src/tests/test-resolvconf-capture.c +++ /dev/null @@ -1,298 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2013 Red Hat, Inc. - * - */ - -#include "nm-default.h" - -#include <string.h> -#include <arpa/inet.h> - -#include "NetworkManagerUtils.h" -#include "nm-ip4-config.h" -#include "nm-ip6-config.h" -#include "platform/nm-platform.h" - -#include "nm-test-utils-core.h" - -static void -test_capture_empty (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - GArray *ns6 = g_array_new (FALSE, FALSE, sizeof (struct in6_addr)); - - g_assert (!nm_utils_resolve_conf_parse (AF_INET, "", ns4, NULL)); - g_assert_cmpint (ns4->len, ==, 0); - - g_assert (!nm_utils_resolve_conf_parse (AF_INET6, "", ns6, NULL)); - g_assert_cmpint (ns6->len, ==, 0); - - g_array_free (ns4, TRUE); - g_array_free (ns6, TRUE); -} - -#define assert_dns4_entry(a, i, s) \ - g_assert_cmpint ((g_array_index ((a), guint32, (i))), ==, nmtst_inet4_from_string (s)); - -#define assert_dns6_entry(a, i, s) \ - g_assert (IN6_ARE_ADDR_EQUAL (&g_array_index ((a), struct in6_addr, (i)), nmtst_inet6_from_string (s))) - -#define assert_dns_option(a, i, s) \ - g_assert_cmpstr ((a)->pdata[(i)], ==, (s)); - -static void -test_capture_basic4 (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - const char *rc = -"# neato resolv.conf\r\n" -"domain foobar.com\r\n" -"search foobar.com\r\n" -"nameserver 4.2.2.1\r\n" -"nameserver 4.2.2.2\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, NULL)); - g_assert_cmpint (ns4->len, ==, 2); - assert_dns4_entry (ns4, 0, "4.2.2.1"); - assert_dns4_entry (ns4, 1, "4.2.2.2"); - - g_array_free (ns4, TRUE); -} - -static void -test_capture_dup4 (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - const char *rc = -"# neato resolv.conf\r\n" -"domain foobar.com\r\n" -"search foobar.com\r\n" -"nameserver 4.2.2.1\r\n" -"nameserver 4.2.2.1\r\n" -"nameserver 4.2.2.2\r\n"; - - /* Check that duplicates are ignored */ - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, NULL)); - g_assert_cmpint (ns4->len, ==, 2); - assert_dns4_entry (ns4, 0, "4.2.2.1"); - assert_dns4_entry (ns4, 1, "4.2.2.2"); - - g_array_free (ns4, TRUE); -} - -static void -test_capture_basic6 (void) -{ - GArray *ns6 = g_array_new (FALSE, FALSE, sizeof (struct in6_addr)); - const char *rc = -"# neato resolv.conf\r\n" -"domain foobar.com\r\n" -"search foobar.com\r\n" -"nameserver 2001:4860:4860::8888\r\n" -"nameserver 2001:4860:4860::8844\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET6, rc, ns6, NULL)); - g_assert_cmpint (ns6->len, ==, 2); - assert_dns6_entry (ns6, 0, "2001:4860:4860::8888"); - assert_dns6_entry (ns6, 1, "2001:4860:4860::8844"); - - g_array_free (ns6, TRUE); -} - -static void -test_capture_dup6 (void) -{ - GArray *ns6 = g_array_new (FALSE, FALSE, sizeof (struct in6_addr)); - const char *rc = -"# neato resolv.conf\r\n" -"domain foobar.com\r\n" -"search foobar.com\r\n" -"nameserver 2001:4860:4860::8888\r\n" -"nameserver 2001:4860:4860::8888\r\n" -"nameserver 2001:4860:4860::8844\r\n"; - - /* Check that duplicates are ignored */ - g_assert (nm_utils_resolve_conf_parse (AF_INET6, rc, ns6, NULL)); - g_assert_cmpint (ns6->len, ==, 2); - assert_dns6_entry (ns6, 0, "2001:4860:4860::8888"); - assert_dns6_entry (ns6, 1, "2001:4860:4860::8844"); - - g_array_free (ns6, TRUE); -} - -static void -test_capture_addr4_with_6 (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - const char *rc = -"# neato resolv.conf\r\n" -"domain foobar.com\r\n" -"search foobar.com\r\n" -"nameserver 4.2.2.1\r\n" -"nameserver 4.2.2.2\r\n" -"nameserver 2001:4860:4860::8888\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, NULL)); - g_assert_cmpint (ns4->len, ==, 2); - assert_dns4_entry (ns4, 0, "4.2.2.1"); - assert_dns4_entry (ns4, 1, "4.2.2.2"); - - g_array_free (ns4, TRUE); -} - -static void -test_capture_addr6_with_4 (void) -{ - GArray *ns6 = g_array_new (FALSE, FALSE, sizeof (struct in6_addr)); - const char *rc = -"# neato resolv.conf\r\n" -"domain foobar.com\r\n" -"search foobar.com\r\n" -"nameserver 4.2.2.1\r\n" -"nameserver 2001:4860:4860::8888\r\n" -"nameserver 2001:4860:4860::8844\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET6, rc, ns6, NULL)); - g_assert_cmpint (ns6->len, ==, 2); - assert_dns6_entry (ns6, 0, "2001:4860:4860::8888"); - assert_dns6_entry (ns6, 1, "2001:4860:4860::8844"); - - g_array_free (ns6, TRUE); -} - -static void -test_capture_format (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - const char *rc = -" nameserver 4.2.2.1\r\n" /* bad */ -"nameserver4.2.2.1\r\n" /* bad */ -"nameserver 4.2.2.3\r" /* good */ -"nameserver\t\t4.2.2.4\r\n" /* good */ -"nameserver 4.2.2.5\t\t\r\n" /* good */ -"nameserver 4.2.2.6 \r\n"; /* good */ - - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, NULL)); - g_assert_cmpint (ns4->len, ==, 4); - assert_dns4_entry (ns4, 0, "4.2.2.3"); - assert_dns4_entry (ns4, 1, "4.2.2.4"); - assert_dns4_entry (ns4, 2, "4.2.2.5"); - assert_dns4_entry (ns4, 3, "4.2.2.6"); - - g_array_free (ns4, TRUE); -} - -static void -test_capture_dns_options (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - GPtrArray *dns_options = g_ptr_array_new_with_free_func (g_free); - const char *rc = -"nameserver 4.2.2.1\r\n" -"options debug rotate timeout:5 \r\n" -"options edns0\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, dns_options)); - g_assert_cmpint (dns_options->len, ==, 4); - assert_dns_option (dns_options, 0, "debug"); - assert_dns_option (dns_options, 1, "rotate"); - assert_dns_option (dns_options, 2, "timeout:5"); - assert_dns_option (dns_options, 3, "edns0"); - - g_array_free (ns4, TRUE); - g_ptr_array_free (dns_options, TRUE); -} - -static void -test_capture_dns_options_dup (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - GPtrArray *dns_options = g_ptr_array_new_with_free_func (g_free); - const char *rc = -"options debug rotate timeout:3\r\n" -"options edns0 debug\r\n" -"options timeout:5\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, dns_options)); - g_assert_cmpint (dns_options->len, ==, 4); - assert_dns_option (dns_options, 0, "debug"); - assert_dns_option (dns_options, 1, "rotate"); - assert_dns_option (dns_options, 2, "timeout:3"); - assert_dns_option (dns_options, 3, "edns0"); - - g_array_free (ns4, TRUE); - g_ptr_array_free (dns_options, TRUE); -} - -static void -test_capture_dns_options_valid4 (void) -{ - GArray *ns4 = g_array_new (FALSE, FALSE, sizeof (guint32)); - GPtrArray *dns_options = g_ptr_array_new_with_free_func (g_free); - const char *rc = -"options debug: rotate:yes edns0 foobar : inet6\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET, rc, ns4, dns_options)); - g_assert_cmpint (dns_options->len, ==, 1); - assert_dns_option (dns_options, 0, "edns0"); - - g_array_free (ns4, TRUE); - g_ptr_array_free (dns_options, TRUE); -} - -static void -test_capture_dns_options_valid6 (void) -{ - GArray *ns6 = g_array_new (FALSE, FALSE, sizeof (struct in6_addr)); - GPtrArray *dns_options = g_ptr_array_new_with_free_func (g_free); - const char *rc = -"options inet6 debug foobar rotate:\r\n"; - - g_assert (nm_utils_resolve_conf_parse (AF_INET6, rc, ns6, dns_options)); - g_assert_cmpint (dns_options->len, ==, 2); - assert_dns_option (dns_options, 0, "inet6"); - assert_dns_option (dns_options, 1, "debug"); - - g_array_free (ns6, TRUE); - g_ptr_array_free (dns_options, TRUE); -} -/*****************************************************************************/ - -NMTST_DEFINE (); - -int -main (int argc, char **argv) -{ - nmtst_init_assert_logging (&argc, &argv, "INFO", "DEFAULT"); - - g_test_add_func ("/resolvconf-capture/empty", test_capture_empty); - g_test_add_func ("/resolvconf-capture/basic4", test_capture_basic4); - g_test_add_func ("/resolvconf-capture/dup4", test_capture_dup4); - g_test_add_func ("/resolvconf-capture/basic6", test_capture_basic6); - g_test_add_func ("/resolvconf-capture/dup6", test_capture_dup6); - g_test_add_func ("/resolvconf-capture/addr4-with-6", test_capture_addr4_with_6); - g_test_add_func ("/resolvconf-capture/addr6-with-4", test_capture_addr6_with_4); - g_test_add_func ("/resolvconf-capture/format", test_capture_format); - g_test_add_func ("/resolvconf-capture/dns-options", test_capture_dns_options); - g_test_add_func ("/resolvconf-capture/dns-options-dup", test_capture_dns_options_dup); - g_test_add_func ("/resolvconf-capture/dns-options-valid4", test_capture_dns_options_valid4); - g_test_add_func ("/resolvconf-capture/dns-options-valid6", test_capture_dns_options_valid6); - - return g_test_run (); -} - |