mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-08 05:28:07 +02:00
platform/tests: add unit test checking consistency of NMPClass
This commit is contained in:
parent
8feeb199ad
commit
5da0d18fbe
1 changed files with 49 additions and 8 deletions
|
|
@ -6,19 +6,12 @@
|
||||||
#include "libnm-platform/nm-netlink.h"
|
#include "libnm-platform/nm-netlink.h"
|
||||||
#include "libnm-platform/nmp-netns.h"
|
#include "libnm-platform/nmp-netns.h"
|
||||||
#include "libnm-platform/nm-platform-utils.h"
|
#include "libnm-platform/nm-platform-utils.h"
|
||||||
|
#include "libnm-platform/nmp-object.h"
|
||||||
|
|
||||||
#include "libnm-glib-aux/nm-test-utils.h"
|
#include "libnm-glib-aux/nm-test-utils.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void
|
|
||||||
_nm_logging_clear_platform_logging_cache(void)
|
|
||||||
{
|
|
||||||
/* this symbols is required by nm-log-core library. */
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_use_symbols(void)
|
test_use_symbols(void)
|
||||||
{
|
{
|
||||||
|
|
@ -140,6 +133,53 @@ test_nmp_link_mode_all_advertised_modes_bits(void)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_nmpclass_consistency(void)
|
||||||
|
{
|
||||||
|
NMPObjectType obj_type;
|
||||||
|
NMPObjectType obj_type2;
|
||||||
|
|
||||||
|
G_STATIC_ASSERT(G_N_ELEMENTS(_nmp_classes) == NMP_OBJECT_TYPE_MAX);
|
||||||
|
|
||||||
|
for (obj_type = 1; obj_type <= NMP_OBJECT_TYPE_MAX; obj_type++) {
|
||||||
|
const NMPClass *klass = nmp_class_from_type(obj_type);
|
||||||
|
gboolean is_lnk;
|
||||||
|
|
||||||
|
g_assert(klass);
|
||||||
|
g_assert(klass == &_nmp_classes[obj_type - 1]);
|
||||||
|
|
||||||
|
g_assert_cmpint(klass->obj_type, ==, obj_type);
|
||||||
|
g_assert(klass->obj_type_name);
|
||||||
|
|
||||||
|
g_assert((!!klass->cmd_obj_cmp) == (!!klass->cmd_obj_hash_update));
|
||||||
|
g_assert((!!klass->cmd_plobj_cmp) == (!!klass->cmd_plobj_hash_update));
|
||||||
|
|
||||||
|
g_assert((!!klass->cmd_obj_cmp) != (!!klass->cmd_plobj_cmp));
|
||||||
|
g_assert((!!klass->cmd_obj_hash_update) != (!!klass->cmd_plobj_hash_update));
|
||||||
|
|
||||||
|
g_assert_cmpint(klass->sizeof_public, >, 0);
|
||||||
|
g_assert_cmpint(klass->sizeof_data, >=, klass->sizeof_public);
|
||||||
|
|
||||||
|
g_assert((!!klass->cmd_obj_to_string) != (!!klass->cmd_plobj_to_string));
|
||||||
|
g_assert(!klass->cmd_plobj_to_string_id || klass->cmd_plobj_to_string);
|
||||||
|
|
||||||
|
is_lnk = (obj_type >= NMP_OBJECT_TYPE_LNK_BRIDGE && obj_type <= NMP_OBJECT_TYPE_LNK_BOND);
|
||||||
|
if (klass->lnk_link_type == NM_LINK_TYPE_NONE) {
|
||||||
|
G_STATIC_ASSERT(NM_LINK_TYPE_NONE == 0);
|
||||||
|
g_assert(!is_lnk);
|
||||||
|
} else
|
||||||
|
g_assert(is_lnk);
|
||||||
|
|
||||||
|
for (obj_type2 = 1; obj_type2 < obj_type; obj_type2++) {
|
||||||
|
const NMPClass *klass2 = nmp_class_from_type(obj_type2);
|
||||||
|
|
||||||
|
g_assert_cmpstr(klass->obj_type_name, !=, klass2->obj_type_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
NMTST_DEFINE();
|
NMTST_DEFINE();
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -150,6 +190,7 @@ main(int argc, char **argv)
|
||||||
g_test_add_func("/nm-platform/test_use_symbols", test_use_symbols);
|
g_test_add_func("/nm-platform/test_use_symbols", test_use_symbols);
|
||||||
g_test_add_func("/nm-platform/test_nmp_link_mode_all_advertised_modes_bits",
|
g_test_add_func("/nm-platform/test_nmp_link_mode_all_advertised_modes_bits",
|
||||||
test_nmp_link_mode_all_advertised_modes_bits);
|
test_nmp_link_mode_all_advertised_modes_bits);
|
||||||
|
g_test_add_func("/nm-platform/test_nmpclass_consistency", test_nmpclass_consistency);
|
||||||
|
|
||||||
return g_test_run();
|
return g_test_run();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue