diff options
Diffstat (limited to 'src/platform/tests/test-common.h')
| -rw-r--r-- | src/platform/tests/test-common.h | 105 |
1 files changed, 72 insertions, 33 deletions
diff --git a/src/platform/tests/test-common.h b/src/platform/tests/test-common.h index 82561193..0e3cf10b 100644 --- a/src/platform/tests/test-common.h +++ b/src/platform/tests/test-common.h @@ -4,7 +4,6 @@ #include <string.h> #include <arpa/inet.h> -#include "nm-default.h" #include "nm-platform.h" #include "nm-fake-platform.h" #include "nm-linux-platform.h" @@ -38,16 +37,6 @@ /*********************************************************************************************/ -typedef struct { - gulong handler_id; - const char *name; - NMPlatformSignalChangeType change_type; - gint received_count; - GMainLoop *loop; - int ifindex; - const char *ifname; -} SignalData; - gboolean nmtstp_is_root_test (void); gboolean nmtstp_is_sysfs_writable (void); @@ -64,6 +53,16 @@ int nmtstp_namespace_get_fd_for_process (pid_t pid, const char *ns_name); /******************************************************************************/ +typedef struct { + gulong handler_id; + const char *name; + NMPlatformSignalChangeType change_type; + gint received_count; + GMainLoop *loop; + int ifindex; + const char *ifname; +} SignalData; + SignalData *add_signal_full (const char *name, NMPlatformSignalChangeType change_type, GCallback callback, int ifindex, const char *ifname); #define add_signal(name, change_type, callback) add_signal_full (name, change_type, (GCallback) callback, 0, NULL) #define add_signal_ifindex(name, change_type, callback, ifindex) add_signal_full (name, change_type, (GCallback) callback, ifindex, NULL) @@ -81,27 +80,49 @@ void _free_signal (const char *file, int line, const char *func, SignalData *dat #define ensure_no_signal(data) _ensure_no_signal(__FILE__, __LINE__, G_STRFUNC, data) #define free_signal(data) _free_signal(__FILE__, __LINE__, G_STRFUNC, data) -gboolean ip4_route_exists (const char *ifname, guint32 network, int plen, guint32 metric); - -void _assert_ip4_route_exists (const char *file, guint line, const char *func, gboolean exists, const char *ifname, guint32 network, int plen, guint32 metric); -#define assert_ip4_route_exists(exists, ifname, network, plen, metric) _assert_ip4_route_exists (__FILE__, __LINE__, G_STRFUNC, exists, ifname, network, plen, metric) - void link_callback (NMPlatform *platform, NMPObjectType obj_type, int ifindex, NMPlatformLink *received, NMPlatformSignalChangeType change_type, SignalData *data); +/*****************************************************************************/ + int nmtstp_run_command (const char *format, ...) __attribute__((__format__ (__printf__, 1, 2))); #define nmtstp_run_command_check(...) do { g_assert_cmpint (nmtstp_run_command (__VA_ARGS__), ==, 0); } while (0) -gboolean nmtstp_wait_for_signal (NMPlatform *platform, guint timeout_ms); -gboolean nmtstp_wait_for_signal_until (NMPlatform *platform, gint64 until_ms); +/*****************************************************************************/ + +guint nmtstp_wait_for_signal (NMPlatform *platform, guint timeout_ms); +guint nmtstp_wait_for_signal_until (NMPlatform *platform, gint64 until_ms); const NMPlatformLink *nmtstp_wait_for_link (NMPlatform *platform, const char *ifname, NMLinkType expected_link_type, guint timeout_ms); const NMPlatformLink *nmtstp_wait_for_link_until (NMPlatform *platform, const char *ifname, NMLinkType expected_link_type, gint64 until_ms); +#define nmtstp_assert_wait_for_signal(platform, timeout_ms) \ + G_STMT_START { \ + if (nmtstp_wait_for_signal (platform, timeout_ms) == 0) \ + g_assert_not_reached (); \ + } G_STMT_END + +#define nmtstp_assert_wait_for_signal_until(platform, until_ms) \ + G_STMT_START { \ + if (nmtstp_wait_for_signal_until (platform, until_ms) == 0) \ + g_assert_not_reached (); \ + } G_STMT_END + const NMPlatformLink *nmtstp_assert_wait_for_link (NMPlatform *platform, const char *ifname, NMLinkType expected_link_type, guint timeout_ms); const NMPlatformLink *nmtstp_assert_wait_for_link_until (NMPlatform *platform, const char *ifname, NMLinkType expected_link_type, gint64 until_ms); +/*****************************************************************************/ + int nmtstp_run_command_check_external_global (void); gboolean nmtstp_run_command_check_external (int external_command); +/*****************************************************************************/ + +gboolean nmtstp_ip4_route_exists (const char *ifname, guint32 network, int plen, guint32 metric); + +void _nmtstp_assert_ip4_route_exists (const char *file, guint line, const char *func, NMPlatform *platform, gboolean exists, const char *ifname, guint32 network, int plen, guint32 metric); +#define nmtstp_assert_ip4_route_exists(platform, exists, ifname, network, plen, metric) _nmtstp_assert_ip4_route_exists (__FILE__, __LINE__, G_STRFUNC, platform, exists, ifname, network, plen, metric) + +/*****************************************************************************/ + gboolean nmtstp_ip_address_check_lifetime (const NMPlatformIPAddress *addr, gint64 now, guint32 expected_lifetime, @@ -110,7 +131,9 @@ void nmtstp_ip_address_assert_lifetime (const NMPlatformIPAddress *addr, gint64 now, guint32 expected_lifetime, guint32 expected_preferred); -void nmtstp_ip4_address_add (gboolean external_command, + +void nmtstp_ip4_address_add (NMPlatform *platform, + gboolean external_command, int ifindex, in_addr_t address, int plen, @@ -119,7 +142,8 @@ void nmtstp_ip4_address_add (gboolean external_command, guint32 preferred, guint32 flags, const char *label); -void nmtstp_ip6_address_add (gboolean external_command, +void nmtstp_ip6_address_add (NMPlatform *platform, + gboolean external_command, int ifindex, struct in6_addr address, int plen, @@ -127,49 +151,64 @@ void nmtstp_ip6_address_add (gboolean external_command, guint32 lifetime, guint32 preferred, guint32 flags); -void nmtstp_ip4_address_del (gboolean external_command, +void nmtstp_ip4_address_del (NMPlatform *platform, + gboolean external_command, int ifindex, in_addr_t address, int plen, in_addr_t peer_address); -void nmtstp_ip6_address_del (gboolean external_command, +void nmtstp_ip6_address_del (NMPlatform *platform, + gboolean external_command, int ifindex, struct in6_addr address, int plen); +/*****************************************************************************/ + const NMPlatformLink *nmtstp_link_get_typed (NMPlatform *platform, int ifindex, const char *name, NMLinkType link_type); const NMPlatformLink *nmtstp_link_get (NMPlatform *platform, int ifindex, const char *name); -void nmtstp_link_set_updown (gboolean external_command, +void nmtstp_link_set_updown (NMPlatform *platform, + gboolean external_command, int ifindex, gboolean up); -const NMPlatformLink *nmtstp_link_dummy_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_dummy_add (NMPlatform *platform, + gboolean external_command, const char *name); -const NMPlatformLink *nmtstp_link_gre_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_gre_add (NMPlatform *platform, + gboolean external_command, const char *name, const NMPlatformLnkGre *lnk); -const NMPlatformLink *nmtstp_link_ip6tnl_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_ip6tnl_add (NMPlatform *platform, + gboolean external_command, const char *name, const NMPlatformLnkIp6Tnl *lnk); -const NMPlatformLink *nmtstp_link_ipip_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_ipip_add (NMPlatform *platform, + gboolean external_command, const char *name, const NMPlatformLnkIpIp *lnk); -const NMPlatformLink *nmtstp_link_macvlan_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_macvlan_add (NMPlatform *platform, + gboolean external_command, const char *name, int parent, const NMPlatformLnkMacvlan *lnk); -const NMPlatformLink *nmtstp_link_sit_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_sit_add (NMPlatform *platform, + gboolean external_command, const char *name, const NMPlatformLnkSit *lnk); -const NMPlatformLink *nmtstp_link_vxlan_add (gboolean external_command, +const NMPlatformLink *nmtstp_link_vxlan_add (NMPlatform *platform, + gboolean external_command, const char *name, const NMPlatformLnkVxlan *lnk); -void nmtstp_link_del (gboolean external_command, +void nmtstp_link_del (NMPlatform *platform, + gboolean external_command, int ifindex, const char *name); -void init_tests (int *argc, char ***argv); -void setup_tests (void); +/*****************************************************************************/ + +void _nmtstp_init_tests (int *argc, char ***argv); +void _nmtstp_setup_tests (void); |