mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-07 09:38:06 +02:00
libnm: add nm_connectivity_state_cmp() helper
(cherry picked from commit487ee687d5) (cherry picked from commit51b7b10d3d)
This commit is contained in:
parent
0624814af1
commit
c155f776fd
2 changed files with 73 additions and 0 deletions
|
|
@ -24,6 +24,21 @@
|
||||||
|
|
||||||
#include "nm-dbus-interface.h"
|
#include "nm-dbus-interface.h"
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
nm_connectivity_state_cmp (NMConnectivityState a, NMConnectivityState b)
|
||||||
|
{
|
||||||
|
if (a == NM_CONNECTIVITY_PORTAL && b == NM_CONNECTIVITY_LIMITED)
|
||||||
|
return 1;
|
||||||
|
if (b == NM_CONNECTIVITY_PORTAL && a == NM_CONNECTIVITY_LIMITED)
|
||||||
|
return -1;
|
||||||
|
NM_CMP_DIRECT (a, b);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define NM_CONNECTIVITY_ERROR ((NMConnectivityState) -1)
|
#define NM_CONNECTIVITY_ERROR ((NMConnectivityState) -1)
|
||||||
#define NM_CONNECTIVITY_FAKE ((NMConnectivityState) -2)
|
#define NM_CONNECTIVITY_FAKE ((NMConnectivityState) -2)
|
||||||
#define NM_CONNECTIVITY_CANCELLED ((NMConnectivityState) -3)
|
#define NM_CONNECTIVITY_CANCELLED ((NMConnectivityState) -3)
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@
|
||||||
#include "NetworkManagerUtils.h"
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-core-internal.h"
|
#include "nm-core-internal.h"
|
||||||
|
|
||||||
|
#include "nm-connectivity.h"
|
||||||
|
|
||||||
#include "nm-test-utils-core.h"
|
#include "nm-test-utils-core.h"
|
||||||
|
|
||||||
/* Reference implementation for nm_utils_ip6_address_clear_host_address.
|
/* Reference implementation for nm_utils_ip6_address_clear_host_address.
|
||||||
|
|
@ -1733,6 +1735,60 @@ test_nm_utils_exp10 (void)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_connectivity_state_cmp (void)
|
||||||
|
{
|
||||||
|
NMConnectivityState a;
|
||||||
|
|
||||||
|
#define _cmp(a, b, cmp) \
|
||||||
|
G_STMT_START { \
|
||||||
|
const NMConnectivityState _a = (a); \
|
||||||
|
const NMConnectivityState _b = (b); \
|
||||||
|
const int _cmp = (cmp); \
|
||||||
|
\
|
||||||
|
g_assert (NM_IN_SET (_cmp, -1, 0, 1)); \
|
||||||
|
g_assert_cmpint (nm_connectivity_state_cmp (_a, _b), ==, _cmp); \
|
||||||
|
g_assert_cmpint (nm_connectivity_state_cmp (_b, _a), ==, -_cmp); \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
|
for (a = NM_CONNECTIVITY_UNKNOWN; a <= NM_CONNECTIVITY_FULL; a++)
|
||||||
|
_cmp (a, a, 0);
|
||||||
|
|
||||||
|
_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_UNKNOWN, 0);
|
||||||
|
_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_NONE, -1);
|
||||||
|
_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_LIMITED, -1);
|
||||||
|
_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_PORTAL, -1);
|
||||||
|
_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_FULL, -1);
|
||||||
|
|
||||||
|
_cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_UNKNOWN, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_NONE, 0);
|
||||||
|
_cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_LIMITED, -1);
|
||||||
|
_cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_PORTAL, -1);
|
||||||
|
_cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_FULL, -1);
|
||||||
|
|
||||||
|
_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_UNKNOWN, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_NONE, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_LIMITED, 0);
|
||||||
|
_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_PORTAL, -1);
|
||||||
|
_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_FULL, -1);
|
||||||
|
|
||||||
|
_cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_UNKNOWN, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_NONE, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_LIMITED, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_PORTAL, 0);
|
||||||
|
_cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_FULL, -1);
|
||||||
|
|
||||||
|
_cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_UNKNOWN, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_NONE, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_LIMITED, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_PORTAL, 1);
|
||||||
|
_cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_FULL, 0);
|
||||||
|
|
||||||
|
#undef _cmp
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
NMTST_DEFINE ();
|
NMTST_DEFINE ();
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -1777,6 +1833,8 @@ main (int argc, char **argv)
|
||||||
g_test_add_func ("/general/stable-id/parse", test_stable_id_parse);
|
g_test_add_func ("/general/stable-id/parse", test_stable_id_parse);
|
||||||
g_test_add_func ("/general/stable-id/generated-complete", test_stable_id_generated_complete);
|
g_test_add_func ("/general/stable-id/generated-complete", test_stable_id_generated_complete);
|
||||||
|
|
||||||
|
g_test_add_func ("/core/general/test_connectivity_state_cmp", test_connectivity_state_cmp);
|
||||||
|
|
||||||
return g_test_run ();
|
return g_test_run ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue