mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 12:34:55 +00:00
shared/tests: add test for "shared/nm-utils"
"shared/nm-utils" is a loose collection of utility functions. There is a certain aim that they can be used independently. However, they also rely on each other. Add a test that we can build a minimal shared library with these tools, independent of libnm-core.
This commit is contained in:
parent
a6add8175a
commit
dfdbd1b385
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -147,6 +147,7 @@ test-*.trs
|
||||||
/examples/C/qt/change-ipv4-addresses
|
/examples/C/qt/change-ipv4-addresses
|
||||||
|
|
||||||
/shared/nm-version-macros.h
|
/shared/nm-version-macros.h
|
||||||
|
/shared/nm-utils/tests/test-shared-general
|
||||||
|
|
||||||
/introspection/org.freedesktop.NetworkManager*.[ch]
|
/introspection/org.freedesktop.NetworkManager*.[ch]
|
||||||
|
|
||||||
|
|
33
Makefile.am
33
Makefile.am
|
@ -204,6 +204,39 @@ DISTCLEANFILES += $(polkit_policy_DATA)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
check_programs += shared/nm-utils/tests/test-shared-general
|
||||||
|
|
||||||
|
shared_nm_utils_tests_test_shared_general_CPPFLAGS = \
|
||||||
|
$(dflt_cppflags) \
|
||||||
|
-I$(srcdir)/shared \
|
||||||
|
-DNETWORKMANAGER_COMPILATION_TEST \
|
||||||
|
-DNETWORKMANAGER_COMPILATION='(NM_NETWORKMANAGER_COMPILATION_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG)' \
|
||||||
|
$(CODE_COVERAGE_CFLAGS) \
|
||||||
|
$(GLIB_CFLAGS) \
|
||||||
|
$(LIBUDEV_CFLAGS) \
|
||||||
|
$(SANITIZER_LIB_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
shared_nm_utils_tests_test_shared_general_SOURCES = \
|
||||||
|
shared/nm-utils/c-list-util.c \
|
||||||
|
shared/nm-utils/nm-dedup-multi.c \
|
||||||
|
shared/nm-utils/nm-enum-utils.c \
|
||||||
|
shared/nm-utils/nm-hash-utils.c \
|
||||||
|
shared/nm-utils/nm-io-utils.c \
|
||||||
|
shared/nm-utils/nm-random-utils.c \
|
||||||
|
shared/nm-utils/nm-secret-utils.c \
|
||||||
|
shared/nm-utils/nm-shared-utils.c \
|
||||||
|
shared/nm-utils/nm-time-utils.c \
|
||||||
|
shared/nm-utils/tests/test-shared-general.c \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
shared_nm_utils_tests_test_shared_general_LDADD = \
|
||||||
|
$(GLIB_LIBS) \
|
||||||
|
shared/libcsiphash.la \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
noinst_LTLIBRARIES += \
|
noinst_LTLIBRARIES += \
|
||||||
introspection/libnmdbus.la
|
introspection/libnmdbus.la
|
||||||
|
|
||||||
|
|
|
@ -117,3 +117,31 @@ shared_dep = declare_dependency(
|
||||||
],
|
],
|
||||||
dependencies: glib_dep,
|
dependencies: glib_dep,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
test_shared_general = executable(
|
||||||
|
'nm-utils/tests/test-shared-general',
|
||||||
|
[ 'nm-utils/tests/test-shared-general.c',
|
||||||
|
'nm-utils/c-list-util.c',
|
||||||
|
'nm-utils/nm-dedup-multi.c',
|
||||||
|
'nm-utils/nm-enum-utils.c',
|
||||||
|
'nm-utils/nm-hash-utils.c',
|
||||||
|
'nm-utils/nm-io-utils.c',
|
||||||
|
'nm-utils/nm-random-utils.c',
|
||||||
|
'nm-utils/nm-secret-utils.c',
|
||||||
|
'nm-utils/nm-shared-utils.c',
|
||||||
|
'nm-utils/nm-time-utils.c',
|
||||||
|
],
|
||||||
|
c_args: [
|
||||||
|
'-DNETWORKMANAGER_COMPILATION_TEST',
|
||||||
|
'-DNETWORKMANAGER_COMPILATION=(NM_NETWORKMANAGER_COMPILATION_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG)',
|
||||||
|
],
|
||||||
|
dependencies: shared_dep,
|
||||||
|
link_with: shared_c_siphash,
|
||||||
|
)
|
||||||
|
test(
|
||||||
|
'shared/nm-utils/test-shared-general',
|
||||||
|
test_script,
|
||||||
|
args: test_args + [test_shared_general.full_path()]
|
||||||
|
)
|
||||||
|
|
|
@ -110,7 +110,9 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#ifndef NM_TEST_UTILS_NO_LIBNM
|
||||||
#include "nm-utils.h"
|
#include "nm-utils.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
@ -1089,6 +1091,8 @@ __define_nmtst_static(02, 1024)
|
||||||
__define_nmtst_static(03, 1024)
|
__define_nmtst_static(03, 1024)
|
||||||
#undef __define_nmtst_static
|
#undef __define_nmtst_static
|
||||||
|
|
||||||
|
#if defined (__NM_UTILS_H__) || defined (NM_UTILS_H)
|
||||||
|
|
||||||
#define NMTST_UUID_INIT(uuid) \
|
#define NMTST_UUID_INIT(uuid) \
|
||||||
gs_free char *_nmtst_hidden_##uuid = nm_utils_uuid_generate (); \
|
gs_free char *_nmtst_hidden_##uuid = nm_utils_uuid_generate (); \
|
||||||
const char *const uuid = _nmtst_hidden_##uuid
|
const char *const uuid = _nmtst_hidden_##uuid
|
||||||
|
@ -1105,6 +1109,8 @@ nmtst_uuid_generate (void)
|
||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#define NMTST_SWAP(x,y) \
|
#define NMTST_SWAP(x,y) \
|
||||||
G_STMT_START { \
|
G_STMT_START { \
|
||||||
char __nmtst_swap_temp[sizeof(x) == sizeof(y) ? (signed) sizeof(x) : -1]; \
|
char __nmtst_swap_temp[sizeof(x) == sizeof(y) ? (signed) sizeof(x) : -1]; \
|
||||||
|
|
76
shared/nm-utils/tests/test-shared-general.c
Normal file
76
shared/nm-utils/tests/test-shared-general.c
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
/*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Copyright 2018 Red Hat, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define NM_TEST_UTILS_NO_LIBNM 1
|
||||||
|
|
||||||
|
#include "nm-default.h"
|
||||||
|
|
||||||
|
#include "nm-utils/nm-time-utils.h"
|
||||||
|
#include "nm-utils/nm-random-utils.h"
|
||||||
|
|
||||||
|
#include "nm-utils/nm-test-utils.h"
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static int _monotonic_timestamp_initialized;
|
||||||
|
|
||||||
|
void
|
||||||
|
_nm_utils_monotonic_timestamp_initialized (const struct timespec *tp,
|
||||||
|
gint64 offset_sec,
|
||||||
|
gboolean is_boottime)
|
||||||
|
{
|
||||||
|
g_assert (!_monotonic_timestamp_initialized);
|
||||||
|
_monotonic_timestamp_initialized = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_monotonic_timestamp (void)
|
||||||
|
{
|
||||||
|
g_assert (nm_utils_get_monotonic_timestamp_s () > 0);
|
||||||
|
g_assert (_monotonic_timestamp_initialized);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_nmhash (void)
|
||||||
|
{
|
||||||
|
int rnd;
|
||||||
|
|
||||||
|
nm_utils_random_bytes (&rnd, sizeof (rnd));
|
||||||
|
|
||||||
|
g_assert (nm_hash_val (555, 4) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
NMTST_DEFINE ();
|
||||||
|
|
||||||
|
int main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
nmtst_init (&argc, &argv, TRUE);
|
||||||
|
|
||||||
|
g_test_add_func ("/general/test_monotonic_timestamp", test_monotonic_timestamp);
|
||||||
|
g_test_add_func ("/general/test_nmhash", test_nmhash);
|
||||||
|
|
||||||
|
return g_test_run ();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue