diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2015-05-26 13:28:26 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2015-05-26 13:52:54 +0200 |
commit | defe992a102b6a3326c4362c9cf031fd4eba7472 (patch) | |
tree | 42349b73493241749be2958fa0382ef0c1b8cd10 | |
parent | a6f5aeeb28c73c2ee94322016df20212c4dd8f0a (diff) | |
parent | 02e3d6c2866402549c6976f564eb663ff12d3ebd (diff) | |
download | NetworkManager-defe992a102b6a3326c4362c9cf031fd4eba7472.tar.gz |
merge: branch 'lr/tap-tests' (bgo #749375)
https://bugzilla.gnome.org/show_bug.cgi?id=749375
32 files changed, 243 insertions, 214 deletions
diff --git a/.gitignore b/.gitignore index 445d6fed3a..2d4fcb6a64 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,8 @@ gtk-doc.make *.pc cscope.*out valgrind-*.log +test-*.log +test-*.trs *-glue.h /ABOUT-NLS diff --git a/callouts/tests/Makefile.am b/callouts/tests/Makefile.am index a0ed40159f..f3169d7c50 100644 --- a/callouts/tests/Makefile.am +++ b/callouts/tests/Makefile.am @@ -29,6 +29,8 @@ test_dispatcher_envp_LDADD = \ ########################################### @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-dispatcher-envp endif diff --git a/configure.ac b/configure.ac index f51e09e94a..ba220579e1 100644 --- a/configure.ac +++ b/configure.ac @@ -15,21 +15,9 @@ AC_INIT([NetworkManager], [nm_version], AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) +AC_REQUIRE_AUX_FILE([tap-driver.sh]) -dnl Initialize automake. automake < 1.12 didn't have serial-tests and -dnl gives an error if it sees this, but for automake >= 1.13 -dnl serial-tests is required so we have to include it. Solution is to -dnl test for the version of automake (by running an external command) -dnl and provide it if necessary. Note we have to do this entirely using -dnl m4 macros since automake queries this macro by running -dnl 'autoconf --trace ...'. -m4_define([serial_tests], [ - m4_esyscmd([automake --version | - head -1 | - awk '{split ($NF,a,"."); if (a[1] == 1 && a[2] >= 12) { print "serial-tests" }}' - ]) -]) -AM_INIT_AUTOMAKE(1.11 serial_tests tar-ustar no-dist-gzip dist-bzip2 -Wno-portability) dnl NB: Do not [quote] this parameter. +AM_INIT_AUTOMAKE(1.12 tar-ustar no-dist-gzip dist-bzip2 -Wno-portability) dnl NB: Do not [quote] this parameter. AM_MAINTAINER_MODE([enable]) AM_SILENT_RULES([yes]) @@ -868,7 +856,7 @@ else fi fi AS_IF([test "$with_valgrind" != "no"], - AC_SUBST(VALGRIND_RULES, 'TESTS_ENVIRONMENT = "$(top_srcdir)/tools/run-test-valgrind.sh" "$(LIBTOOL)" "$(with_valgrind)" '"$with_valgrind_suppressions"), + AC_SUBST(VALGRIND_RULES, 'LOG_COMPILER = "$(top_srcdir)/tools/run-test-valgrind.sh" "$(LIBTOOL)" "$(with_valgrind)" '"$with_valgrind_suppressions"), AC_SUBST(VALGRIND_RULES, [])) AM_CONDITIONAL(WITH_VALGRIND, test "${with_valgrind}" != "no") diff --git a/include/nm-test-utils.h b/include/nm-test-utils.h index c236a1381e..3b5b946281 100644 --- a/include/nm-test-utils.h +++ b/include/nm-test-utils.h @@ -103,9 +103,6 @@ #include "nm-keyfile-internal.h" #endif -/* Analog to EXIT_SUCCESS and EXIT_FAILURE. */ -#define EXIT_SKIP (77) - /*******************************************************************************/ /* general purpose functions that have no dependency on other nmtst functions */ diff --git a/libnm-core/tests/Makefile.am b/libnm-core/tests/Makefile.am index daa5825b50..13e3c01bcc 100644 --- a/libnm-core/tests/Makefile.am +++ b/libnm-core/tests/Makefile.am @@ -26,6 +26,8 @@ LDADD = \ $(GLIB_LIBS) @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = $(noinst_PROGRAMS) endif diff --git a/libnm-core/tests/test-secrets.c b/libnm-core/tests/test-secrets.c index a915ae7d4e..178fddd526 100644 --- a/libnm-core/tests/test-secrets.c +++ b/libnm-core/tests/test-secrets.c @@ -739,33 +739,23 @@ NMTST_DEFINE (); int main (int argc, char **argv) { - char *base; - -#if !GLIB_CHECK_VERSION (2, 35, 0) - g_type_init (); -#endif - nmtst_init (&argc, &argv, TRUE); /* The tests */ - test_need_tls_secrets_path (); - test_need_tls_secrets_blob (); - test_need_tls_phase2_secrets_path (); - test_need_tls_phase2_secrets_blob (); - - test_update_secrets_wifi_single_setting (); - test_update_secrets_wifi_full_hash (); - test_update_secrets_wifi_bad_setting_name (); - - test_update_secrets_whole_connection (); - test_update_secrets_whole_connection_empty_hash (); - test_update_secrets_whole_connection_bad_setting (); - test_update_secrets_whole_connection_empty_base_setting (); - test_update_secrets_null_setting_name_with_setting_hash (); - - base = g_path_get_basename (argv[0]); - fprintf (stdout, "%s: SUCCESS\n", base); - g_free (base); - return 0; + g_test_add_func ("/libnm/need_tls_secrets_path", test_need_tls_secrets_path); + g_test_add_func ("/libnm/need_tls_secrets_blob", test_need_tls_secrets_blob); + g_test_add_func ("/libnm/need_tls_phase2_secrets_path", test_need_tls_phase2_secrets_path); + g_test_add_func ("/libnm/need_tls_phase2_secrets_blob", test_need_tls_phase2_secrets_blob); + + g_test_add_func ("/libnm/update_secrets_wifi_single_setting", test_update_secrets_wifi_single_setting); + g_test_add_func ("/libnm/update_secrets_wifi_full_hash", test_update_secrets_wifi_full_hash); + g_test_add_func ("/libnm/update_secrets_wifi_bad_setting_name", test_update_secrets_wifi_bad_setting_name); + + g_test_add_func ("/libnm/update_secrets_whole_connection", test_update_secrets_whole_connection); + g_test_add_func ("/libnm/update_secrets_whole_connection_empty_hash", test_update_secrets_whole_connection_empty_hash); + g_test_add_func ("/libnm/update_secrets_whole_connection_bad_setting", test_update_secrets_whole_connection_bad_setting); + g_test_add_func ("/libnm/update_secrets_whole_connection_empty_base_setting", test_update_secrets_whole_connection_empty_base_setting); + g_test_add_func ("/libnm/update_secrets_null_setting_name_with_setting_hash", test_update_secrets_null_setting_name_with_setting_hash); + + return g_test_run (); } - diff --git a/libnm-core/tests/test-settings-defaults.c b/libnm-core/tests/test-settings-defaults.c index 0e78618723..ace7af694d 100644 --- a/libnm-core/tests/test-settings-defaults.c +++ b/libnm-core/tests/test-settings-defaults.c @@ -101,15 +101,9 @@ test_defaults (GType type, const char *name) g_object_unref (setting); } -int -main (int argc, char **argv) +static void +defaults () { - char *base; - -#if !GLIB_CHECK_VERSION (2, 35, 0) - g_type_init (); -#endif - /* The tests */ test_defaults (NM_TYPE_SETTING_CONNECTION, NM_SETTING_CONNECTION_SETTING_NAME); test_defaults (NM_TYPE_SETTING_802_1X, NM_SETTING_802_1X_SETTING_NAME); @@ -124,10 +118,17 @@ main (int argc, char **argv) test_defaults (NM_TYPE_SETTING_WIRED, NM_SETTING_WIRED_SETTING_NAME); test_defaults (NM_TYPE_SETTING_WIRELESS, NM_SETTING_WIRELESS_SETTING_NAME); test_defaults (NM_TYPE_SETTING_WIRELESS_SECURITY, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME); +} + +NMTST_DEFINE (); + +int +main (int argc, char **argv) +{ + nmtst_init (&argc, &argv, TRUE); + + g_test_add_func ("/libnm/defaults", defaults); - base = g_path_get_basename (argv[0]); - fprintf (stdout, "%s: SUCCESS\n", base); - g_free (base); - return 0; + return g_test_run (); } diff --git a/libnm-glib/tests/Makefile.am b/libnm-glib/tests/Makefile.am index cea3b79a74..a01a50e724 100644 --- a/libnm-glib/tests/Makefile.am +++ b/libnm-glib/tests/Makefile.am @@ -15,8 +15,10 @@ noinst_PROGRAMS = $(TESTS) if WITH_VALGRIND @VALGRIND_RULES@ --launch-dbus else -TESTS_ENVIRONMENT = $(srcdir)/libnm-glib-test-launch.sh +LOG_COMPILER = $(srcdir)/libnm-glib-test-launch.sh endif +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-nm-client test-remote-settings-client ####### NMClient and non-settings tests ####### diff --git a/libnm-glib/tests/libnm-glib-test-launch.sh b/libnm-glib/tests/libnm-glib-test-launch.sh index 42d9fbe26d..980f8345e9 100755 --- a/libnm-glib/tests/libnm-glib-test-launch.sh +++ b/libnm-glib/tests/libnm-glib-test-launch.sh @@ -1,9 +1,7 @@ #!/bin/sh -# Spawn DBus if there's none -if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then - eval `dbus-launch --sh-syntax` - trap "kill $DBUS_SESSION_BUS_PID" EXIT -fi +# Spawn DBus +eval `dbus-launch --sh-syntax` +trap "kill $DBUS_SESSION_BUS_PID" EXIT "$@" diff --git a/libnm-util/tests/Makefile.am b/libnm-util/tests/Makefile.am index 16a7f8f3fc..f90fe8bf6e 100644 --- a/libnm-util/tests/Makefile.am +++ b/libnm-util/tests/Makefile.am @@ -11,6 +11,8 @@ AM_CPPFLAGS = \ -DTEST_CERT_DIR=\"$(top_srcdir)/libnm-core/tests/certs/\" @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = \ test-settings-defaults \ test-crypto \ diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c index d8f9dcc4ae..f365dc0438 100644 --- a/libnm-util/tests/test-general.c +++ b/libnm-util/tests/test-general.c @@ -1703,9 +1703,9 @@ test_setting_compare_id (void) } static void -test_setting_compare_secrets (NMSettingSecretFlags secret_flags, - NMSettingCompareFlags comp_flags, - gboolean remove_secret) +_compare_secrets (NMSettingSecretFlags secret_flags, + NMSettingCompareFlags comp_flags, + gboolean remove_secret) { gs_unref_object NMSetting *old = NULL, *new = NULL; gboolean success; @@ -1735,9 +1735,18 @@ test_setting_compare_secrets (NMSettingSecretFlags secret_flags, } static void -test_setting_compare_vpn_secrets (NMSettingSecretFlags secret_flags, - NMSettingCompareFlags comp_flags, - gboolean remove_secret) +test_setting_compare_secrets (void) +{ + _compare_secrets (NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE); + _compare_secrets (NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE); + _compare_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE); + _compare_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE); +} + +static void +_compare_vpn_secrets (NMSettingSecretFlags secret_flags, + NMSettingCompareFlags comp_flags, + gboolean remove_secret) { gs_unref_object NMSetting *old = NULL, *new = NULL; gboolean success; @@ -1768,6 +1777,15 @@ test_setting_compare_vpn_secrets (NMSettingSecretFlags secret_flags, } static void +test_setting_compare_vpn_secrets (void) +{ + _compare_vpn_secrets (NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE); + _compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE); + _compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE); + _compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE); +} + +static void test_hwaddr_aton_ether_normal (void) { guint8 buf[100]; @@ -2546,84 +2564,73 @@ NMTST_DEFINE (); int main (int argc, char **argv) { - char *base; - nmtst_init (&argc, &argv, TRUE); /* The tests */ - test_setting_vpn_items (); - test_setting_vpn_update_secrets (); - test_setting_vpn_modify_during_foreach (); - test_setting_ip6_config_old_address_array (); - test_setting_gsm_apn_spaces (); - test_setting_gsm_apn_bad_chars (); - test_setting_gsm_apn_underscore (); - test_setting_gsm_without_number (); - test_setting_to_hash_all (); - test_setting_to_hash_no_secrets (); - test_setting_to_hash_only_secrets (); - test_setting_compare_id (); - test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE); - test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE); - test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE); - test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE); - test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE); - test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE); - test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE); - test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE); - test_setting_old_uuid (); - - test_connection_to_hash_setting_name (); - test_setting_new_from_hash (); - test_connection_replace_settings (); - test_connection_replace_settings_from_connection (); - test_connection_new_from_hash (); - test_connection_verify_sets_interface_name (); - test_connection_normalize_virtual_iface_name (); - - test_setting_connection_permissions_helpers (); - test_setting_connection_permissions_property (); - - test_connection_compare_same (); - test_connection_compare_key_only_in_a (); - test_connection_compare_setting_only_in_a (); - test_connection_compare_key_only_in_b (); - test_connection_compare_setting_only_in_b (); - - test_connection_diff_a_only (); - test_connection_diff_same (); - test_connection_diff_different (); - test_connection_diff_no_secrets (); - test_connection_diff_inferrable (); - test_connection_good_base_types (); - test_connection_bad_base_types (); - - test_hwaddr_aton_ether_normal (); - test_hwaddr_aton_ib_normal (); - test_hwaddr_aton_no_leading_zeros (); - test_hwaddr_aton_malformed (); - test_ip4_prefix_to_netmask (); - test_ip4_netmask_to_prefix (); - - test_connection_changed_signal (); - test_setting_connection_changed_signal (); - test_setting_bond_changed_signal (); - test_setting_ip4_changed_signal (); - test_setting_ip6_changed_signal (); - test_setting_vlan_changed_signal (); - test_setting_vpn_changed_signal (); - test_setting_wired_changed_signal (); - test_setting_wireless_changed_signal (); - test_setting_wireless_security_changed_signal (); - test_setting_802_1x_changed_signal (); - - test_libnm_linking (); - - test_nm_utils_uuid_generate_from_string (); - - base = g_path_get_basename (argv[0]); - fprintf (stdout, "%s: SUCCESS\n", base); - g_free (base); - return 0; + g_test_add_func ("/libnm/setting_vpn_items", test_setting_vpn_items); + g_test_add_func ("/libnm/setting_vpn_update_secrets", test_setting_vpn_update_secrets); + g_test_add_func ("/libnm/setting_vpn_modify_during_foreach", test_setting_vpn_modify_during_foreach); + g_test_add_func ("/libnm/setting_ip6_config_old_address_array", test_setting_ip6_config_old_address_array); + g_test_add_func ("/libnm/setting_gsm_apn_spaces", test_setting_gsm_apn_spaces); + g_test_add_func ("/libnm/setting_gsm_apn_bad_chars", test_setting_gsm_apn_bad_chars); + g_test_add_func ("/libnm/setting_gsm_apn_underscore", test_setting_gsm_apn_underscore); + g_test_add_func ("/libnm/setting_gsm_without_number", test_setting_gsm_without_number); + g_test_add_func ("/libnm/setting_to_hash_all", test_setting_to_hash_all); + g_test_add_func ("/libnm/setting_to_hash_no_secrets", test_setting_to_hash_no_secrets); + g_test_add_func ("/libnm/setting_to_hash_only_secrets", test_setting_to_hash_only_secrets); + g_test_add_func ("/libnm/setting_compare_id", test_setting_compare_id); + g_test_add_func ("/libnm/setting_compare_secrets", test_setting_compare_secrets); + g_test_add_func ("/libnm/setting_compare_vpn_secrets", test_setting_compare_vpn_secrets); + g_test_add_func ("/libnm/setting_old_uuid", test_setting_old_uuid); + + g_test_add_func ("/libnm/connection_to_hash_setting_name", test_connection_to_hash_setting_name); + g_test_add_func ("/libnm/setting_new_from_hash", test_setting_new_from_hash); + g_test_add_func ("/libnm/connection_replace_settings", test_connection_replace_settings); + g_test_add_func ("/libnm/connection_replace_settings_from_connection", test_connection_replace_settings_from_connection); + g_test_add_func ("/libnm/connection_new_from_hash", test_connection_new_from_hash); + g_test_add_func ("/libnm/connection_verify_sets_interface_name", test_connection_verify_sets_interface_name); + g_test_add_func ("/libnm/connection_normalize_virtual_iface_name", test_connection_normalize_virtual_iface_name); + + g_test_add_func ("/libnm/setting_connection_permissions_helpers", test_setting_connection_permissions_helpers); + g_test_add_func ("/libnm/setting_connection_permissions_property", test_setting_connection_permissions_property); + + g_test_add_func ("/libnm/connection_compare_same", test_connection_compare_same); + g_test_add_func ("/libnm/connection_compare_key_only_in_a", test_connection_compare_key_only_in_a); + g_test_add_func ("/libnm/connection_compare_setting_only_in_a", test_connection_compare_setting_only_in_a); + g_test_add_func ("/libnm/connection_compare_key_only_in_b", test_connection_compare_key_only_in_b); + g_test_add_func ("/libnm/connection_compare_setting_only_in_b", test_connection_compare_setting_only_in_b); + + g_test_add_func ("/libnm/connection_diff_a_only", test_connection_diff_a_only); + g_test_add_func ("/libnm/connection_diff_same", test_connection_diff_same); + g_test_add_func ("/libnm/connection_diff_different", test_connection_diff_different); + g_test_add_func ("/libnm/connection_diff_no_secrets", test_connection_diff_no_secrets); + g_test_add_func ("/libnm/connection_diff_inferrable", test_connection_diff_inferrable); + g_test_add_func ("/libnm/connection_good_base_types", test_connection_good_base_types); + g_test_add_func ("/libnm/connection_bad_base_types", test_connection_bad_base_types); + + g_test_add_func ("/libnm/hwaddr_aton_ether_normal", test_hwaddr_aton_ether_normal); + g_test_add_func ("/libnm/hwaddr_aton_ib_normal", test_hwaddr_aton_ib_normal); + g_test_add_func ("/libnm/hwaddr_aton_no_leading_zeros", test_hwaddr_aton_no_leading_zeros); + g_test_add_func ("/libnm/hwaddr_aton_malformed", test_hwaddr_aton_malformed); + g_test_add_func ("/libnm/ip4_prefix_to_netmask", test_ip4_prefix_to_netmask); + g_test_add_func ("/libnm/ip4_netmask_to_prefix", test_ip4_netmask_to_prefix); + + g_test_add_func ("/libnm/connection_changed_signal", test_connection_changed_signal); + g_test_add_func ("/libnm/setting_connection_changed_signal", test_setting_connection_changed_signal); + g_test_add_func ("/libnm/setting_bond_changed_signal", test_setting_bond_changed_signal); + g_test_add_func ("/libnm/setting_ip4_changed_signal", test_setting_ip4_changed_signal); + g_test_add_func ("/libnm/setting_ip6_changed_signal", test_setting_ip6_changed_signal); + g_test_add_func ("/libnm/setting_vlan_changed_signal", test_setting_vlan_changed_signal); + g_test_add_func ("/libnm/setting_vpn_changed_signal", test_setting_vpn_changed_signal); + g_test_add_func ("/libnm/setting_wired_changed_signal", test_setting_wired_changed_signal); + g_test_add_func ("/libnm/setting_wireless_changed_signal", test_setting_wireless_changed_signal); + g_test_add_func ("/libnm/setting_wireless_security_changed_signal", test_setting_wireless_security_changed_signal); + g_test_add_func ("/libnm/setting_802_1x_changed_signal", test_setting_802_1x_changed_signal); + + g_test_add_func ("/libnm/libnm_linking", test_libnm_linking); + + g_test_add_func ("/libnm/nm_utils_uuid_generate_from_string", test_nm_utils_uuid_generate_from_string); + + return g_test_run (); } diff --git a/libnm-util/tests/test-secrets.c b/libnm-util/tests/test-secrets.c index a22edb0fb7..adf3a94a34 100644 --- a/libnm-util/tests/test-secrets.c +++ b/libnm-util/tests/test-secrets.c @@ -734,37 +734,33 @@ test_update_secrets_null_setting_name_with_setting_hash (void) g_object_unref (connection); } +NMTST_DEFINE (); + int main (int argc, char **argv) { GError *error = NULL; - char *base; -#if !GLIB_CHECK_VERSION (2, 35, 0) - g_type_init (); -#endif + nmtst_init (&argc, &argv, TRUE); if (!nm_utils_init (&error)) FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message); /* The tests */ - test_need_tls_secrets_path (); - test_need_tls_secrets_blob (); - test_need_tls_phase2_secrets_path (); - test_need_tls_phase2_secrets_blob (); - - test_update_secrets_wifi_single_setting (); - test_update_secrets_wifi_full_hash (); - test_update_secrets_wifi_bad_setting_name (); - - test_update_secrets_whole_connection (); - test_update_secrets_whole_connection_empty_hash (); - test_update_secrets_whole_connection_bad_setting (); - test_update_secrets_whole_connection_empty_base_setting (); - test_update_secrets_null_setting_name_with_setting_hash (); - - base = g_path_get_basename (argv[0]); - fprintf (stdout, "%s: SUCCESS\n", base); - g_free (base); - return 0; + g_test_add_func ("/libnm/need_tls_secrets_path", test_need_tls_secrets_path); + g_test_add_func ("/libnm/need_tls_secrets_blob", test_need_tls_secrets_blob); + g_test_add_func ("/libnm/need_tls_phase2_secrets_path", test_need_tls_phase2_secrets_path); + g_test_add_func ("/libnm/need_tls_phase2_secrets_blob", test_need_tls_phase2_secrets_blob); + + g_test_add_func ("/libnm/update_secrets_wifi_single_setting", test_update_secrets_wifi_single_setting); + g_test_add_func ("/libnm/update_secrets_wifi_full_hash", test_update_secrets_wifi_full_hash); + g_test_add_func ("/libnm/update_secrets_wifi_bad_setting_name", test_update_secrets_wifi_bad_setting_name); + + g_test_add_func ("/libnm/update_secrets_whole_connection", test_update_secrets_whole_connection); + g_test_add_func ("/libnm/update_secrets_whole_connection_empty_hash", test_update_secrets_whole_connection_empty_hash); + g_test_add_func ("/libnm/update_secrets_whole_connection_bad_setting", test_update_secrets_whole_connection_bad_setting); + g_test_add_func ("/libnm/update_secrets_whole_connection_empty_base_setting", test_update_secrets_whole_connection_empty_base_setting); + g_test_add_func ("/libnm/update_secrets_null_setting_name_with_setting_hash", test_update_secrets_null_setting_name_with_setting_hash); + + return g_test_run (); } diff --git a/libnm-util/tests/test-settings-defaults.c b/libnm-util/tests/test-settings-defaults.c index 7441e1ff5f..70a743cb00 100644 --- a/libnm-util/tests/test-settings-defaults.c +++ b/libnm-util/tests/test-settings-defaults.c @@ -101,18 +101,9 @@ test_defaults (GType type, const char *name) g_object_unref (setting); } -int main (int argc, char **argv) +static void +defaults (void) { - GError *error = NULL; - char *base; - -#if !GLIB_CHECK_VERSION (2, 35, 0) - g_type_init (); -#endif - - if (!nm_utils_init (&error)) - FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message); - /* The tests */ test_defaults (NM_TYPE_SETTING_CONNECTION, NM_SETTING_CONNECTION_SETTING_NAME); test_defaults (NM_TYPE_SETTING_802_1X, NM_SETTING_802_1X_SETTING_NAME); @@ -127,10 +118,16 @@ int main (int argc, char **argv) test_defaults (NM_TYPE_SETTING_WIRED, NM_SETTING_WIRED_SETTING_NAME); test_defaults (NM_TYPE_SETTING_WIRELESS, NM_SETTING_WIRELESS_SETTING_NAME); test_defaults (NM_TYPE_SETTING_WIRELESS_SECURITY, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME); - - base = g_path_get_basename (argv[0]); - fprintf (stdout, "%s: SUCCESS\n", base); - g_free (base); - return 0; } +NMTST_DEFINE (); + +int +main (int argc, char **argv) +{ + nmtst_init (&argc, &argv, TRUE); + + g_test_add_func ("/libnm/defaults", defaults); + + return g_test_run (); +} diff --git a/libnm/nm-dbus-helpers.c b/libnm/nm-dbus-helpers.c index 6bfd4bbd83..a9fc58edf3 100644 --- a/libnm/nm-dbus-helpers.c +++ b/libnm/nm-dbus-helpers.c @@ -93,7 +93,8 @@ _nm_dbus_new_connection (GCancellable *cancellable, GError **error) GDBusConnection *connection = NULL; /* If running as root try the private bus first */ - if (0 == geteuid ()) { + if (0 == geteuid () && !g_test_initialized ()) { + GError *local = NULL; GDBusConnection *p; @@ -203,7 +204,7 @@ _nm_dbus_new_connection_async (GCancellable *cancellable, simple = g_simple_async_result_new (NULL, callback, user_data, _nm_dbus_new_connection_async); /* If running as root try the private bus first */ - if (0 == geteuid ()) { + if (0 == geteuid () && !g_test_initialized ()) { GDBusConnection *p; if (cancellable) { diff --git a/libnm/tests/Makefile.am b/libnm/tests/Makefile.am index 56dd17d5f8..0e7db21b66 100644 --- a/libnm/tests/Makefile.am +++ b/libnm/tests/Makefile.am @@ -20,8 +20,10 @@ noinst_PROGRAMS = $(TESTS) if WITH_VALGRIND @VALGRIND_RULES@ --launch-dbus else -TESTS_ENVIRONMENT = $(srcdir)/libnm-test-launch.sh +LOG_COMPILER = $(srcdir)/libnm-test-launch.sh endif +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-nm-client test-remote-settings-client test-secret-agent test_nm_client_SOURCES = \ diff --git a/libnm/tests/libnm-test-launch.sh b/libnm/tests/libnm-test-launch.sh index 42d9fbe26d..980f8345e9 100755 --- a/libnm/tests/libnm-test-launch.sh +++ b/libnm/tests/libnm-test-launch.sh @@ -1,9 +1,7 @@ #!/bin/sh -# Spawn DBus if there's none -if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then - eval `dbus-launch --sh-syntax` - trap "kill $DBUS_SESSION_BUS_PID" EXIT -fi +# Spawn DBus +eval `dbus-launch --sh-syntax` +trap "kill $DBUS_SESSION_BUS_PID" EXIT "$@" diff --git a/src/devices/wifi/tests/Makefile.am b/src/devices/wifi/tests/Makefile.am index 2a7d784970..72dc7189bd 100644 --- a/src/devices/wifi/tests/Makefile.am +++ b/src/devices/wifi/tests/Makefile.am @@ -24,5 +24,7 @@ test_wifi_ap_utils_SOURCES = \ test_wifi_ap_utils_LDADD = $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-wifi-ap-utils diff --git a/src/dhcp-manager/tests/Makefile.am b/src/dhcp-manager/tests/Makefile.am index 8aa79a29be..2fb39e0417 100644 --- a/src/dhcp-manager/tests/Makefile.am +++ b/src/dhcp-manager/tests/Makefile.am @@ -38,6 +38,8 @@ test_dhcp_utils_LDADD = \ ################################# @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-dhcp-dhclient test-dhcp-utils EXTRA_DIST = \ diff --git a/src/dnsmasq-manager/tests/Makefile.am b/src/dnsmasq-manager/tests/Makefile.am index b51de6aa5d..ed1225549d 100644 --- a/src/dnsmasq-manager/tests/Makefile.am +++ b/src/dnsmasq-manager/tests/Makefile.am @@ -20,5 +20,7 @@ test_dnsmasq_utils_LDADD = \ $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-dnsmasq-utils diff --git a/src/platform/tests/Makefile.am b/src/platform/tests/Makefile.am index 081023c63d..bc032d212e 100644 --- a/src/platform/tests/Makefile.am +++ b/src/platform/tests/Makefile.am @@ -109,8 +109,9 @@ test_cleanup_linux_CPPFLAGS = \ -DKERNEL_HACKS=1 test_cleanup_linux_LDADD = $(PLATFORM_LDADD) - @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = \ test-address-fake \ test-address-linux \ diff --git a/src/platform/tests/test-common.c b/src/platform/tests/test-common.c index 2d37fb837d..2eda47cc8b 100644 --- a/src/platform/tests/test-common.c +++ b/src/platform/tests/test-common.c @@ -295,7 +295,7 @@ main (int argc, char **argv) return EXIT_FAILURE; #else g_print ("Skipping test: requires root privileges (%s)\n", program); - return EXIT_SKIP; + return g_test_run (); #endif } diff --git a/src/rdisc/tests/Makefile.am b/src/rdisc/tests/Makefile.am index 5d6f8b5bcb..e10b34f003 100644 --- a/src/rdisc/tests/Makefile.am +++ b/src/rdisc/tests/Makefile.am @@ -33,5 +33,7 @@ test_rdisc_fake_LDADD = \ $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-rdisc-fake diff --git a/src/rdisc/tests/test-rdisc-fake.c b/src/rdisc/tests/test-rdisc-fake.c index 3b525203a2..33672637d0 100644 --- a/src/rdisc/tests/test-rdisc-fake.c +++ b/src/rdisc/tests/test-rdisc-fake.c @@ -439,7 +439,7 @@ main (int argc, char **argv) if (nmtst_test_quick ()) { g_print ("Skipping test: don't run long running test %s (NMTST_DEBUG=slow)\n", str_if_set (g_get_prgname (), "test-rdisc-fake")); - return EXIT_SKIP; + return g_test_run (); } nm_fake_platform_setup (); diff --git a/src/settings/plugins/ibft/tests/Makefile.am b/src/settings/plugins/ibft/tests/Makefile.am index 3c7c94accd..e7285e0e95 100644 --- a/src/settings/plugins/ibft/tests/Makefile.am +++ b/src/settings/plugins/ibft/tests/Makefile.am @@ -33,6 +33,8 @@ test_ibft_LDADD = \ $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-ibft endif diff --git a/src/settings/plugins/ifcfg-rh/tests/Makefile.am b/src/settings/plugins/ifcfg-rh/tests/Makefile.am index a3f6a05204..f629830813 100644 --- a/src/settings/plugins/ifcfg-rh/tests/Makefile.am +++ b/src/settings/plugins/ifcfg-rh/tests/Makefile.am @@ -48,6 +48,8 @@ test_ifcfg_rh_utils_LDADD = \ $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-ifcfg-rh-utils test-ifcfg-rh endif diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh-utils.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh-utils.c index 13f1126e48..68f236afbe 100644 --- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh-utils.c +++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh-utils.c @@ -115,15 +115,9 @@ test_ignored (const char *desc, const char *path, gboolean expected_ignored) ASSERT (result == expected_ignored, desc, "unexpected ignore result for path '%s'", path); } -NMTST_DEFINE (); - -int main (int argc, char **argv) +static void +test_name (void) { - char *base; - - nmtst_init_assert_logging (&argc, &argv, "INFO", "DEFAULT"); - - /* The tests */ test_get_ifcfg_name ("get-ifcfg-name-bad", "/foo/bar/adfasdfadf", FALSE, NULL); test_get_ifcfg_name ("get-ifcfg-name-good", "/foo/bar/ifcfg-FooBar", FALSE, "FooBar"); test_get_ifcfg_name ("get-ifcfg-name-keys", "/foo/bar/keys-BlahLbah", FALSE, "BlahLbah"); @@ -137,7 +131,11 @@ int main (int argc, char **argv) test_get_ifcfg_name ("get-ifcfg-name-bad2-ifcfg", "/foo/bar/asdfasifcfg-Foobar", FALSE, NULL); test_get_ifcfg_name ("get-ifcfg-name-bad2-keys", "/foo/bar/asdfaskeys-Foobar", FALSE, NULL); test_get_ifcfg_name ("get-ifcfg-name-bad2-route", "/foo/bar/asdfasroute-Foobar", FALSE, NULL); +} +static void +test_path (void) +{ test_get_ifcfg_path ("ifcfg-path-bad", "/foo/bar/adfasdfasdf", NULL); test_get_ifcfg_path ("ifcfg-path-from-keys-no-path", "keys-BlahBlah", "ifcfg-BlahBlah"); test_get_ifcfg_path ("ifcfg-path-from-keys", "/foo/bar/keys-BlahBlah", "/foo/bar/ifcfg-BlahBlah"); @@ -152,7 +150,11 @@ int main (int argc, char **argv) test_get_route_path ("route-path-from-ifcfg-no-path", "ifcfg-FooBar", "route-FooBar"); test_get_route_path ("route-path-from-ifcfg", "/foo/bar/ifcfg-FooBar", "/foo/bar/route-FooBar"); test_get_route_path ("route-path-from-keys", "/foo/bar/keys-FooBar", "/foo/bar/route-FooBar"); +} +static void +test_ignore (void) +{ test_ignored ("ignored-ifcfg", "ifcfg-FooBar", FALSE); test_ignored ("ignored-keys", "keys-FooBar", FALSE); test_ignored ("ignored-route", "route-FooBar", FALSE); @@ -163,10 +165,19 @@ int main (int argc, char **argv) test_ignored ("ignored-rpmnew", "ifcfg-FooBar" RPMNEW_TAG, TRUE); test_ignored ("ignored-augnew", "ifcfg-FooBar" AUGNEW_TAG, TRUE); test_ignored ("ignored-augtmp", "ifcfg-FooBar" AUGTMP_TAG, TRUE); +} + +NMTST_DEFINE (); + +int main (int argc, char **argv) +{ + nmtst_init_assert_logging (&argc, &argv, "INFO", "DEFAULT"); + + /* The tests */ + g_test_add_func ("/settings/plugins/ifcfg-rh/name", test_name); + g_test_add_func ("/settings/plugins/ifcfg-rh/path", test_path); + g_test_add_func ("/settings/plugins/ifcfg-rh/ignore", test_ignore); - base = g_path_get_basename (argv[0]); - fprintf (stdout, "%s: SUCCESS\n", base); - g_free (base); - return 0; + return g_test_run (); } diff --git a/src/settings/plugins/ifupdown/tests/Makefile.am b/src/settings/plugins/ifupdown/tests/Makefile.am index 2e927db931..e43a5113df 100644 --- a/src/settings/plugins/ifupdown/tests/Makefile.am +++ b/src/settings/plugins/ifupdown/tests/Makefile.am @@ -25,6 +25,8 @@ test_ifupdown_LDADD = \ # TODO: enable valgrind for ifupdown. Currently it fails. #@VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-ifupdown endif diff --git a/src/settings/plugins/keyfile/tests/Makefile.am b/src/settings/plugins/keyfile/tests/Makefile.am index a79e20b5b6..dffa276eb0 100644 --- a/src/settings/plugins/keyfile/tests/Makefile.am +++ b/src/settings/plugins/keyfile/tests/Makefile.am @@ -35,6 +35,8 @@ test_keyfile_LDADD = \ $(CODE_COVERAGE_LDFLAGS) @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-keyfile endif diff --git a/src/supplicant-manager/tests/Makefile.am b/src/supplicant-manager/tests/Makefile.am index 85268dcff9..d53b7ff4c7 100644 --- a/src/supplicant-manager/tests/Makefile.am +++ b/src/supplicant-manager/tests/Makefile.am @@ -19,4 +19,6 @@ test_supplicant_config_LDADD = \ $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-supplicant-config diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index 83632bd198..fdda3b07d0 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -117,6 +117,8 @@ EXTRA_DIST = test-secret-agent.py ########################################### @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = \ test-ip4-config \ test-ip6-config \ diff --git a/src/tests/config/Makefile.am b/src/tests/config/Makefile.am index 42c6b9a1b0..5936624cea 100644 --- a/src/tests/config/Makefile.am +++ b/src/tests/config/Makefile.am @@ -24,6 +24,8 @@ test_config_LDADD = \ $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ +AM_TESTS_FD_REDIRECT = --tap +LOG_DRIVER = $(top_srcdir)/build-aux/tap-driver.sh TESTS = test-config EXTRA_DIST = \ diff --git a/tools/run-test-valgrind.sh b/tools/run-test-valgrind.sh index 200a27d13c..b93b9472b7 100755 --- a/tools/run-test-valgrind.sh +++ b/tools/run-test-valgrind.sh @@ -4,14 +4,12 @@ LIBTOOL="$1"; shift VALGRIND="$1"; shift SUPPRESSIONS="$1"; shift if [ "$1" = "--launch-dbus" ]; then - # Spawn DBus if there's none - if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then - eval `dbus-launch --sh-syntax` - trap "kill $DBUS_SESSION_BUS_PID" EXIT - fi + # Spawn DBus + eval `dbus-launch --sh-syntax` + trap "kill $DBUS_SESSION_BUS_PID" EXIT shift fi -TEST="$1"; shift +TEST="$1" if [ "$NMTST_NO_VALGRIND" != "" ]; then "$TEST" @@ -29,7 +27,7 @@ $LIBTOOL --mode=execute "$VALGRIND" \ --gen-suppressions=all \ --suppressions="$SUPPRESSIONS" \ --log-file="$LOGFILE" \ - "$TEST" + "$@" RESULT=$? if [ $RESULT -eq 0 -a "$(wc -c "$LOGFILE" | awk '{print$1}')" -ne 0 ]; then @@ -38,7 +36,19 @@ if [ $RESULT -eq 0 -a "$(wc -c "$LOGFILE" | awk '{print$1}')" -ne 0 ]; then fi if [ $RESULT -ne 0 -a $RESULT -ne 77 ]; then - echo "Don't forget to check the valgrind log at '`realpath $LOGFILE`'." >&2 + echo "valgrind failed! Check the log at '`realpath $LOGFILE`'." >&2 + UNRESOLVED=$(awk -F: '/obj:\// {print $NF}' "$LOGFILE" | sort | uniq) + if [ -n "$UNRESOLVED" ]; then + echo Some addresses could not be resolved into symbols. >&2 + echo The errors might get suppressed when you install the debuging symbols. >&2 + if [ -x /usr/bin/dnf ]; then + echo Hint: dnf debuginfo-install $UNRESOLVED >&2 + elif [ -x /usr/bin/debuginfo-install ]; then + echo Hint: debuginfo-install $UNRESOLVED >&2 + else + echo Files without debugging symbols: $UNRESOLVED >&2 + fi + fi fi exit $RESULT |