summaryrefslogtreecommitdiff
path: root/src/platform/tests/test-platform-general.c
blob: 255210f22081126fd7bb2c6bc0403d479bbab285 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2015 - 2018 Red Hat, Inc.
 */

#include "nm-default.h"

#include <linux/rtnetlink.h>

#include "platform/nm-platform-utils.h"
#include "platform/nm-linux-platform.h"

#include "nm-test-utils-core.h"

/*****************************************************************************/

static void
test_init_linux_platform (void)
{
	gs_unref_object NMPlatform *platform = NULL;

	platform = nm_linux_platform_new (TRUE, NM_PLATFORM_NETNS_SUPPORT_DEFAULT);
}

/*****************************************************************************/

static void
test_link_get_all (void)
{
	gs_unref_object NMPlatform *platform = NULL;
	gs_unref_ptrarray GPtrArray *links = NULL;

	platform = nm_linux_platform_new (TRUE, NM_PLATFORM_NETNS_SUPPORT_DEFAULT);

	links = nm_platform_link_get_all (platform, TRUE);
}

/*****************************************************************************/

static void
test_nm_platform_link_flags2str (void)
{
	int i;

	for (i = 0; i < 100; i++) {
		char buf[NM_PLATFORM_LINK_FLAGS2STR_MAX_LEN + 100];
		const char *s;
		const guint flags = ((i == 0) ? ~0u : nmtst_get_rand_uint ());
		gsize l;

		s = nm_platform_link_flags2str (flags, buf, sizeof (buf));
		g_assert (s);

		l = strlen (s);
		if (l > NM_PLATFORM_LINK_FLAGS2STR_MAX_LEN)
			g_error ("nm_platform_link_flags2str(%x) produced a longer output than %zu chars: \"%s\"", flags, NM_PLATFORM_LINK_FLAGS2STR_MAX_LEN, s);
		if (   flags == ~0u
		    && l != NM_PLATFORM_LINK_FLAGS2STR_MAX_LEN)
			g_error ("nm_platform_link_flags2str(%x) is expected to produce %zu chars, but produced %zu: \"%s\"", flags, NM_PLATFORM_LINK_FLAGS2STR_MAX_LEN, l, s);
	}
}

/*****************************************************************************/

NMTST_DEFINE ();

int
main (int argc, char **argv)
{
	nmtst_init_assert_logging (&argc, &argv, "WARN", "DEFAULT");

	g_test_add_func ("/general/init_linux_platform", test_init_linux_platform);
	g_test_add_func ("/general/link_get_all", test_link_get_all);
	g_test_add_func ("/general/nm_platform_link_flags2str", test_nm_platform_link_flags2str);

	return g_test_run ();
}