diff options
| author | Michael Biebl <biebl@debian.org> | 2016-03-30 00:56:30 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2016-03-30 00:56:30 +0200 |
| commit | d9c99a29a0d3384c9c3d2adce430f5cb1134ab6a (patch) | |
| tree | fa41baf72753961e71dd8d5bdbe2b89c9109e4f1 /src/tests | |
| parent | c2de0d98ba39e0a1a970d066fd19be786092f376 (diff) | |
Imported Upstream version 1.1.92 upstream/1.1.92
Diffstat (limited to 'src/tests')
| -rw-r--r-- | src/tests/Makefile.am | 1 | ||||
| -rw-r--r-- | src/tests/Makefile.in | 1 | ||||
| -rw-r--r-- | src/tests/config/test-config.c | 16 | ||||
| -rw-r--r-- | src/tests/test-general-with-expect.c | 8 | ||||
| -rw-r--r-- | src/tests/test-general.c | 27 | ||||
| -rw-r--r-- | src/tests/test-route-manager.c | 36 | ||||
| -rw-r--r-- | src/tests/test-systemd.c | 87 |
7 files changed, 146 insertions, 30 deletions
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index a3447fbf..597f477f 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -117,6 +117,7 @@ test_wired_defname_LDADD = \ test_systemd_CFLAGS = \ "-I$(srcdir)/../" \ "-I$(srcdir)/../platform" \ + "-I$(srcdir)/../systemd" \ "-I$(srcdir)/../systemd/src/systemd" test_systemd_SOURCES = \ diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in index 9d67063e..8be2e8ce 100644 --- a/src/tests/Makefile.in +++ b/src/tests/Makefile.in @@ -867,6 +867,7 @@ test_wired_defname_LDADD = \ test_systemd_CFLAGS = \ "-I$(srcdir)/../" \ "-I$(srcdir)/../platform" \ + "-I$(srcdir)/../systemd" \ "-I$(srcdir)/../systemd/src/systemd" test_systemd_SOURCES = \ diff --git a/src/tests/config/test-config.c b/src/tests/config/test-config.c index 19306df7..d83ff4b5 100644 --- a/src/tests/config/test-config.c +++ b/src/tests/config/test-config.c @@ -343,7 +343,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_MESSAGE, "*config: update * (no-auto-default)*"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: update * (no-auto-default)*"); nm_config_set_no_auto_default_for_device (config, dev3); g_test_assert_expected_messages (); @@ -556,9 +556,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_MESSAGE, "*config: update *"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: update *"); else - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*config: signal SIGHUP (no changes from disk)*"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGHUP (no changes from disk)*"); nm_config_reload (config, SIGHUP); @@ -600,7 +600,7 @@ _set_values_intern (NMConfig *config, &config_changed_data); if (expected_changes != NM_CONFIG_CHANGE_NONE) - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*config: update *"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: update *"); nm_config_set_values (config, keyfile_intern, TRUE, FALSE); @@ -863,15 +863,15 @@ test_config_signal (void) &expected); expected = NM_CONFIG_CHANGE_SIGUSR1; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*config: signal SIGUSR1"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGUSR1"); nm_config_reload (config, SIGUSR1); expected = NM_CONFIG_CHANGE_SIGUSR2; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*config: signal SIGUSR2"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGUSR2"); nm_config_reload (config, SIGUSR2); expected = NM_CONFIG_CHANGE_SIGHUP; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*config: signal SIGHUP (no changes from disk)*"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGHUP (no changes from disk)*"); nm_config_reload (config, SIGHUP); @@ -884,7 +884,7 @@ test_config_signal (void) G_CALLBACK (_test_signal_config_changed_cb2), &expected); expected = NM_CONFIG_CHANGE_SIGUSR2; - g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*config: signal SIGUSR2"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_INFO, "*config: signal SIGUSR2"); nm_config_reload (config, SIGUSR2); g_signal_handlers_disconnect_by_func (config, _test_signal_config_changed_cb2, &expected); diff --git a/src/tests/test-general-with-expect.c b/src/tests/test-general-with-expect.c index 43595c8d..64b47bd3 100644 --- a/src/tests/test-general-with-expect.c +++ b/src/tests/test-general-with-expect.c @@ -304,7 +304,7 @@ test_nm_utils_kill_child (void) 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_WARNING, "*kill child process 'test-s-3-0' (*): failed to send Unexpected signal: Invalid argument (22)"); + g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*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 */ @@ -314,7 +314,7 @@ test_nm_utils_kill_child (void) /* 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_WARNING, "*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)"); + 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)"); 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)..."); @@ -340,7 +340,7 @@ test_nm_utils_kill_child (void) g_test_expect_message ("NetworkManager", G_LOG_LEVEL_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_WARNING, "*kill child process 'test-a-3-0' (*): unexpected error sending Unexpected signal: Invalid argument (22)"); + 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"); /* coverity[negative_returns] */ test_nm_utils_kill_child_async_do ("test-a-3-0", pid3a, -1, 1000 / 2, FALSE, NULL); @@ -351,7 +351,7 @@ test_nm_utils_kill_child (void) /* 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_WARNING, "*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_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"); test_nm_utils_kill_child_async_do ("test-a-3-2", pid3a, 0, 0, FALSE, NULL); diff --git a/src/tests/test-general.c b/src/tests/test-general.c index b8a51f2a..b2512590 100644 --- a/src/tests/test-general.c +++ b/src/tests/test-general.c @@ -1221,7 +1221,31 @@ test_nm_utils_strbuf_append (void) } } -/*******************************************/ +/*****************************************************************************/ + +static void +test_duplicate_decl_specifier (void) +{ + /* 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] = { }; + const const int v2 = 3; + + /* Test that we don't get a compiler warning about duplicate const specifier. + * C99 allows that and it can easily happen in macros. */ + +#define TEST_MAX(a, b) \ + ({ \ + const typeof(a) _a = (a); \ + const typeof(b) _b = (b); \ + \ + (_a > _b ? _a : _b); \ + }) + + v_result[0] = TEST_MAX (v_const[0], nmtst_get_rand_int () % 5) + v2; +} + +/*****************************************************************************/ NMTST_DEFINE (); @@ -1254,6 +1278,7 @@ main (int argc, char **argv) g_test_add_func ("/general/nm_match_spec_interface_name", test_nm_match_spec_interface_name); g_test_add_func ("/general/nm_match_spec_match_config", test_nm_match_spec_match_config); + g_test_add_func ("/general/duplicate_decl_specifier", test_duplicate_decl_specifier); return g_test_run (); } diff --git a/src/tests/test-route-manager.c b/src/tests/test-route-manager.c index 742f4ee5..b32775da 100644 --- a/src/tests/test-route-manager.c +++ b/src/tests/test-route-manager.c @@ -76,15 +76,16 @@ setup_dev1_ip4 (int ifindex) /* Add some route outside of route manager. The route manager * should get rid of it upon sync. */ - nm_platform_ip4_route_add (NM_PLATFORM_GET, - route.ifindex, - NM_IP_CONFIG_SOURCE_USER, - nmtst_inet4_from_string ("9.0.0.0"), - 8, - INADDR_ANY, - 0, - 10, - route.mss); + if (!nm_platform_ip4_route_add (NM_PLATFORM_GET, + route.ifindex, + NM_IP_CONFIG_SOURCE_USER, + nmtst_inet4_from_string ("9.0.0.0"), + 8, + INADDR_ANY, + 0, + 10, + route.mss)) + g_assert_not_reached (); route.source = NM_IP_CONFIG_SOURCE_USER; inet_pton (AF_INET, "6.6.6.0", &route.network); @@ -421,14 +422,15 @@ setup_dev1_ip6 (int ifindex) /* Add some route outside of route manager. The route manager * should get rid of it upon sync. */ - nm_platform_ip6_route_add (NM_PLATFORM_GET, - ifindex, - NM_IP_CONFIG_SOURCE_USER, - *nmtst_inet6_from_string ("2001:db8:8088::"), - 48, - in6addr_any, - 10, - 0); + if (!nm_platform_ip6_route_add (NM_PLATFORM_GET, + ifindex, + NM_IP_CONFIG_SOURCE_USER, + *nmtst_inet6_from_string ("2001:db8:8088::"), + 48, + in6addr_any, + 10, + 0)) + g_assert_not_reached (); route = nmtst_platform_ip6_route_full ("2001:db8:8086::", 48, diff --git a/src/tests/test-systemd.c b/src/tests/test-systemd.c index 84ad95ba..936bff20 100644 --- a/src/tests/test-systemd.c +++ b/src/tests/test-systemd.c @@ -19,7 +19,11 @@ #include "nm-default.h" +#include "nm-sd.h" + #include "sd-dhcp-client.h" +#include "sd-lldp.h" +#include "sd-event.h" #include "nm-test-utils.h" @@ -40,6 +44,87 @@ test_dhcp_create (void) /*****************************************************************************/ +static void +test_lldp_create (void) +{ + sd_lldp *lldp = NULL; + int ifindex = 1; + int r; + + r = sd_lldp_new (&lldp, ifindex); + g_assert (r == 0); + g_assert (lldp); + + sd_lldp_unref (lldp); +} + +/*****************************************************************************/ + +typedef struct { + GMainLoop *mainloop; + sd_event_source *event_source; +} TestSdEventData; + +static int +_test_sd_event_timeout_cb (sd_event_source *s, uint64_t usec, void *userdata) +{ + TestSdEventData *user_data = userdata; + + g_assert (user_data); + g_assert (user_data->mainloop); + g_assert (user_data->event_source); + + user_data->event_source = sd_event_source_unref (user_data->event_source); + g_main_loop_quit (user_data->mainloop); + return 0; +} + +static void +test_sd_event (void) +{ + int repeat; + + for (repeat = 0; repeat < 2; repeat++) { + guint sd_id = 0; + int r; + int i, n; + sd_event *other_events[3] = { NULL }, *event = NULL; + TestSdEventData user_data = { 0 }; + + g_assert_cmpint (sd_event_default (NULL), ==, 0); + + for (i = 0, n = (nmtst_get_rand_int () % (G_N_ELEMENTS (other_events) + 1)); i < n; i++) { + r = sd_event_default (&other_events[i]); + g_assert (r >= 0 && other_events[i]); + } + + sd_id = nm_sd_event_attach_default (); + + r = sd_event_default (&event); + g_assert (r >= 0 && event); + + r = sd_event_add_time (event, &user_data.event_source, CLOCK_MONOTONIC, 1, 0, _test_sd_event_timeout_cb, &user_data); + g_assert (r >= 0 && user_data.event_source); + + user_data.mainloop = g_main_loop_new (NULL, FALSE); + g_main_loop_run (user_data.mainloop); + g_main_loop_unref (user_data.mainloop); + + g_assert (!user_data.event_source); + + event = sd_event_unref (event); + for (i = 0, n = (nmtst_get_rand_int () % (G_N_ELEMENTS (other_events) + 1)); i < n; i++) + other_events[i] = sd_event_unref (other_events[i]); + nm_clear_g_source (&sd_id); + for (i = 0, n = G_N_ELEMENTS (other_events); i < n; i++) + other_events[i] = sd_event_unref (other_events[i]); + + g_assert_cmpint (sd_event_default (NULL), ==, 0); + } +} + +/*****************************************************************************/ + NMTST_DEFINE (); int @@ -48,6 +133,8 @@ main (int argc, char **argv) nmtst_init_assert_logging (&argc, &argv, "INFO", "ALL"); g_test_add_func ("/systemd/dhcp/create", test_dhcp_create); + g_test_add_func ("/systemd/lldp/create", test_lldp_create); + g_test_add_func ("/systemd/sd-event", test_sd_event); return g_test_run (); } |