2006-05-09 15:35:46 +00:00
|
|
|
## Process this file with automake to produce Makefile.in
|
|
|
|
|
2019-03-22 22:23:09 +00:00
|
|
|
## Copyright (C) 2005-2019 Red Hat, Inc.
|
2013-05-14 23:42:12 +00:00
|
|
|
##
|
|
|
|
## 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.1 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, see
|
|
|
|
## <http://www.gnu.org/licenses/>.
|
2011-07-28 18:56:24 +00:00
|
|
|
|
2008-03-24 10:19:36 +00:00
|
|
|
SHELL = $(PREFERABLY_POSIX_SHELL)
|
|
|
|
|
2019-01-04 19:47:44 +00:00
|
|
|
AM_CPPFLAGS = \
|
2012-04-10 12:03:46 +00:00
|
|
|
-I$(top_builddir) -I$(top_srcdir) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \
|
|
|
|
-I$(top_builddir)/include -I$(top_srcdir)/include \
|
|
|
|
-I$(top_builddir)/src -I$(top_srcdir)/src \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
-I$(top_srcdir)/src/util \
|
2011-07-28 12:55:21 +00:00
|
|
|
-I$(top_srcdir)/src/conf \
|
2019-10-16 12:41:49 +00:00
|
|
|
-I$(top_builddir)/src/rpc \
|
2019-01-04 19:42:52 +00:00
|
|
|
$(NULL)
|
build: consistently use CFLAGS
According to the automake manual, CPPFLAGS (aka INCLUDES, as spelled
in automake 1.9.6) should only include -I, -D, and -U directives; more
generic directives like -Wall belong in CFLAGS since they affect more
phases of the build process. Therefore, we should be sticking CFLAGS
additions into a CFLAGS container, not a CPPFLAGS container.
* src/Makefile.am (libvirt_driver_vmware_la_CFLAGS): Use AM_CFLAGS.
(INCLUDES): Move CFLAGS items...
(AM_CFLAGS): ...to their proper location.
* python/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
* tests/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
(commandtest_CFLAGS, commandhelper_CFLAGS)
(virnetmessagetest_CFLAGS, virnetsockettest_CFLAGS): Use AM_CFLAGS.
2011-05-31 22:15:28 +00:00
|
|
|
|
2016-06-29 13:19:18 +00:00
|
|
|
WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
|
|
|
|
|
build: consistently use CFLAGS
According to the automake manual, CPPFLAGS (aka INCLUDES, as spelled
in automake 1.9.6) should only include -I, -D, and -U directives; more
generic directives like -Wall belong in CFLAGS since they affect more
phases of the build process. Therefore, we should be sticking CFLAGS
additions into a CFLAGS container, not a CPPFLAGS container.
* src/Makefile.am (libvirt_driver_vmware_la_CFLAGS): Use AM_CFLAGS.
(INCLUDES): Move CFLAGS items...
(AM_CFLAGS): ...to their proper location.
* python/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
* tests/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
(commandtest_CFLAGS, commandhelper_CFLAGS)
(virnetmessagetest_CFLAGS, virnetsockettest_CFLAGS): Use AM_CFLAGS.
2011-05-31 22:15:28 +00:00
|
|
|
AM_CFLAGS = \
|
2014-03-19 13:44:24 +00:00
|
|
|
-Dabs_builddir="\"$(abs_builddir)\"" \
|
2019-03-12 14:11:47 +00:00
|
|
|
-Dabs_top_builddir="\"$(abs_top_builddir)\"" \
|
2014-03-19 13:44:24 +00:00
|
|
|
-Dabs_srcdir="\"$(abs_srcdir)\"" \
|
2019-03-12 14:11:47 +00:00
|
|
|
-Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
|
2007-09-19 17:42:40 +00:00
|
|
|
$(LIBXML_CFLAGS) \
|
build: link to glib library
Add the main glib.h to internal.h so that all common code can use it.
Historically glib allowed applications to register an alternative
memory allocator, so mixing g_malloc/g_free with malloc/free was not
safe.
This was feature was dropped in 2.46.0 with:
commit 3be6ed60aa58095691bd697344765e715a327fc1
Author: Alexander Larsson <alexl@redhat.com>
Date: Sat Jun 27 18:38:42 2015 +0200
Deprecate and drop support for memory vtables
Applications are still encourged to match g_malloc/g_free, but it is no
longer a mandatory requirement for correctness, just stylistic. This is
explicitly clarified in
commit 1f24b36607bf708f037396014b2cdbc08d67b275
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: Thu Sep 5 14:37:54 2019 +0100
gmem: clarify that g_malloc always uses the system allocator
Applications can still use custom allocators in general, but they must
do this by linking to a library that replaces the core malloc/free
implemenentation entirely, instead of via a glib specific call.
This means that libvirt does not need to be concerned about use of
g_malloc/g_free causing an ABI change in the public libary, and can
avoid memory copying when talking to external libraries.
This patch probes for glib, which provides the foundation layer with
a collection of data structures, helper APIs, and platform portability
logic.
Later patches will introduce linkage to gobject which provides the
object type system, built on glib, and gio which providing objects
for various interesting tasks, most notably including DBus client
and server support and portable sockets APIs, but much more too.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-08-29 15:12:24 +00:00
|
|
|
$(GLIB_CFLAGS) \
|
qemu: qemuMonitorQueryRxFilter - retrieve guest netdev rx-filter
This function can be called at any time to get the current status of a
guest's network device rx-filter. In particular it is useful to call
after libvirt recieves a NIC_RX_FILTER_CHANGED event - this event only
tells you that something has changed in the rx-filter, the details are
retrieved with the query-rx-filter monitor command (only available in
the json monitor). The command sent to the qemu monitor looks like this:
{"execute":"query-rx-filter", "arguments": {"name":"net2"} }'
and the results will look something like this:
{
"return": [
{
"promiscuous": false,
"name": "net2",
"main-mac": "52:54:00:98:2d:e3",
"unicast": "normal",
"vlan": "normal",
"vlan-table": [
42,
0
],
"unicast-table": [
],
"multicast": "normal",
"multicast-overflow": false,
"unicast-overflow": false,
"multicast-table": [
"33:33:ff:98:2d:e3",
"01:80:c2:00:00:21",
"01:00:5e:00:00:fb",
"33:33:ff:98:2d:e2",
"01:00:5e:00:00:01",
"33:33:00:00:00:01"
],
"broadcast-allowed": false
}
],
"id": "libvirt-14"
}
This is all parsed from JSON into a virNetDevRxFilter object for
easier consumption. (unicast-table is usually empty, but is also an
array of mac addresses similar to multicast-table).
(NB: LIBNL_CFLAGS was added to tests/Makefile.am because virnetdev.h
now includes util/virnetlink.h, which includes netlink/msg.h when
appropriate. Without LIBNL_CFLAGS, gcc can't find that file (if
libnl/netlink isn't available, LIBNL_CFLAGS will be empty and
virnetlink.h won't try to include netlink/msg.h anyway).)
2014-09-22 16:19:41 +00:00
|
|
|
$(LIBNL_CFLAGS) \
|
2007-09-19 17:42:40 +00:00
|
|
|
$(GNUTLS_CFLAGS) \
|
2007-12-05 15:24:15 +00:00
|
|
|
$(SASL_CFLAGS) \
|
2008-02-20 15:38:29 +00:00
|
|
|
$(SELINUX_CFLAGS) \
|
2009-10-08 14:34:22 +00:00
|
|
|
$(APPARMOR_CFLAGS) \
|
2018-08-13 11:40:18 +00:00
|
|
|
$(YAJL_CFLAGS) \
|
2019-08-02 11:05:37 +00:00
|
|
|
$(COVERAGE_CFLAGS) \
|
2017-11-16 13:24:45 +00:00
|
|
|
$(XDR_CFLAGS) \
|
build: consistently use CFLAGS
According to the automake manual, CPPFLAGS (aka INCLUDES, as spelled
in automake 1.9.6) should only include -I, -D, and -U directives; more
generic directives like -Wall belong in CFLAGS since they affect more
phases of the build process. Therefore, we should be sticking CFLAGS
additions into a CFLAGS container, not a CPPFLAGS container.
* src/Makefile.am (libvirt_driver_vmware_la_CFLAGS): Use AM_CFLAGS.
(INCLUDES): Move CFLAGS items...
(AM_CFLAGS): ...to their proper location.
* python/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
* tests/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
(commandtest_CFLAGS, commandhelper_CFLAGS)
(virnetmessagetest_CFLAGS, virnetsockettest_CFLAGS): Use AM_CFLAGS.
2011-05-31 22:15:28 +00:00
|
|
|
$(WARN_CFLAGS)
|
2007-02-14 02:12:41 +00:00
|
|
|
|
2014-04-10 15:18:35 +00:00
|
|
|
AM_LDFLAGS = \
|
|
|
|
-export-dynamic
|
|
|
|
|
2019-08-21 16:13:17 +00:00
|
|
|
MOCKLIBS_LDFLAGS = -avoid-version \
|
2015-04-27 13:31:32 +00:00
|
|
|
-rpath /evil/libtool/hack/to/force/shared/lib/creation \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS)
|
|
|
|
|
2019-02-08 18:28:39 +00:00
|
|
|
DRIVERLIB_LDFLAGS = \
|
2016-04-26 12:58:56 +00:00
|
|
|
-avoid-version \
|
|
|
|
-rpath /evil/libtool/hack/to/force/shared/lib/creation \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS)
|
2019-08-21 16:13:23 +00:00
|
|
|
if WITH_MACOS
|
|
|
|
DRIVERLIB_LDFLAGS += -Wl,-flat_namespace
|
|
|
|
endif WITH_MACOS
|
2016-04-26 12:58:56 +00:00
|
|
|
|
build: fix 'make check' linkage with dtrace
Building on Linux with dtrace enabled was failing 'make check':
CCLD nodeinfotest
../src/.libs/libvirt_test.a(libvirt_net_rpc_client_la-virnetclient.o): In function `virNetClientNew':
/home/remote/eblake/libvirt/src/rpc/virnetclient.c:162: undefined reference to `libvirt_rpc_client_new_semaphore'
On looking further, I see some earlier warnings emitted from libtool:
*** Warning: Linking the shared library libvirt.la against the non-libtool
*** objects probes.o is not portable!
Since src/probes.o is only built on Linux, and even then, only when
dtrace is enabled, this failure does not affect other platforms, and
despite libtool warning that it is not generally portable, it is not
a problem for our use-case in libvirt.la. But it turns out that while
libtool is willing to jam raw .o files into an installed shared
library (libvirt.la becomes libvirt.so), it is NOT willing to jam
the same .o file into the convenience library libvirt_test.la.
Perhaps this is a bug in libtool, but even if we get libtool fixed,
libvirt must continue to build on platforms with older libtool. So,
the fix is the same as we are already using for the libvirt_lxc
executable - don't rely on the .o file being in the convenience
library, but instead use LDADD to pull it in directly.
* tests/Makefile.am (PROBES_O): New macro.
(LDADDS): Use it to fix link errors.
2011-10-11 19:18:37 +00:00
|
|
|
PROBES_O =
|
2012-02-24 15:10:53 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
2012-05-25 15:57:56 +00:00
|
|
|
PROBES_O += ../src/libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
build: fix 'make check' linkage with dtrace
Building on Linux with dtrace enabled was failing 'make check':
CCLD nodeinfotest
../src/.libs/libvirt_test.a(libvirt_net_rpc_client_la-virnetclient.o): In function `virNetClientNew':
/home/remote/eblake/libvirt/src/rpc/virnetclient.c:162: undefined reference to `libvirt_rpc_client_new_semaphore'
On looking further, I see some earlier warnings emitted from libtool:
*** Warning: Linking the shared library libvirt.la against the non-libtool
*** objects probes.o is not portable!
Since src/probes.o is only built on Linux, and even then, only when
dtrace is enabled, this failure does not affect other platforms, and
despite libtool warning that it is not generally portable, it is not
a problem for our use-case in libvirt.la. But it turns out that while
libtool is willing to jam raw .o files into an installed shared
library (libvirt.la becomes libvirt.so), it is NOT willing to jam
the same .o file into the convenience library libvirt_test.la.
Perhaps this is a bug in libtool, but even if we get libtool fixed,
libvirt must continue to build on platforms with older libtool. So,
the fix is the same as we are already using for the libvirt_lxc
executable - don't rely on the .o file being in the convenience
library, but instead use LDADD to pull it in directly.
* tests/Makefile.am (PROBES_O): New macro.
(LDADDS): Use it to fix link errors.
2011-10-11 19:18:37 +00:00
|
|
|
|
2013-10-23 15:55:02 +00:00
|
|
|
GNULIB_LIBS = \
|
|
|
|
../gnulib/lib/libgnu.la
|
|
|
|
|
2006-05-09 15:35:46 +00:00
|
|
|
LDADDS = \
|
2013-08-13 11:49:05 +00:00
|
|
|
$(NO_INDIRECT_LDFLAGS) \
|
build: fix 'make check' linkage with dtrace
Building on Linux with dtrace enabled was failing 'make check':
CCLD nodeinfotest
../src/.libs/libvirt_test.a(libvirt_net_rpc_client_la-virnetclient.o): In function `virNetClientNew':
/home/remote/eblake/libvirt/src/rpc/virnetclient.c:162: undefined reference to `libvirt_rpc_client_new_semaphore'
On looking further, I see some earlier warnings emitted from libtool:
*** Warning: Linking the shared library libvirt.la against the non-libtool
*** objects probes.o is not portable!
Since src/probes.o is only built on Linux, and even then, only when
dtrace is enabled, this failure does not affect other platforms, and
despite libtool warning that it is not generally portable, it is not
a problem for our use-case in libvirt.la. But it turns out that while
libtool is willing to jam raw .o files into an installed shared
library (libvirt.la becomes libvirt.so), it is NOT willing to jam
the same .o file into the convenience library libvirt_test.la.
Perhaps this is a bug in libtool, but even if we get libtool fixed,
libvirt must continue to build on platforms with older libtool. So,
the fix is the same as we are already using for the libvirt_lxc
executable - don't rely on the .o file being in the convenience
library, but instead use LDADD to pull it in directly.
* tests/Makefile.am (PROBES_O): New macro.
(LDADDS): Use it to fix link errors.
2011-10-11 19:18:37 +00:00
|
|
|
$(PROBES_O) \
|
2013-10-23 15:55:02 +00:00
|
|
|
$(GNULIB_LIBS) \
|
build: link to glib library
Add the main glib.h to internal.h so that all common code can use it.
Historically glib allowed applications to register an alternative
memory allocator, so mixing g_malloc/g_free with malloc/free was not
safe.
This was feature was dropped in 2.46.0 with:
commit 3be6ed60aa58095691bd697344765e715a327fc1
Author: Alexander Larsson <alexl@redhat.com>
Date: Sat Jun 27 18:38:42 2015 +0200
Deprecate and drop support for memory vtables
Applications are still encourged to match g_malloc/g_free, but it is no
longer a mandatory requirement for correctness, just stylistic. This is
explicitly clarified in
commit 1f24b36607bf708f037396014b2cdbc08d67b275
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: Thu Sep 5 14:37:54 2019 +0100
gmem: clarify that g_malloc always uses the system allocator
Applications can still use custom allocators in general, but they must
do this by linking to a library that replaces the core malloc/free
implemenentation entirely, instead of via a glib specific call.
This means that libvirt does not need to be concerned about use of
g_malloc/g_free causing an ABI change in the public libary, and can
avoid memory copying when talking to external libraries.
This patch probes for glib, which provides the foundation layer with
a collection of data structures, helper APIs, and platform portability
logic.
Later patches will introduce linkage to gobject which provides the
object type system, built on glib, and gio which providing objects
for various interesting tasks, most notably including DBus client
and server support and portable sockets APIs, but much more too.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-08-29 15:12:24 +00:00
|
|
|
../src/libvirt.la \
|
|
|
|
$(GLIB_LIBS) \
|
|
|
|
$(NULL)
|
2006-05-09 15:35:46 +00:00
|
|
|
|
2016-02-11 11:10:35 +00:00
|
|
|
MOCKLIBS_LIBS = \
|
2018-05-15 06:58:33 +00:00
|
|
|
$(GNULIB_LIBS) \
|
|
|
|
../src/libvirt.la
|
2016-02-11 11:10:35 +00:00
|
|
|
|
2017-11-03 12:09:47 +00:00
|
|
|
EXTRA_DIST = \
|
2015-06-17 16:11:25 +00:00
|
|
|
.valgrind.supp \
|
2014-03-26 16:53:49 +00:00
|
|
|
bhyvexml2argvdata \
|
2016-06-24 18:41:20 +00:00
|
|
|
bhyveargv2xmldata \
|
2014-04-06 07:44:37 +00:00
|
|
|
bhyvexml2xmloutdata \
|
2009-01-27 15:29:53 +00:00
|
|
|
capabilityschemadata \
|
2010-12-16 18:24:00 +00:00
|
|
|
commanddata \
|
|
|
|
cputestdata \
|
2019-10-22 12:36:41 +00:00
|
|
|
domaincapsdata \
|
2019-08-22 01:42:41 +00:00
|
|
|
domainbackupxml2xmlin \
|
2019-12-03 12:49:04 +00:00
|
|
|
domainbackupxml2xmlout \
|
2013-11-12 11:57:56 +00:00
|
|
|
domainconfdata \
|
2009-01-27 15:29:53 +00:00
|
|
|
domainschemadata \
|
2013-05-15 03:34:27 +00:00
|
|
|
fchostdata \
|
2016-01-08 23:15:33 +00:00
|
|
|
genericxml2xmlindata \
|
|
|
|
genericxml2xmloutdata \
|
2009-07-22 09:07:07 +00:00
|
|
|
interfaceschemadata \
|
2017-08-01 13:17:51 +00:00
|
|
|
libxlxml2domconfigdata \
|
2014-02-14 15:06:55 +00:00
|
|
|
lxcconf2xmldata \
|
2012-03-26 17:09:31 +00:00
|
|
|
lxcxml2xmldata \
|
2013-10-15 12:13:15 +00:00
|
|
|
lxcxml2xmloutdata \
|
2015-06-17 16:11:25 +00:00
|
|
|
networkxml2confdata \
|
|
|
|
networkxml2firewalldata \
|
2010-12-16 18:24:00 +00:00
|
|
|
networkxml2xmlin \
|
|
|
|
networkxml2xmlout \
|
2013-07-29 15:17:47 +00:00
|
|
|
networkxml2xmlupdatein \
|
|
|
|
networkxml2xmlupdateout \
|
2010-12-16 18:24:00 +00:00
|
|
|
nodedevschemadata \
|
2016-04-13 17:53:02 +00:00
|
|
|
virhostcpudata \
|
2016-02-15 13:02:05 +00:00
|
|
|
nssdata \
|
2014-04-25 16:46:02 +00:00
|
|
|
nwfilterxml2firewalldata \
|
2010-12-16 18:24:00 +00:00
|
|
|
nwfilterxml2xmlin \
|
|
|
|
nwfilterxml2xmlout \
|
2014-11-22 01:27:45 +00:00
|
|
|
qemuagentdata \
|
2018-03-23 08:06:40 +00:00
|
|
|
qemublocktestdata \
|
2013-09-19 11:44:41 +00:00
|
|
|
qemucapabilitiesdata \
|
2018-09-17 14:51:23 +00:00
|
|
|
qemucaps2xmloutdata \
|
2018-06-12 03:12:21 +00:00
|
|
|
qemudomaincheckpointxml2xmlin \
|
|
|
|
qemudomaincheckpointxml2xmlout \
|
2019-07-05 18:24:40 +00:00
|
|
|
qemudomainsnapshotxml2xmlin \
|
|
|
|
qemudomainsnapshotxml2xmlout \
|
2017-01-18 10:42:59 +00:00
|
|
|
qemuhotplugtestcpus \
|
2016-07-12 08:28:22 +00:00
|
|
|
qemuhotplugtestdevices \
|
|
|
|
qemuhotplugtestdomains \
|
2018-03-19 22:45:51 +00:00
|
|
|
qemumigparamsdata \
|
2013-07-22 11:07:23 +00:00
|
|
|
qemumonitorjsondata \
|
2010-12-16 18:24:00 +00:00
|
|
|
qemuxml2argvdata \
|
|
|
|
qemuxml2xmloutdata \
|
2018-03-13 14:41:53 +00:00
|
|
|
qemustatusxml2xmldata \
|
2017-03-23 13:06:57 +00:00
|
|
|
qemumemlockdata \
|
2019-02-19 16:35:43 +00:00
|
|
|
qemufirmwaredata \
|
2019-09-23 10:44:33 +00:00
|
|
|
qemuvhostuserdata \
|
2014-02-14 14:44:59 +00:00
|
|
|
secretxml2xmlin \
|
2014-03-11 10:05:56 +00:00
|
|
|
securityselinuxhelperdata \
|
2012-09-19 13:00:34 +00:00
|
|
|
securityselinuxlabeldata \
|
2019-02-07 17:29:15 +00:00
|
|
|
storagepoolcapsschemadata \
|
2013-05-16 13:37:14 +00:00
|
|
|
storagepoolschemadata \
|
2009-10-08 21:26:30 +00:00
|
|
|
storagepoolxml2xmlin \
|
2010-12-16 18:24:00 +00:00
|
|
|
storagepoolxml2xmlout \
|
2018-12-04 11:16:23 +00:00
|
|
|
storagepoolxml2argvdata \
|
2013-05-16 13:43:06 +00:00
|
|
|
storagevolschemadata \
|
2015-06-17 16:11:25 +00:00
|
|
|
storagevolxml2argvdata \
|
2009-10-09 18:17:21 +00:00
|
|
|
storagevolxml2xmlin \
|
2010-12-16 18:24:00 +00:00
|
|
|
storagevolxml2xmlout \
|
2012-12-14 15:08:25 +00:00
|
|
|
sysinfodata \
|
2017-11-03 12:09:47 +00:00
|
|
|
test-lib.sh \
|
2014-05-19 12:47:31 +00:00
|
|
|
vboxsnapshotxmldata \
|
2015-06-17 16:11:25 +00:00
|
|
|
vircaps2xmldata \
|
2015-03-18 11:13:41 +00:00
|
|
|
vircgroupdata \
|
2016-04-21 15:36:05 +00:00
|
|
|
virconfdata \
|
2013-11-27 15:19:49 +00:00
|
|
|
virfiledata \
|
2017-07-13 09:46:38 +00:00
|
|
|
virjsondata \
|
2016-11-25 06:30:30 +00:00
|
|
|
virmacmaptestdata \
|
2015-06-17 16:11:25 +00:00
|
|
|
virmock.h \
|
2019-04-03 11:01:27 +00:00
|
|
|
virmockstathelpers.c \
|
2015-06-17 11:29:14 +00:00
|
|
|
virnetdaemondata \
|
2015-04-15 08:09:52 +00:00
|
|
|
virnetdevtestdata \
|
2019-07-16 07:33:38 +00:00
|
|
|
virnetdevopenvswitchdata \
|
2018-08-31 14:21:34 +00:00
|
|
|
virnetworkportxml2xmldata \
|
2018-05-10 12:37:53 +00:00
|
|
|
virnwfilterbindingxml2xmldata \
|
2013-11-07 10:57:27 +00:00
|
|
|
virpcitestdata \
|
2014-01-30 07:06:37 +00:00
|
|
|
virscsidata \
|
2015-06-17 16:11:25 +00:00
|
|
|
virsh-uriprecedence \
|
2014-02-26 09:25:30 +00:00
|
|
|
virusbtestdata \
|
2015-06-17 16:11:25 +00:00
|
|
|
vmwareverdata \
|
2009-12-23 22:02:44 +00:00
|
|
|
vmx2xmldata \
|
2014-12-16 04:30:05 +00:00
|
|
|
xlconfigdata \
|
2015-06-17 16:11:25 +00:00
|
|
|
xmconfigdata \
|
2017-03-28 15:23:37 +00:00
|
|
|
xml2vmxdata \
|
|
|
|
virstorageutildata \
|
2017-07-27 09:56:20 +00:00
|
|
|
virfilecachedata \
|
2017-11-11 08:13:08 +00:00
|
|
|
virresctrldata \
|
2017-03-28 15:23:37 +00:00
|
|
|
$(NULL)
|
2006-05-09 15:35:46 +00:00
|
|
|
|
2016-07-07 14:39:00 +00:00
|
|
|
test_helpers = commandhelper ssh
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs = virshtest sockettest \
|
2016-04-13 17:53:02 +00:00
|
|
|
virhostcputest virbuftest \
|
2012-03-27 15:35:01 +00:00
|
|
|
commandtest seclabeltest \
|
2016-07-07 14:39:00 +00:00
|
|
|
virhashtest virconftest \
|
2013-09-27 23:09:20 +00:00
|
|
|
viratomictest \
|
2013-01-07 14:54:18 +00:00
|
|
|
utiltest shunloadtest \
|
2012-03-20 15:40:05 +00:00
|
|
|
virtimetest viruritest virkeyfiletest \
|
2014-04-08 14:44:40 +00:00
|
|
|
viralloctest \
|
2012-09-14 07:46:57 +00:00
|
|
|
virauthconfigtest \
|
2013-03-28 14:36:52 +00:00
|
|
|
virbitmaptest \
|
|
|
|
vircgrouptest \
|
2014-03-05 12:34:10 +00:00
|
|
|
vircryptotest \
|
2013-10-23 13:44:40 +00:00
|
|
|
virpcitest \
|
2013-03-28 14:36:52 +00:00
|
|
|
virendiantest \
|
2013-11-27 15:19:49 +00:00
|
|
|
virfiletest \
|
2017-04-12 13:58:29 +00:00
|
|
|
virfilecachetest \
|
2013-03-04 16:30:40 +00:00
|
|
|
virfirewalltest \
|
2014-02-21 09:59:10 +00:00
|
|
|
viriscsitest \
|
2013-04-05 16:49:27 +00:00
|
|
|
virkeycodetest \
|
Introduce an internal API for handling file based lockspaces
The previously introduced virFile{Lock,Unlock} APIs provide a
way to acquire/release fcntl() locks on individual files. For
unknown reason though, the POSIX spec says that fcntl() locks
are released when *any* file handle referring to the same path
is closed. In the following sequence
threadA: fd1 = open("foo")
threadB: fd2 = open("foo")
threadA: virFileLock(fd1)
threadB: virFileLock(fd2)
threadB: close(fd2)
you'd expect threadA to come out holding a lock on 'foo', and
indeed it does hold a lock for a very short time. Unfortunately
when threadB does close(fd2) this releases the lock associated
with fd1. For the current libvirt use case for virFileLock -
pidfiles - this doesn't matter since the lock is acquired
at startup while single threaded an never released until
exit.
To provide a more generally useful API though, it is necessary
to introduce a slightly higher level abstraction, which is to
be referred to as a "lockspace". This is to be provided by
a virLockSpacePtr object in src/util/virlockspace.{c,h}. The
core idea is that the lockspace keeps track of what files are
already open+locked. This means that when a 2nd thread comes
along and tries to acquire a lock, it doesn't end up opening
and closing a new FD. The lockspace just checks the current
list of held locks and immediately returns VIR_ERR_RESOURCE_BUSY.
NB, the API as it stands is designed on the basis that the
files being locked are not being otherwise opened and used
by the application code. One approach to using this API is to
acquire locks based on a hash of the filepath.
eg to lock /var/lib/libvirt/images/foo.img the application
might do
virLockSpacePtr lockspace = virLockSpaceNew("/var/lib/libvirt/imagelocks");
lockname = md5sum("/var/lib/libvirt/images/foo.img");
virLockSpaceAcquireLock(lockspace, lockname);
NB, in this example, the caller should ensure that the path
is canonicalized before calculating the checksum.
It is also possible to do locks directly on resources by
using a NULL lockspace directory and then using the file
path as the lock name eg
virLockSpacePtr lockspace = virLockSpaceNew(NULL);
virLockSpaceAcquireLock(lockspace, "/var/lib/libvirt/images/foo.img");
This is only safe to do though if no other part of the process
will be opening the files. This will be the case when this
code is used inside the soon-to-be-reposted virlockd daemon
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-08-02 16:02:40 +00:00
|
|
|
virlockspacetest \
|
2013-10-11 16:07:54 +00:00
|
|
|
virlogtest \
|
2015-11-06 14:25:48 +00:00
|
|
|
virrotatingfiletest \
|
2016-06-07 16:54:43 +00:00
|
|
|
virschematest \
|
2012-11-30 15:21:02 +00:00
|
|
|
virstringtest \
|
2014-02-20 14:13:57 +00:00
|
|
|
virportallocatortest \
|
2012-12-14 15:08:25 +00:00
|
|
|
sysinfotest \
|
2014-01-29 23:33:42 +00:00
|
|
|
virkmodtest \
|
2014-02-11 14:36:21 +00:00
|
|
|
vircapstest \
|
2014-06-25 11:24:53 +00:00
|
|
|
domaincapstest \
|
2013-11-12 11:57:56 +00:00
|
|
|
domainconftest \
|
2014-03-06 08:08:36 +00:00
|
|
|
virhostdevtest \
|
2014-06-11 13:05:00 +00:00
|
|
|
virnetdevtest \
|
2015-06-15 22:42:06 +00:00
|
|
|
virtypedparamtest \
|
2018-08-23 15:53:43 +00:00
|
|
|
vshtabletest \
|
2018-11-12 09:33:01 +00:00
|
|
|
virerrortest \
|
Introduce an internal API for handling file based lockspaces
The previously introduced virFile{Lock,Unlock} APIs provide a
way to acquire/release fcntl() locks on individual files. For
unknown reason though, the POSIX spec says that fcntl() locks
are released when *any* file handle referring to the same path
is closed. In the following sequence
threadA: fd1 = open("foo")
threadB: fd2 = open("foo")
threadA: virFileLock(fd1)
threadB: virFileLock(fd2)
threadB: close(fd2)
you'd expect threadA to come out holding a lock on 'foo', and
indeed it does hold a lock for a very short time. Unfortunately
when threadB does close(fd2) this releases the lock associated
with fd1. For the current libvirt use case for virFileLock -
pidfiles - this doesn't matter since the lock is acquired
at startup while single threaded an never released until
exit.
To provide a more generally useful API though, it is necessary
to introduce a slightly higher level abstraction, which is to
be referred to as a "lockspace". This is to be provided by
a virLockSpacePtr object in src/util/virlockspace.{c,h}. The
core idea is that the lockspace keeps track of what files are
already open+locked. This means that when a 2nd thread comes
along and tries to acquire a lock, it doesn't end up opening
and closing a new FD. The lockspace just checks the current
list of held locks and immediately returns VIR_ERR_RESOURCE_BUSY.
NB, the API as it stands is designed on the basis that the
files being locked are not being otherwise opened and used
by the application code. One approach to using this API is to
acquire locks based on a hash of the filepath.
eg to lock /var/lib/libvirt/images/foo.img the application
might do
virLockSpacePtr lockspace = virLockSpaceNew("/var/lib/libvirt/imagelocks");
lockname = md5sum("/var/lib/libvirt/images/foo.img");
virLockSpaceAcquireLock(lockspace, lockname);
NB, in this example, the caller should ensure that the path
is canonicalized before calculating the checksum.
It is also possible to do locks directly on resources by
using a NULL lockspace directory and then using the file
path as the lock name eg
virLockSpacePtr lockspace = virLockSpaceNew(NULL);
virLockSpaceAcquireLock(lockspace, "/var/lib/libvirt/images/foo.img");
This is only safe to do though if no other part of the process
will be opening the files. This will be the case when this
code is used inside the soon-to-be-reposted virlockd daemon
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-08-02 16:02:40 +00:00
|
|
|
$(NULL)
|
Prevent crash from dlclose() of libvirt.so
When libvirt calls virInitialize it creates a thread local
for the virErrorPtr storage, and registers a callback to
cleanup memory when a thread exits. When libvirt is dlclose()d
or otherwise made non-resident, the callback function is
removed from memory, but the thread local may still exist
and if a thread later exists, it will invoke the callback
and SEGV. There may also be other thread locals with callbacks
pointing to libvirt code, so it is in general never safe to
unload libvirt.so from memory once initialized.
To allow dlclose() to succeed, but keep libvirt.so resident
in memory, link with '-z nodelete'. This issue was first
found with the libvirt CIM provider, but can potentially
hit many of the dynamic language bindings which all ultimately
involve dlopen() in some way, either on libvirt.so itself,
or on the glue code for the binding which in turns links
to libvirt
* configure.ac, src/Makefile.am: Ensure libvirt.so is linked
with -z nodelete
* cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
tests/shunloadtest.c: A test case to unload libvirt while
a thread is still running.
2011-09-01 16:57:06 +00:00
|
|
|
|
2016-12-25 15:00:15 +00:00
|
|
|
test_libraries = libshunload.la \
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirportallocatormock.la \
|
|
|
|
libvirnetdaemonmock.la \
|
|
|
|
libvirnetserverclientmock.la \
|
|
|
|
libvircgroupmock.la \
|
|
|
|
libvirpcimock.la \
|
|
|
|
libvirnetdevmock.la \
|
|
|
|
libvirrandommock.la \
|
2019-08-29 19:19:00 +00:00
|
|
|
libvirprocessmock.la \
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirhostcpumock.la \
|
|
|
|
libdomaincapsmock.la \
|
|
|
|
libvirfilecachemock.la \
|
2019-10-18 18:36:32 +00:00
|
|
|
libqemuhotplugmock.la \
|
2016-12-25 15:00:15 +00:00
|
|
|
$(NULL)
|
|
|
|
|
2013-09-27 23:09:20 +00:00
|
|
|
if WITH_REMOTE
|
|
|
|
test_programs += \
|
|
|
|
virnetmessagetest \
|
|
|
|
virnetsockettest \
|
2015-06-11 12:02:30 +00:00
|
|
|
virnetdaemontest \
|
2013-09-27 23:09:20 +00:00
|
|
|
virnetserverclienttest \
|
2018-06-05 11:39:28 +00:00
|
|
|
virnettlscontexttest \
|
|
|
|
virnettlssessiontest \
|
2013-09-27 23:09:20 +00:00
|
|
|
$(NULL)
|
|
|
|
endif WITH_REMOTE
|
|
|
|
|
2013-09-27 14:47:12 +00:00
|
|
|
if WITH_LINUX
|
|
|
|
test_programs += fchosttest
|
2014-06-10 15:09:20 +00:00
|
|
|
test_programs += scsihosttest
|
2017-03-27 20:08:45 +00:00
|
|
|
test_programs += vircaps2xmltest
|
2017-11-11 08:13:08 +00:00
|
|
|
test_programs += virresctrltest
|
2019-08-21 16:13:16 +00:00
|
|
|
test_libraries += libvirusbmock.la \
|
|
|
|
libvirnetdevbandwidthmock.la \
|
|
|
|
libvirnumamock.la \
|
|
|
|
libvirtestmock.la \
|
|
|
|
libvirfilemock.la \
|
2016-12-25 15:00:15 +00:00
|
|
|
$(NULL)
|
2013-09-27 14:47:12 +00:00
|
|
|
endif WITH_LINUX
|
|
|
|
|
2013-09-03 21:55:21 +00:00
|
|
|
if WITH_LIBVIRTD
|
|
|
|
test_programs += fdstreamtest
|
|
|
|
endif WITH_LIBVIRTD
|
|
|
|
|
2013-07-12 10:13:04 +00:00
|
|
|
if WITH_DBUS
|
2013-07-18 09:54:21 +00:00
|
|
|
test_programs += virdbustest \
|
2014-09-10 13:52:48 +00:00
|
|
|
virsystemdtest \
|
|
|
|
$(NULL)
|
2019-08-21 16:13:16 +00:00
|
|
|
test_libraries += libvirdbusmock.la
|
2018-03-07 09:14:23 +00:00
|
|
|
if WITH_POLKIT
|
2014-09-10 13:52:48 +00:00
|
|
|
test_programs += virpolkittest
|
2018-03-07 09:14:23 +00:00
|
|
|
endif WITH_POLKIT
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DBUS
|
2013-07-12 10:13:04 +00:00
|
|
|
|
2012-08-10 13:31:14 +00:00
|
|
|
if WITH_SECDRIVER_SELINUX
|
2013-08-21 06:52:20 +00:00
|
|
|
if WITH_ATTR
|
2014-04-04 13:27:24 +00:00
|
|
|
test_programs += securityselinuxtest \
|
|
|
|
viridentitytest
|
2013-01-30 15:44:06 +00:00
|
|
|
if WITH_QEMU
|
2012-09-19 13:00:34 +00:00
|
|
|
test_programs += securityselinuxlabeltest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
|
|
|
endif WITH_ATTR
|
|
|
|
endif WITH_SECDRIVER_SELINUX
|
2012-08-10 13:31:14 +00:00
|
|
|
|
2010-12-06 17:03:35 +00:00
|
|
|
# This is a fake SSH we use from virnetsockettest
|
|
|
|
ssh_SOURCES = ssh.c
|
2019-08-02 11:05:37 +00:00
|
|
|
ssh_LDADD = $(COVERAGE_LDFLAGS)
|
2006-08-24 15:05:19 +00:00
|
|
|
|
2014-12-16 04:30:05 +00:00
|
|
|
if WITH_LIBXL
|
2019-07-03 06:36:09 +00:00
|
|
|
test_programs += xlconfigtest \
|
2016-12-30 21:43:43 +00:00
|
|
|
xmconfigtest libxlxml2domconfigtest
|
2019-02-08 18:28:39 +00:00
|
|
|
test_libraries += libxltestdriver.la libxlmock.la
|
2014-12-16 04:30:05 +00:00
|
|
|
endif WITH_LIBXL
|
|
|
|
|
2008-11-18 12:46:13 +00:00
|
|
|
if WITH_QEMU
|
2018-02-09 15:08:53 +00:00
|
|
|
test_programs += qemuxml2argvtest qemuxml2xmltest \
|
backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.
Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag. We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch). But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema. If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.
Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.
Signed-off-by: Eric Blake <eblake@redhat.com>
2018-07-08 02:01:14 +00:00
|
|
|
qemudomaincheckpointxml2xmltest qemudomainsnapshotxml2xmltest \
|
2018-05-22 12:00:38 +00:00
|
|
|
qemumonitorjsontest qemuhotplugtest \
|
2015-01-13 17:19:34 +00:00
|
|
|
qemuagenttest qemucapabilitiestest qemucaps2xmltest \
|
2017-03-23 13:06:57 +00:00
|
|
|
qemumemlocktest \
|
2017-11-03 14:20:55 +00:00
|
|
|
qemucommandutiltest \
|
|
|
|
qemublocktest \
|
2018-03-19 22:45:51 +00:00
|
|
|
qemumigparamstest \
|
2018-12-07 12:21:43 +00:00
|
|
|
qemusecuritytest \
|
2019-02-19 16:35:43 +00:00
|
|
|
qemufirmwaretest \
|
2019-09-23 10:44:33 +00:00
|
|
|
qemuvhostusertest \
|
2017-11-03 14:20:55 +00:00
|
|
|
$(NULL)
|
2016-04-26 13:04:55 +00:00
|
|
|
test_helpers += qemucapsprobe
|
2016-12-25 15:00:15 +00:00
|
|
|
test_libraries += libqemumonitortestutils.la \
|
|
|
|
libqemutestdriver.la \
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemuxml2argvmock.la \
|
|
|
|
libqemucaps2xmlmock.la \
|
|
|
|
libqemucapsprobemock.la \
|
|
|
|
libqemucpumock.la \
|
2016-12-25 15:00:15 +00:00
|
|
|
$(NULL)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
2008-11-18 12:46:13 +00:00
|
|
|
|
2012-03-26 17:09:31 +00:00
|
|
|
if WITH_LXC
|
2014-02-05 14:10:00 +00:00
|
|
|
test_programs += lxcxml2xmltest lxcconf2xmltest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LXC
|
2012-03-26 17:09:31 +00:00
|
|
|
|
2011-05-26 17:45:41 +00:00
|
|
|
if WITH_OPENVZ
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += openvzutilstest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_OPENVZ
|
2011-05-26 17:45:41 +00:00
|
|
|
|
2009-09-23 12:25:52 +00:00
|
|
|
if WITH_ESX
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += esxutilstest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_ESX
|
2010-12-21 21:39:55 +00:00
|
|
|
|
2014-05-19 12:47:31 +00:00
|
|
|
if WITH_VBOX
|
|
|
|
test_programs += vboxsnapshotxmltest
|
|
|
|
endif WITH_VBOX
|
|
|
|
|
2010-12-21 21:39:55 +00:00
|
|
|
if WITH_VMX
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += vmx2xmltest xml2vmxtest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_VMX
|
2009-09-23 12:25:52 +00:00
|
|
|
|
2013-09-18 14:30:35 +00:00
|
|
|
if WITH_VMWARE
|
|
|
|
test_programs += vmwarevertest
|
|
|
|
endif WITH_VMWARE
|
|
|
|
|
2014-03-26 16:53:49 +00:00
|
|
|
if WITH_BHYVE
|
2016-06-24 18:41:20 +00:00
|
|
|
test_programs += bhyvexml2argvtest bhyvexml2xmltest bhyveargv2xmltest
|
2019-08-21 16:13:16 +00:00
|
|
|
test_libraries += libbhyvexml2argvmock.la libbhyveargv2xmlmock.la
|
2014-03-26 16:53:49 +00:00
|
|
|
endif WITH_BHYVE
|
|
|
|
|
2018-08-13 11:40:18 +00:00
|
|
|
if WITH_YAJL
|
2017-06-26 14:47:26 +00:00
|
|
|
test_programs += virjsontest
|
2018-08-13 11:40:18 +00:00
|
|
|
endif WITH_YAJL
|
2011-06-30 14:08:29 +00:00
|
|
|
|
2014-03-20 10:30:44 +00:00
|
|
|
test_programs += \
|
|
|
|
networkxml2xmlupdatetest \
|
2018-08-31 14:21:34 +00:00
|
|
|
virnetworkportxml2xmltest \
|
2014-03-20 10:30:44 +00:00
|
|
|
$(NULL)
|
2009-10-09 12:47:43 +00:00
|
|
|
|
2011-07-05 13:26:18 +00:00
|
|
|
if WITH_NETWORK
|
2014-03-20 10:30:44 +00:00
|
|
|
test_programs += \
|
2019-07-14 22:25:12 +00:00
|
|
|
networkxml2xmltest \
|
2014-03-20 10:30:44 +00:00
|
|
|
networkxml2conftest \
|
|
|
|
networkxml2firewalltest \
|
|
|
|
$(NULL)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NETWORK
|
2011-06-24 10:04:37 +00:00
|
|
|
|
2012-07-18 19:06:58 +00:00
|
|
|
if WITH_STORAGE_SHEEPDOG
|
|
|
|
test_programs += storagebackendsheepdogtest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_SHEEPDOG
|
2012-07-18 19:06:58 +00:00
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += nwfilterxml2xmltest
|
2018-05-10 12:37:53 +00:00
|
|
|
test_programs += virnwfilterbindingxml2xmltest
|
2010-04-02 17:28:28 +00:00
|
|
|
|
2014-03-14 11:53:06 +00:00
|
|
|
if WITH_NWFILTER
|
|
|
|
test_programs += nwfilterebiptablestest
|
2014-04-01 06:19:38 +00:00
|
|
|
test_programs += nwfilterxml2firewalltest
|
2014-03-14 11:53:06 +00:00
|
|
|
endif WITH_NWFILTER
|
|
|
|
|
2013-04-15 16:01:02 +00:00
|
|
|
if WITH_STORAGE
|
2014-06-23 10:02:04 +00:00
|
|
|
test_programs += storagevolxml2argvtest
|
2018-12-04 11:16:23 +00:00
|
|
|
test_programs += storagepoolxml2argvtest
|
2017-03-28 15:23:37 +00:00
|
|
|
test_programs += virstorageutiltest
|
2019-01-30 14:29:37 +00:00
|
|
|
test_programs += storagepoolxml2xmltest
|
2019-02-07 17:07:16 +00:00
|
|
|
test_programs += storagepoolcapstest
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE
|
2013-02-18 12:43:28 +00:00
|
|
|
|
2014-06-23 10:02:04 +00:00
|
|
|
if WITH_STORAGE_FS
|
|
|
|
test_programs += virstoragetest
|
2014-06-23 11:56:12 +00:00
|
|
|
endif WITH_STORAGE_FS
|
2014-06-23 10:02:04 +00:00
|
|
|
|
2014-01-30 07:06:37 +00:00
|
|
|
if WITH_LINUX
|
|
|
|
test_programs += virscsitest
|
|
|
|
endif WITH_LINUX
|
|
|
|
|
2016-03-19 16:56:02 +00:00
|
|
|
if WITH_NSS
|
2016-11-29 12:48:53 +00:00
|
|
|
test_helpers += nsslinktest nssguestlinktest
|
|
|
|
test_programs += nsstest nssguesttest
|
2019-08-21 16:13:16 +00:00
|
|
|
test_libraries += libnssmock.la
|
2016-03-19 16:56:02 +00:00
|
|
|
endif WITH_NSS
|
|
|
|
|
2019-01-30 14:29:37 +00:00
|
|
|
test_programs += storagevolxml2xmltest
|
2009-10-08 21:26:30 +00:00
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += nodedevxml2xmltest
|
2009-02-24 14:58:32 +00:00
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += interfacexml2xmltest
|
2009-07-15 17:50:34 +00:00
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
test_programs += cputest
|
2010-10-07 14:35:17 +00:00
|
|
|
|
2013-09-09 17:22:19 +00:00
|
|
|
test_programs += metadatatest
|
|
|
|
|
2014-02-14 14:44:59 +00:00
|
|
|
test_programs += secretxml2xmltest
|
|
|
|
|
2016-01-08 23:15:33 +00:00
|
|
|
test_programs += genericxml2xmltest
|
|
|
|
|
2014-02-26 09:25:30 +00:00
|
|
|
if WITH_LINUX
|
2014-11-06 11:38:52 +00:00
|
|
|
test_programs += virusbtest \
|
|
|
|
virnetdevbandwidthtest \
|
|
|
|
$(NULL)
|
2014-02-26 09:25:30 +00:00
|
|
|
endif WITH_LINUX
|
|
|
|
|
2016-06-07 16:54:43 +00:00
|
|
|
test_scripts =
|
2017-11-03 12:09:47 +00:00
|
|
|
libvirtd_test_scripts = \
|
|
|
|
libvirtd-fail \
|
|
|
|
libvirtd-pool \
|
|
|
|
virsh-cpuset \
|
|
|
|
virsh-define-dev-segfault \
|
|
|
|
virsh-int-overflow \
|
|
|
|
virsh-optparse \
|
|
|
|
virsh-read-bufsiz \
|
|
|
|
virsh-read-non-seekable \
|
|
|
|
virsh-schedinfo \
|
|
|
|
virsh-self-test \
|
|
|
|
virt-admin-self-test \
|
2019-07-06 15:48:59 +00:00
|
|
|
virsh-checkpoint \
|
2019-03-22 22:23:09 +00:00
|
|
|
virsh-snapshot \
|
2017-11-03 12:09:47 +00:00
|
|
|
virsh-start \
|
|
|
|
virsh-undefine \
|
|
|
|
virsh-uriprecedence \
|
|
|
|
virsh-vcpupin \
|
2012-09-12 17:25:51 +00:00
|
|
|
$(NULL)
|
2012-03-27 15:35:01 +00:00
|
|
|
|
2016-04-21 15:24:21 +00:00
|
|
|
if WITH_LIBVIRTD
|
|
|
|
test_scripts += $(libvirtd_test_scripts)
|
|
|
|
|
2017-11-03 12:09:47 +00:00
|
|
|
test_programs += \
|
2017-07-28 09:54:37 +00:00
|
|
|
eventtest \
|
2019-10-09 19:11:44 +00:00
|
|
|
virdrivermoduletest \
|
|
|
|
virdriverconnvalidatetest
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LIBVIRTD
|
2016-04-21 15:24:21 +00:00
|
|
|
EXTRA_DIST += $(libvirtd_test_scripts)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LIBVIRTD
|
2007-12-11 21:20:13 +00:00
|
|
|
|
2013-11-25 16:43:46 +00:00
|
|
|
test_programs += objecteventtest
|
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
2017-07-28 09:49:38 +00:00
|
|
|
if WITH_LIBVIRTD
|
2009-10-08 14:34:22 +00:00
|
|
|
test_scripts += virt-aa-helper-test
|
2017-07-28 09:49:38 +00:00
|
|
|
endif WITH_LIBVIRTD
|
|
|
|
endif WITH_SECDRIVER_APPARMOR
|
2009-12-14 12:40:42 +00:00
|
|
|
EXTRA_DIST += virt-aa-helper-test
|
|
|
|
|
2007-11-14 10:35:58 +00:00
|
|
|
EXTRA_DIST += $(test_scripts)
|
|
|
|
|
2016-04-18 14:15:35 +00:00
|
|
|
if WITH_LINUX
|
|
|
|
check-access: file-access-clean
|
|
|
|
VIR_TEST_FILE_ACCESS=1 $(MAKE) $(AM_MAKEFLAGS) check
|
2019-12-04 13:58:04 +00:00
|
|
|
$(PERL) $(abs_srcdir)/check-file-access.pl \
|
|
|
|
$(abs_builddir)/test_file_access.txt \
|
|
|
|
$(abs_srcdir)/file_access_whitelist.txt | sort -u
|
2016-04-18 14:15:35 +00:00
|
|
|
|
|
|
|
file-access-clean:
|
|
|
|
> test_file_access.txt
|
|
|
|
endif WITH_LINUX
|
|
|
|
|
|
|
|
EXTRA_DIST += \
|
|
|
|
check-file-access.pl \
|
|
|
|
file_access_whitelist.txt
|
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
if WITH_TESTS
|
|
|
|
noinst_PROGRAMS = $(test_programs) $(test_helpers)
|
2012-08-20 13:06:21 +00:00
|
|
|
noinst_LTLIBRARIES = $(test_libraries)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_TESTS
|
2012-03-27 15:35:01 +00:00
|
|
|
check_PROGRAMS = $(test_programs) $(test_helpers)
|
2012-08-20 13:06:21 +00:00
|
|
|
check_LTLIBRARIES = $(test_libraries)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_TESTS
|
2011-06-24 10:04:37 +00:00
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
TESTS = $(test_programs) \
|
|
|
|
$(test_scripts)
|
2010-10-07 14:35:17 +00:00
|
|
|
|
build: add configure option to disable gnulib tests
The gnulib testsuite is relatively stable - the only times it is
likely to have a test change from pass to fail is on a gnulib
submodule update or a major system change (such as moving from
Fedora 18 to 19, or other large change to libc). While it is an
important test for end users on arbitrary machines (to make sure
that the portability glue works for their machine), it mostly
wastes time for development testing (as most developers aren't
making any of the major changes that would cause gnulib tests
to alter behavior). Thus, it pays to make the tests optional
at configure time, defaulting to off for development, on for
tarballs, with autobuilders requesting it to be on. It also
helps to allow a make-time override, via VIR_TEST_EXPENSIVE=[01]
(much the way automake sets up V=[01] for overriding the configure
time default of how verbose to be).
Automake has some pretty hard-coded magic with regards to the
TESTS variable; I had quite a job figuring out how to keep
'make distcheck' passing regardless of the configure option
setting in use, while still disabling the tests at runtime
when I did not configure them on and did not use the override
variable. Thankfully, we require GNU make, which lets me
hide some information from Automake's magic handling of TESTS.
* bootstrap.conf (bootstrap_epilogue): Munge gnulib test variable.
* configure.ac (--enable-expensive-tests): Add new enable switch.
(VIR_TEST_EXPENSIVE_DEFAULT, WITH_EXPENSIVE_TESTS): Set new
witnesses.
* gnulib/tests/Makefile.am (TESTS): Make tests conditional on
configure settings and the VIR_TEST_EXPENSIVE variable.
* tests/Makefile.am (TESTS_ENVIRONMENT): Expose VIR_TEST_EXPENSIVE
to all tests.
* autobuild.sh: Enable all tests during autobuilds.
* libvirt.spec.in (%configure): Likewise.
* mingw-libvirt.spec.in (%mingw_configure): Likewise.
* docs/hacking.html.in: Document the option.
* HACKING: Regenerate.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-07-31 13:18:58 +00:00
|
|
|
VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
|
2017-11-03 12:09:47 +00:00
|
|
|
TESTS_ENVIRONMENT = \
|
2019-03-12 15:31:20 +00:00
|
|
|
abs_top_builddir="$(abs_top_builddir)" \
|
|
|
|
abs_top_srcdir="$(abs_top_srcdir)" \
|
|
|
|
abs_builddir="$(abs_builddir)" \
|
|
|
|
abs_srcdir="$(abs_srcdir)" \
|
2017-11-03 12:09:47 +00:00
|
|
|
SHELL="$(SHELL)" \
|
|
|
|
LIBVIRT_AUTOSTART=0 \
|
|
|
|
LC_ALL=C \
|
|
|
|
VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
|
2007-11-12 14:00:32 +00:00
|
|
|
$(VG)
|
|
|
|
|
2012-03-27 15:35:01 +00:00
|
|
|
|
2017-02-03 12:15:43 +00:00
|
|
|
VALGRIND = valgrind --quiet --leak-check=full --trace-children=yes \
|
|
|
|
--trace-children-skip="*/tools/virsh","*/tests/commandhelper" \
|
2019-03-11 13:19:00 +00:00
|
|
|
--suppressions=$(abs_srcdir)/.valgrind.supp
|
2006-08-24 16:00:19 +00:00
|
|
|
valgrind:
|
2018-05-02 16:54:08 +00:00
|
|
|
$(MAKE) check VG="$(LIBTOOL) --mode=execute $(VALGRIND)"
|
2006-08-24 16:00:19 +00:00
|
|
|
|
2010-10-21 18:11:50 +00:00
|
|
|
sockettest_SOURCES = \
|
|
|
|
sockettest.c \
|
|
|
|
testutils.c testutils.h
|
2012-04-02 15:45:01 +00:00
|
|
|
sockettest_LDADD = $(LDADDS)
|
2010-10-21 18:11:50 +00:00
|
|
|
|
2015-01-20 23:45:09 +00:00
|
|
|
if WITH_LIBXL
|
2019-12-03 17:29:23 +00:00
|
|
|
libxl_LDADDS = \
|
|
|
|
../src/libvirt_driver_libxl_impl.la \
|
|
|
|
$(LDADDS) \
|
|
|
|
$(NULL)
|
2015-01-20 23:45:09 +00:00
|
|
|
|
2019-02-08 18:28:39 +00:00
|
|
|
libxltestdriver_la_SOURCES =
|
|
|
|
libxltestdriver_la_LDFLAGS = $(DRIVERLIB_LDFLAGS)
|
|
|
|
libxltestdriver_la_LIBADD = $(libxl_LDADDS)
|
|
|
|
|
2015-01-20 23:45:09 +00:00
|
|
|
xlconfigtest_SOURCES = \
|
|
|
|
xlconfigtest.c testutilsxen.c testutilsxen.h \
|
|
|
|
testutils.c testutils.h
|
|
|
|
xlconfigtest_LDADD =$(libxl_LDADDS)
|
2017-08-01 13:17:51 +00:00
|
|
|
|
2016-12-30 21:43:43 +00:00
|
|
|
xmconfigtest_SOURCES = \
|
|
|
|
xmconfigtest.c testutilsxen.c testutilsxen.h \
|
|
|
|
testutils.c testutils.h
|
|
|
|
xmconfigtest_LDADD = $(libxl_LDADDS)
|
|
|
|
|
2017-08-01 13:17:51 +00:00
|
|
|
libxlxml2domconfigtest_SOURCES = \
|
|
|
|
libxlxml2domconfigtest.c testutilsxen.c testutilsxen.h \
|
|
|
|
testutils.c testutils.h
|
|
|
|
libxlxml2domconfigtest_LDADD = $(libxl_LDADDS) $(LIBXML_LIBS)
|
|
|
|
|
2019-02-08 16:51:25 +00:00
|
|
|
libxlmock_la_SOURCES = \
|
|
|
|
libxlmock.c
|
build: link to glib library
Add the main glib.h to internal.h so that all common code can use it.
Historically glib allowed applications to register an alternative
memory allocator, so mixing g_malloc/g_free with malloc/free was not
safe.
This was feature was dropped in 2.46.0 with:
commit 3be6ed60aa58095691bd697344765e715a327fc1
Author: Alexander Larsson <alexl@redhat.com>
Date: Sat Jun 27 18:38:42 2015 +0200
Deprecate and drop support for memory vtables
Applications are still encourged to match g_malloc/g_free, but it is no
longer a mandatory requirement for correctness, just stylistic. This is
explicitly clarified in
commit 1f24b36607bf708f037396014b2cdbc08d67b275
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: Thu Sep 5 14:37:54 2019 +0100
gmem: clarify that g_malloc always uses the system allocator
Applications can still use custom allocators in general, but they must
do this by linking to a library that replaces the core malloc/free
implemenentation entirely, instead of via a glib specific call.
This means that libvirt does not need to be concerned about use of
g_malloc/g_free causing an ABI change in the public libary, and can
avoid memory copying when talking to external libraries.
This patch probes for glib, which provides the foundation layer with
a collection of data structures, helper APIs, and platform portability
logic.
Later patches will introduce linkage to gobject which provides the
object type system, built on glib, and gio which providing objects
for various interesting tasks, most notably including DBus client
and server support and portable sockets APIs, but much more too.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-08-29 15:12:24 +00:00
|
|
|
libxlmock_la_CFLAGS = $(LIBXL_CFLAGS) $(LIBXML_CFLAGS) $(GLIB_CFLAGS)
|
2019-02-08 16:51:25 +00:00
|
|
|
libxlmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libxlmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2017-08-01 13:17:51 +00:00
|
|
|
|
2015-01-20 23:45:09 +00:00
|
|
|
else ! WITH_LIBXL
|
2019-07-03 06:36:09 +00:00
|
|
|
EXTRA_DIST += xlconfigtest.c \
|
2016-12-30 21:43:43 +00:00
|
|
|
xmconfigtest.c libxlxml2domconfigtest.c
|
2015-01-20 23:45:09 +00:00
|
|
|
endif ! WITH_LIBXL
|
|
|
|
|
2012-08-20 13:06:21 +00:00
|
|
|
QEMUMONITORTESTUTILS_SOURCES = \
|
|
|
|
qemumonitortestutils.c \
|
|
|
|
qemumonitortestutils.h \
|
2018-03-22 18:05:26 +00:00
|
|
|
testutilsqemuschema.h testutilsqemuschema.c \
|
2012-08-20 13:06:21 +00:00
|
|
|
$(NULL)
|
|
|
|
|
2008-11-18 12:46:13 +00:00
|
|
|
if WITH_QEMU
|
2011-07-04 06:27:12 +00:00
|
|
|
|
2012-08-20 13:06:21 +00:00
|
|
|
libqemumonitortestutils_la_SOURCES = $(QEMUMONITORTESTUTILS_SOURCES)
|
|
|
|
|
2012-08-02 12:10:31 +00:00
|
|
|
qemu_LDADDS = ../src/libvirt_driver_qemu_impl.la
|
2012-04-02 17:24:29 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
2012-05-25 15:57:56 +00:00
|
|
|
qemu_LDADDS += ../src/libvirt_qemu_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2019-06-11 15:16:57 +00:00
|
|
|
qemu_LDADDS += $(LDADDS)
|
2011-07-04 06:27:12 +00:00
|
|
|
|
2016-04-26 12:58:56 +00:00
|
|
|
libqemutestdriver_la_SOURCES =
|
2019-02-08 18:28:39 +00:00
|
|
|
libqemutestdriver_la_LDFLAGS = $(DRIVERLIB_LDFLAGS)
|
2019-06-11 15:16:57 +00:00
|
|
|
libqemutestdriver_la_LIBADD = $(qemu_LDADDS)
|
2016-04-26 12:58:56 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemucpumock_la_SOURCES = \
|
2017-07-26 15:34:03 +00:00
|
|
|
qemucpumock.c testutilshostcpus.h
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemucpumock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libqemucpumock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2017-03-08 12:32:46 +00:00
|
|
|
|
2019-10-18 18:36:32 +00:00
|
|
|
libqemuhotplugmock_la_SOURCES = \
|
|
|
|
qemuhotplugmock.c
|
|
|
|
libqemuhotplugmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libqemuhotplugmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
|
|
|
|
2007-07-18 21:34:22 +00:00
|
|
|
qemuxml2argvtest_SOURCES = \
|
2008-05-16 16:51:30 +00:00
|
|
|
qemuxml2argvtest.c testutilsqemu.c testutilsqemu.h \
|
2019-02-25 13:15:28 +00:00
|
|
|
testutils.c testutils.h \
|
|
|
|
virfilewrapper.c virfilewrapper.h \
|
|
|
|
$(NULL)
|
2018-01-25 09:35:50 +00:00
|
|
|
qemuxml2argvtest_LDADD = libqemutestdriver.la \
|
|
|
|
$(LDADDS) $(LIBXML_LIBS)
|
2007-07-18 21:34:22 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemuxml2argvmock_la_SOURCES = \
|
2014-02-05 14:18:46 +00:00
|
|
|
qemuxml2argvmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemuxml2argvmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libqemuxml2argvmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2014-02-05 14:18:46 +00:00
|
|
|
|
2007-07-18 21:34:22 +00:00
|
|
|
qemuxml2xmltest_SOURCES = \
|
2008-05-16 16:51:30 +00:00
|
|
|
qemuxml2xmltest.c testutilsqemu.c testutilsqemu.h \
|
2019-08-12 15:06:22 +00:00
|
|
|
testutils.c testutils.h \
|
|
|
|
virfilewrapper.c virfilewrapper.h
|
2019-06-11 15:16:57 +00:00
|
|
|
qemuxml2xmltest_LDADD = $(qemu_LDADDS)
|
2009-05-21 14:22:51 +00:00
|
|
|
|
2012-08-20 12:31:29 +00:00
|
|
|
qemumonitorjsontest_SOURCES = \
|
|
|
|
qemumonitorjsontest.c \
|
|
|
|
testutils.c testutils.h \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
$(NULL)
|
2014-07-03 12:09:55 +00:00
|
|
|
qemumonitorjsontest_LDADD = libqemumonitortestutils.la \
|
2019-06-11 15:16:57 +00:00
|
|
|
$(qemu_LDADDS)
|
2012-08-20 12:31:29 +00:00
|
|
|
|
2013-09-19 11:44:41 +00:00
|
|
|
qemucapabilitiestest_SOURCES = \
|
|
|
|
qemucapabilitiestest.c \
|
|
|
|
testutils.c testutils.h \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
$(NULL)
|
2014-07-03 12:09:55 +00:00
|
|
|
qemucapabilitiestest_LDADD = libqemumonitortestutils.la \
|
2019-06-11 15:16:57 +00:00
|
|
|
$(qemu_LDADDS)
|
2013-09-19 11:44:41 +00:00
|
|
|
|
2016-04-26 13:04:55 +00:00
|
|
|
qemucapsprobe_SOURCES = \
|
|
|
|
qemucapsprobe.c
|
|
|
|
qemucapsprobe_LDADD = \
|
|
|
|
libqemutestdriver.la $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemucapsprobemock_la_SOURCES = \
|
2016-04-26 13:04:55 +00:00
|
|
|
qemucapsprobemock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemucapsprobemock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libqemucapsprobemock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2016-04-26 13:04:55 +00:00
|
|
|
|
2015-01-13 17:19:34 +00:00
|
|
|
qemucommandutiltest_SOURCES = \
|
|
|
|
qemucommandutiltest.c \
|
|
|
|
testutils.c testutils.h \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
$(NULL)
|
|
|
|
qemucommandutiltest_LDADD = libqemumonitortestutils.la \
|
2019-06-11 15:16:57 +00:00
|
|
|
$(qemu_LDADDS)
|
2015-01-13 17:19:34 +00:00
|
|
|
|
2014-03-17 15:19:46 +00:00
|
|
|
qemucaps2xmltest_SOURCES = \
|
|
|
|
qemucaps2xmltest.c \
|
|
|
|
testutils.c testutils.h \
|
2019-03-06 17:21:31 +00:00
|
|
|
testutilsqemu.c testutilsqemu.h \
|
2014-03-17 15:19:46 +00:00
|
|
|
$(NULL)
|
2019-06-11 15:16:57 +00:00
|
|
|
qemucaps2xmltest_LDADD = $(qemu_LDADDS)
|
2014-03-17 15:19:46 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemucaps2xmlmock_la_SOURCES = \
|
2015-03-25 14:35:46 +00:00
|
|
|
qemucaps2xmlmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libqemucaps2xmlmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libqemucaps2xmlmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2015-03-25 14:35:46 +00:00
|
|
|
|
2013-07-24 08:15:37 +00:00
|
|
|
qemuagenttest_SOURCES = \
|
|
|
|
qemuagenttest.c \
|
|
|
|
testutils.c testutils.h \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
$(NULL)
|
2019-06-11 15:16:57 +00:00
|
|
|
qemuagenttest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS)
|
2013-07-24 08:15:37 +00:00
|
|
|
|
2013-06-21 14:27:59 +00:00
|
|
|
qemuhotplugtest_SOURCES = \
|
|
|
|
qemuhotplugtest.c \
|
|
|
|
testutils.c testutils.h \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
$(NULL)
|
2019-10-18 18:36:32 +00:00
|
|
|
qemuhotplugtest_LDADD = \
|
|
|
|
libqemutestdriver.la \
|
|
|
|
libqemumonitortestutils.la \
|
|
|
|
$(qemu_LDADDS) \
|
|
|
|
$(NULL)
|
2013-06-21 14:27:59 +00:00
|
|
|
|
2017-11-03 14:20:55 +00:00
|
|
|
qemublocktest_SOURCES = \
|
2018-03-23 07:16:09 +00:00
|
|
|
qemublocktest.c \
|
|
|
|
testutils.h testutils.c \
|
2018-03-23 08:06:40 +00:00
|
|
|
testutilsqemu.h testutilsqemu.c \
|
2018-03-23 07:16:09 +00:00
|
|
|
$(NULL)
|
|
|
|
qemublocktest_LDADD = \
|
2018-03-23 08:06:40 +00:00
|
|
|
libqemumonitortestutils.la \
|
2019-11-27 17:11:20 +00:00
|
|
|
../src/libvirt.la \
|
2017-11-03 14:20:55 +00:00
|
|
|
$(qemu_LDADDS) \
|
|
|
|
$(NULL)
|
|
|
|
|
backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.
Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag. We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch). But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema. If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.
Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.
Signed-off-by: Eric Blake <eblake@redhat.com>
2018-07-08 02:01:14 +00:00
|
|
|
qemudomaincheckpointxml2xmltest_SOURCES = \
|
|
|
|
qemudomaincheckpointxml2xmltest.c testutilsqemu.c testutilsqemu.h \
|
|
|
|
testutils.c testutils.h
|
|
|
|
qemudomaincheckpointxml2xmltest_LDADD = $(qemu_LDADDS)
|
|
|
|
|
2019-07-05 18:24:40 +00:00
|
|
|
qemudomainsnapshotxml2xmltest_SOURCES = \
|
|
|
|
qemudomainsnapshotxml2xmltest.c testutilsqemu.c testutilsqemu.h \
|
2011-09-22 20:29:00 +00:00
|
|
|
testutils.c testutils.h
|
2019-07-05 18:24:40 +00:00
|
|
|
qemudomainsnapshotxml2xmltest_LDADD = $(qemu_LDADDS)
|
2017-03-23 13:06:57 +00:00
|
|
|
|
|
|
|
qemumemlocktest_SOURCES = \
|
|
|
|
qemumemlocktest.c \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
testutils.c testutils.h
|
2019-06-11 15:16:57 +00:00
|
|
|
qemumemlocktest_LDADD = $(qemu_LDADDS)
|
2018-03-19 22:45:51 +00:00
|
|
|
|
|
|
|
qemumigparamstest_SOURCES = \
|
|
|
|
qemumigparamstest.c \
|
|
|
|
testutils.c testutils.h \
|
|
|
|
testutilsqemu.c testutilsqemu.h \
|
|
|
|
$(NULL)
|
|
|
|
qemumigparamstest_LDADD = libqemumonitortestutils.la \
|
2019-06-11 15:16:57 +00:00
|
|
|
$(qemu_LDADDS)
|
2018-03-19 22:45:51 +00:00
|
|
|
|
2018-12-07 12:21:43 +00:00
|
|
|
qemusecuritytest_SOURCES = \
|
|
|
|
qemusecuritytest.c qemusecuritytest.h \
|
|
|
|
qemusecuritymock.c \
|
|
|
|
testutils.h testutils.c \
|
|
|
|
testutilsqemu.h testutilsqemu.c
|
2019-06-11 15:16:57 +00:00
|
|
|
qemusecuritytest_LDADD = $(qemu_LDADDS)
|
2018-12-07 12:21:43 +00:00
|
|
|
|
2019-02-19 16:35:43 +00:00
|
|
|
qemufirmwaretest_SOURCES = \
|
|
|
|
qemufirmwaretest.c \
|
|
|
|
testutils.h testutils.c \
|
2019-02-21 14:24:00 +00:00
|
|
|
virfilewrapper.c virfilewrapper.h \
|
2019-02-19 16:35:43 +00:00
|
|
|
$(NULL)
|
2019-06-11 15:16:57 +00:00
|
|
|
qemufirmwaretest_LDADD = $(qemu_LDADDS)
|
2019-02-19 16:35:43 +00:00
|
|
|
|
2019-09-23 10:44:33 +00:00
|
|
|
qemuvhostusertest_SOURCES = \
|
|
|
|
qemuvhostusertest.c \
|
|
|
|
testutils.h testutils.c \
|
|
|
|
virfilewrapper.c virfilewrapper.h \
|
|
|
|
$(NULL)
|
|
|
|
qemuvhostusertest_LDADD = $(qemu_LDADDS)
|
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_QEMU
|
2019-06-14 13:03:04 +00:00
|
|
|
EXTRA_DIST += qemuxml2argvtest.c qemuxml2xmltest.c \
|
backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.
Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag. We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch). But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema. If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.
Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.
Signed-off-by: Eric Blake <eblake@redhat.com>
2018-07-08 02:01:14 +00:00
|
|
|
qemudomaincheckpointxml2xmltest.c qemudomainsnapshotxml2xmltest.c \
|
2018-05-22 12:00:38 +00:00
|
|
|
testutilsqemu.c testutilsqemu.h \
|
2018-03-22 16:07:43 +00:00
|
|
|
testutilsqemuschema.c testutilsqemuschema.h \
|
2013-06-21 14:27:59 +00:00
|
|
|
qemumonitorjsontest.c qemuhotplugtest.c \
|
2013-09-19 11:44:41 +00:00
|
|
|
qemuagenttest.c qemucapabilitiestest.c \
|
2015-01-13 17:19:34 +00:00
|
|
|
qemucaps2xmltest.c qemucommandutiltest.c \
|
2017-07-26 15:34:03 +00:00
|
|
|
qemumemlocktest.c qemucpumock.c testutilshostcpus.h \
|
2017-11-03 14:20:55 +00:00
|
|
|
qemublocktest.c \
|
2018-03-19 22:45:51 +00:00
|
|
|
qemumigparamstest.c \
|
2018-12-07 12:21:43 +00:00
|
|
|
qemusecuritytest.c qemusecuritytest.h \
|
|
|
|
qemusecuritymock.c \
|
2019-02-19 16:35:43 +00:00
|
|
|
qemufirmwaretest.c \
|
2019-09-23 10:44:33 +00:00
|
|
|
qemuvhostusertest.c \
|
2019-10-18 18:36:32 +00:00
|
|
|
qemuhotplugmock.c \
|
2012-08-20 13:06:21 +00:00
|
|
|
$(QEMUMONITORTESTUTILS_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_QEMU
|
2007-07-18 21:34:22 +00:00
|
|
|
|
2012-03-26 17:09:31 +00:00
|
|
|
if WITH_LXC
|
|
|
|
|
2019-12-03 17:29:23 +00:00
|
|
|
lxc_LDADDS = \
|
|
|
|
../src/libvirt_driver_lxc_impl.la \
|
|
|
|
$(LDADDS) \
|
|
|
|
$(NULL)
|
2012-03-26 17:09:31 +00:00
|
|
|
|
|
|
|
lxcxml2xmltest_SOURCES = \
|
|
|
|
lxcxml2xmltest.c testutilslxc.c testutilslxc.h \
|
|
|
|
testutils.c testutils.h
|
2012-04-02 15:45:01 +00:00
|
|
|
lxcxml2xmltest_LDADD = $(lxc_LDADDS)
|
2014-02-05 14:10:00 +00:00
|
|
|
|
|
|
|
lxcconf2xmltest_SOURCES = \
|
2015-11-29 02:55:32 +00:00
|
|
|
lxcconf2xmltest.c testutilslxc.c testutilslxc.h \
|
2014-02-05 14:10:00 +00:00
|
|
|
testutils.c testutils.h
|
|
|
|
lxcconf2xmltest_LDADD = $(lxc_LDADDS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LXC
|
2012-03-26 17:09:31 +00:00
|
|
|
EXTRA_DIST += lxcxml2xmltest.c testutilslxc.c testutilslxc.h
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LXC
|
2012-03-26 17:09:31 +00:00
|
|
|
|
2011-05-26 17:45:41 +00:00
|
|
|
if WITH_OPENVZ
|
|
|
|
openvzutilstest_SOURCES = \
|
|
|
|
openvzutilstest.c \
|
|
|
|
testutils.c testutils.h
|
2019-11-26 19:40:46 +00:00
|
|
|
openvzutilstest_LDADD = $(LDADDS) \
|
|
|
|
../src/libvirt_driver_openvz.la
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_OPENVZ
|
2011-05-26 17:45:41 +00:00
|
|
|
EXTRA_DIST += openvzutilstest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_OPENVZ
|
2011-05-26 17:45:41 +00:00
|
|
|
EXTRA_DIST += openvzutilstest.conf
|
|
|
|
|
2009-09-23 12:25:52 +00:00
|
|
|
if WITH_ESX
|
|
|
|
esxutilstest_SOURCES = \
|
|
|
|
esxutilstest.c \
|
|
|
|
testutils.c testutils.h
|
2012-04-02 15:45:01 +00:00
|
|
|
esxutilstest_LDADD = $(LDADDS)
|
2019-10-16 12:45:15 +00:00
|
|
|
esxutilstest_CFLAGS = \
|
|
|
|
-I$(top_builddir)/src/esx \
|
|
|
|
$(AM_CFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_ESX
|
2010-12-21 21:39:55 +00:00
|
|
|
EXTRA_DIST += esxutilstest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_ESX
|
2009-09-23 12:25:52 +00:00
|
|
|
|
2014-05-19 12:47:31 +00:00
|
|
|
if WITH_VBOX
|
|
|
|
vboxsnapshotxmltest_SOURCES = \
|
|
|
|
vboxsnapshotxmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
vbox_LDADDS = ../src/libvirt_driver_vbox_impl.la
|
|
|
|
vboxsnapshotxmltest_LDADD = $(LDADDS) $(vbox_LDADDS)
|
|
|
|
else ! WITH_VBOX
|
|
|
|
EXTRA_DIST += vboxsnapshotxmltest.c
|
|
|
|
endif ! WITH_VBOX
|
|
|
|
|
2010-12-21 21:39:55 +00:00
|
|
|
if WITH_VMX
|
2009-09-23 12:25:52 +00:00
|
|
|
vmx2xmltest_SOURCES = \
|
|
|
|
vmx2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
2012-04-02 15:45:01 +00:00
|
|
|
vmx2xmltest_LDADD = $(LDADDS)
|
2009-09-23 12:25:52 +00:00
|
|
|
|
|
|
|
xml2vmxtest_SOURCES = \
|
|
|
|
xml2vmxtest.c \
|
|
|
|
testutils.c testutils.h
|
2012-04-02 15:45:01 +00:00
|
|
|
xml2vmxtest_LDADD = $(LDADDS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_VMX
|
2010-12-21 21:39:55 +00:00
|
|
|
EXTRA_DIST += vmx2xmltest.c xml2vmxtest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_VMX
|
2009-09-23 12:25:52 +00:00
|
|
|
|
2013-09-18 14:30:35 +00:00
|
|
|
if WITH_VMWARE
|
|
|
|
vmwarevertest_SOURCES = \
|
|
|
|
vmwarevertest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
vmwarevertest_LDADD = $(LDADDS)
|
|
|
|
else ! WITH_VMWARE
|
|
|
|
EXTRA_DIST += vmwarevertest.c
|
|
|
|
endif ! WITH_VMWARE
|
|
|
|
|
2014-03-26 16:53:49 +00:00
|
|
|
if WITH_BHYVE
|
2019-08-21 16:13:16 +00:00
|
|
|
libbhyvexml2argvmock_la_SOURCES = \
|
2014-03-26 16:53:49 +00:00
|
|
|
bhyvexml2argvmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libbhyvexml2argvmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libbhyvexml2argvmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2014-03-26 16:53:49 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libbhyveargv2xmlmock_la_SOURCES = \
|
2016-06-24 18:41:20 +00:00
|
|
|
bhyveargv2xmlmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libbhyveargv2xmlmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libbhyveargv2xmlmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2016-06-24 18:41:20 +00:00
|
|
|
|
2019-12-03 17:29:23 +00:00
|
|
|
bhyve_LDADDS = \
|
|
|
|
../src/libvirt_driver_bhyve_impl.la \
|
|
|
|
$(LDADDS) \
|
|
|
|
$(NULL)
|
2014-03-26 16:53:49 +00:00
|
|
|
bhyvexml2argvtest_SOURCES = \
|
|
|
|
bhyvexml2argvtest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
bhyvexml2argvtest_LDADD = $(bhyve_LDADDS)
|
2014-04-06 07:44:37 +00:00
|
|
|
|
|
|
|
bhyvexml2xmltest_SOURCES = \
|
|
|
|
bhyvexml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
bhyvexml2xmltest_LDADD = $(bhyve_LDADDS)
|
2016-06-24 18:41:20 +00:00
|
|
|
|
|
|
|
bhyveargv2xmltest_SOURCES = \
|
|
|
|
bhyveargv2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
bhyveargv2xmltest_LDADD = $(bhyve_LDADDS)
|
2014-03-26 16:53:49 +00:00
|
|
|
else ! WITH_BHYVE
|
2016-06-24 18:41:20 +00:00
|
|
|
EXTRA_DIST += \
|
|
|
|
bhyvexml2argvtest.c \
|
|
|
|
bhyveargv2xmltest.c \
|
|
|
|
bhyvexml2xmltest.c \
|
|
|
|
bhyvexml2argvmock.c \
|
|
|
|
bhyveargv2xmlmock.c
|
2014-03-26 16:53:49 +00:00
|
|
|
endif ! WITH_BHYVE
|
|
|
|
|
2013-07-29 15:17:47 +00:00
|
|
|
networkxml2xmlupdatetest_SOURCES = \
|
|
|
|
networkxml2xmlupdatetest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
networkxml2xmlupdatetest_LDADD = $(LDADDS)
|
|
|
|
|
2018-08-31 14:21:34 +00:00
|
|
|
virnetworkportxml2xmltest_SOURCES = \
|
|
|
|
virnetworkportxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
virnetworkportxml2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2011-07-05 13:26:18 +00:00
|
|
|
if WITH_NETWORK
|
2019-07-14 22:25:12 +00:00
|
|
|
networkxml2xmltest_SOURCES = \
|
|
|
|
networkxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
networkxml2xmltest_LDADD = ../src/libvirt_driver_network_impl.la $(LDADDS)
|
|
|
|
|
2012-12-06 17:20:39 +00:00
|
|
|
networkxml2conftest_SOURCES = \
|
|
|
|
networkxml2conftest.c \
|
2011-06-24 10:04:37 +00:00
|
|
|
testutils.c testutils.h
|
2012-12-06 17:20:39 +00:00
|
|
|
networkxml2conftest_LDADD = ../src/libvirt_driver_network_impl.la $(LDADDS)
|
2014-03-20 10:30:44 +00:00
|
|
|
|
|
|
|
networkxml2firewalltest_SOURCES = \
|
|
|
|
networkxml2firewalltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
networkxml2firewalltest_LDADD = ../src/libvirt_driver_network_impl.la $(LDADDS)
|
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_NETWORK
|
2019-07-14 22:25:12 +00:00
|
|
|
EXTRA_DIST += networkxml2xmltest.c networkxml2conftest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_NETWORK
|
2011-06-24 10:04:37 +00:00
|
|
|
|
2012-07-18 19:06:58 +00:00
|
|
|
if WITH_STORAGE_SHEEPDOG
|
|
|
|
storagebackendsheepdogtest_SOURCES = \
|
|
|
|
storagebackendsheepdogtest.c \
|
|
|
|
testutils.c testutils.h
|
2012-08-21 12:50:28 +00:00
|
|
|
storagebackendsheepdogtest_LDADD = \
|
2017-02-07 18:40:29 +00:00
|
|
|
../src/libvirt_storage_backend_sheepdog_priv.la \
|
2018-02-26 17:54:12 +00:00
|
|
|
../src/libvirt_driver_storage_impl.la \
|
2017-02-07 18:40:29 +00:00
|
|
|
$(LDADDS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_STORAGE_SHEEPDOG
|
2012-07-18 19:06:58 +00:00
|
|
|
EXTRA_DIST += storagebackendsheepdogtest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_STORAGE_SHEEPDOG
|
2012-07-18 19:06:58 +00:00
|
|
|
|
2010-04-02 17:28:28 +00:00
|
|
|
nwfilterxml2xmltest_SOURCES = \
|
|
|
|
nwfilterxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
nwfilterxml2xmltest_LDADD = $(LDADDS)
|
2013-02-18 12:43:28 +00:00
|
|
|
|
2018-05-10 12:37:53 +00:00
|
|
|
virnwfilterbindingxml2xmltest_SOURCES = \
|
|
|
|
virnwfilterbindingxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
virnwfilterbindingxml2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2014-03-14 11:53:06 +00:00
|
|
|
if WITH_NWFILTER
|
|
|
|
nwfilterebiptablestest_SOURCES = \
|
|
|
|
nwfilterebiptablestest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
nwfilterebiptablestest_LDADD = ../src/libvirt_driver_nwfilter_impl.la $(LDADDS)
|
2014-04-01 06:19:38 +00:00
|
|
|
|
|
|
|
nwfilterxml2firewalltest_SOURCES = \
|
|
|
|
nwfilterxml2firewalltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
nwfilterxml2firewalltest_LDADD = \
|
|
|
|
../src/libvirt_driver_nwfilter_impl.la $(LDADDS)
|
2014-03-14 11:53:06 +00:00
|
|
|
endif WITH_NWFILTER
|
|
|
|
|
2014-02-14 14:44:59 +00:00
|
|
|
secretxml2xmltest_SOURCES = \
|
|
|
|
secretxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
secretxml2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2016-01-08 23:15:33 +00:00
|
|
|
genericxml2xmltest_SOURCES = \
|
|
|
|
genericxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
genericxml2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2014-02-14 14:44:59 +00:00
|
|
|
|
2013-04-15 16:01:02 +00:00
|
|
|
if WITH_STORAGE
|
2017-03-28 15:23:37 +00:00
|
|
|
virstorageutiltest_SOURCES = \
|
|
|
|
virstorageutiltest.c \
|
|
|
|
testutils.c \
|
|
|
|
testutils.h \
|
|
|
|
$(NULL)
|
|
|
|
virstorageutiltest_LDADD = \
|
|
|
|
../src/libvirt_driver_storage_impl.la \
|
|
|
|
$(LDADDS) \
|
|
|
|
$(NULL)
|
|
|
|
|
2013-02-18 12:43:28 +00:00
|
|
|
storagevolxml2argvtest_SOURCES = \
|
|
|
|
storagevolxml2argvtest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
storagevolxml2argvtest_LDADD = \
|
2014-04-07 07:57:11 +00:00
|
|
|
$(LIBXML_LIBS) \
|
2017-05-08 20:02:36 +00:00
|
|
|
../src/libvirt_driver_storage_impl.la \
|
2019-11-27 17:11:20 +00:00
|
|
|
../src/libvirt.la \
|
2017-05-08 20:02:36 +00:00
|
|
|
$(LDADDS)
|
2014-02-21 09:59:10 +00:00
|
|
|
|
2018-12-04 11:16:23 +00:00
|
|
|
storagepoolxml2argvtest_SOURCES = \
|
|
|
|
storagepoolxml2argvtest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
storagepoolxml2argvtest_LDADD = \
|
|
|
|
$(LIBXML_LIBS) \
|
|
|
|
../src/libvirt_driver_storage_impl.la \
|
2019-11-27 17:11:20 +00:00
|
|
|
../src/libvirt.la \
|
2018-12-04 11:16:23 +00:00
|
|
|
$(LDADDS)
|
|
|
|
|
2019-01-30 14:29:37 +00:00
|
|
|
storagepoolxml2xmltest_SOURCES = \
|
|
|
|
storagepoolxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
storagepoolxml2xmltest_LDADD = $(LDADDS) \
|
|
|
|
../src/libvirt_driver_storage_impl.la \
|
|
|
|
$(GNULIB_LIBS)
|
|
|
|
|
2019-02-07 17:07:16 +00:00
|
|
|
storagepoolcapstest_SOURCES = \
|
|
|
|
storagepoolcapstest.c testutils.h testutils.c
|
|
|
|
storagepoolcapstest_LDADD = $(LDADDS)
|
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_STORAGE
|
2013-04-15 16:01:02 +00:00
|
|
|
EXTRA_DIST += storagevolxml2argvtest.c
|
2017-03-28 15:23:37 +00:00
|
|
|
EXTRA_DIST += virstorageutiltest.c
|
2019-01-30 14:31:31 +00:00
|
|
|
EXTRA_DIST += storagepoolxml2argvtest.c
|
2019-01-30 14:29:37 +00:00
|
|
|
EXTRA_DIST += storagepoolxml2xmltest.c
|
2019-02-07 17:07:16 +00:00
|
|
|
EXTRA_DIST += storagepoolcapstest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_STORAGE
|
2010-04-02 17:28:28 +00:00
|
|
|
|
2009-10-09 18:17:21 +00:00
|
|
|
storagevolxml2xmltest_SOURCES = \
|
|
|
|
storagevolxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
storagevolxml2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2009-02-24 14:58:32 +00:00
|
|
|
nodedevxml2xmltest_SOURCES = \
|
|
|
|
nodedevxml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
2009-03-03 17:00:18 +00:00
|
|
|
nodedevxml2xmltest_LDADD = $(LDADDS)
|
2009-02-24 14:58:32 +00:00
|
|
|
|
2009-07-15 17:50:34 +00:00
|
|
|
interfacexml2xmltest_SOURCES = \
|
|
|
|
interfacexml2xmltest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
interfacexml2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2010-10-07 14:35:17 +00:00
|
|
|
cputest_SOURCES = \
|
|
|
|
cputest.c \
|
|
|
|
testutils.c testutils.h
|
2019-06-11 14:03:24 +00:00
|
|
|
cputest_LDADD = $(LIBXML_LIBS)
|
2016-06-01 13:57:00 +00:00
|
|
|
if WITH_QEMU
|
|
|
|
cputest_SOURCES += testutilsqemu.c testutilsqemu.h
|
2019-06-11 15:16:57 +00:00
|
|
|
cputest_LDADD += libqemumonitortestutils.la $(qemu_LDADDS)
|
2019-06-11 14:03:24 +00:00
|
|
|
else ! WITH_QEMU
|
|
|
|
cputest_LDADD += $(LDADDS)
|
|
|
|
endif ! WITH_QEMU
|
2010-10-07 14:35:17 +00:00
|
|
|
|
2013-09-09 17:22:19 +00:00
|
|
|
metadatatest_SOURCES = \
|
|
|
|
metadatatest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
metadatatest_LDADD = $(LDADDS) $(LIBXML_LIBS)
|
|
|
|
|
2018-11-12 09:33:01 +00:00
|
|
|
virerrortest_SOURCES = \
|
|
|
|
virerrortest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
virerrortest_LDADD = $(LDADDS)
|
|
|
|
|
2018-08-23 15:53:43 +00:00
|
|
|
vshtabletest_SOURCES = \
|
|
|
|
vshtabletest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
vshtabletest_LDADD = \
|
|
|
|
$(LDADDS) \
|
|
|
|
../tools/libvirt_shell.la
|
|
|
|
|
2006-08-24 21:46:28 +00:00
|
|
|
virshtest_SOURCES = \
|
|
|
|
virshtest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
virshtest_LDADD = $(LDADDS)
|
|
|
|
|
2016-04-21 15:36:05 +00:00
|
|
|
virconftest_SOURCES = \
|
2016-07-07 14:39:00 +00:00
|
|
|
virconftest.c testutils.h testutils.c
|
2016-04-21 15:36:05 +00:00
|
|
|
virconftest_LDADD = $(LDADDS)
|
2006-08-29 22:27:07 +00:00
|
|
|
|
2016-04-13 17:53:02 +00:00
|
|
|
virhostcputest_SOURCES = \
|
2017-05-10 15:15:05 +00:00
|
|
|
virhostcputest.c testutils.h testutils.c virfilewrapper.h virfilewrapper.c
|
2016-04-13 17:53:02 +00:00
|
|
|
virhostcputest_LDADD = $(LDADDS)
|
2007-07-25 23:16:30 +00:00
|
|
|
|
2010-05-25 11:14:06 +00:00
|
|
|
commandtest_SOURCES = \
|
|
|
|
commandtest.c testutils.h testutils.c
|
|
|
|
commandtest_LDADD = $(LDADDS)
|
|
|
|
|
2017-09-20 11:03:47 +00:00
|
|
|
# Must not link to any libvirt modules - libc / gnulib only
|
|
|
|
# otherwise external libraries might unexpectedly leak
|
|
|
|
# file descriptors into commandhelper invalidating the
|
|
|
|
# test logic assumptions
|
2010-05-25 11:14:06 +00:00
|
|
|
commandhelper_SOURCES = \
|
|
|
|
commandhelper.c
|
2014-05-02 07:55:52 +00:00
|
|
|
commandhelper_LDADD = \
|
|
|
|
$(NO_INDIRECT_LDFLAGS) \
|
|
|
|
$(GNULIB_LIBS)
|
|
|
|
|
2012-04-02 15:45:01 +00:00
|
|
|
commandhelper_LDFLAGS = -static
|
2010-05-25 11:14:06 +00:00
|
|
|
|
2014-01-23 08:17:05 +00:00
|
|
|
|
2014-01-29 23:33:42 +00:00
|
|
|
virkmodtest_SOURCES = \
|
|
|
|
virkmodtest.c testutils.h testutils.c
|
|
|
|
virkmodtest_LDADD = $(LDADDS)
|
|
|
|
|
2014-02-11 14:36:21 +00:00
|
|
|
vircapstest_SOURCES = \
|
2015-04-21 08:14:45 +00:00
|
|
|
vircapstest.c testutils.h testutils.c
|
|
|
|
if WITH_LXC
|
|
|
|
vircapstest_SOURCES += testutilslxc.c testutilslxc.h
|
|
|
|
endif WITH_LXC
|
|
|
|
if WITH_QEMU
|
|
|
|
vircapstest_SOURCES += testutilsqemu.c testutilsqemu.h
|
|
|
|
endif WITH_QEMU
|
2019-12-03 10:49:49 +00:00
|
|
|
vircapstest_LDADD =
|
2019-06-12 09:42:39 +00:00
|
|
|
if WITH_QEMU
|
2019-12-03 10:49:49 +00:00
|
|
|
vircapstest_LDADD += ../src/libvirt_driver_qemu_impl.la
|
|
|
|
if WITH_DTRACE_PROBES
|
|
|
|
vircapstest_LDADD += ../src/libvirt_qemu_probes.lo
|
|
|
|
endif WITH_DTRACE_PROBES
|
|
|
|
endif WITH_QEMU
|
|
|
|
if WITH_LXC
|
|
|
|
vircapstest_LDADD += ../src/libvirt_driver_lxc_impl.la
|
|
|
|
endif WITH_LXC
|
|
|
|
vircapstest_LDADD += $(LDADDS)
|
2014-02-11 14:36:21 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libdomaincapsmock_la_SOURCES = domaincapsmock.c
|
|
|
|
libdomaincapsmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libdomaincapsmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2016-06-27 13:40:31 +00:00
|
|
|
|
2014-06-25 11:24:53 +00:00
|
|
|
domaincapstest_SOURCES = \
|
2019-04-04 10:42:14 +00:00
|
|
|
domaincapstest.c testutils.h testutils.c \
|
|
|
|
virfilewrapper.c virfilewrapper.h \
|
|
|
|
$(NULL)
|
2014-06-25 11:24:53 +00:00
|
|
|
domaincapstest_LDADD = $(LDADDS)
|
|
|
|
|
2014-06-25 16:39:29 +00:00
|
|
|
if WITH_QEMU
|
|
|
|
domaincapstest_SOURCES += testutilsqemu.c testutilsqemu.h
|
2017-03-08 12:32:46 +00:00
|
|
|
domaincapstest_LDADD += libqemutestdriver.la $(GNULIB_LIBS)
|
2014-06-25 16:39:29 +00:00
|
|
|
endif WITH_QEMU
|
|
|
|
|
2016-05-16 21:21:59 +00:00
|
|
|
if WITH_LIBXL
|
|
|
|
domaincapstest_SOURCES += testutilsxen.c testutilsxen.h
|
2019-02-08 18:28:39 +00:00
|
|
|
domaincapstest_LDADD += libxltestdriver.la $(GNULIB_LIBS)
|
2016-05-16 21:21:59 +00:00
|
|
|
endif WITH_LIBXL
|
|
|
|
|
2017-03-18 20:17:13 +00:00
|
|
|
if WITH_BHYVE
|
|
|
|
domaincapstest_LDADD += ../src/libvirt_driver_bhyve_impl.la $(GNULIB_LIBS)
|
|
|
|
endif WITH_BHYVE
|
|
|
|
|
2010-12-06 17:03:22 +00:00
|
|
|
virnetmessagetest_SOURCES = \
|
|
|
|
virnetmessagetest.c testutils.h testutils.c
|
2012-04-02 15:45:01 +00:00
|
|
|
virnetmessagetest_LDADD = $(LDADDS)
|
2010-12-06 17:03:22 +00:00
|
|
|
|
2010-12-06 17:03:35 +00:00
|
|
|
virnetsockettest_SOURCES = \
|
|
|
|
virnetsockettest.c testutils.h testutils.c
|
2012-04-02 15:45:01 +00:00
|
|
|
virnetsockettest_LDADD = $(LDADDS)
|
2010-12-06 17:03:35 +00:00
|
|
|
|
2015-06-11 12:02:30 +00:00
|
|
|
virnetdaemontest_SOURCES = \
|
|
|
|
virnetdaemontest.c \
|
2015-05-22 12:21:46 +00:00
|
|
|
testutils.h testutils.c
|
2015-06-11 12:02:30 +00:00
|
|
|
virnetdaemontest_LDADD = $(LDADDS)
|
2015-05-22 12:21:46 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetdaemonmock_la_SOURCES = \
|
2016-04-12 17:21:43 +00:00
|
|
|
virnetdaemonmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetdaemonmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirnetdaemonmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2016-04-12 17:21:43 +00:00
|
|
|
|
2013-09-23 11:39:19 +00:00
|
|
|
virnetserverclienttest_SOURCES = \
|
|
|
|
virnetserverclienttest.c \
|
|
|
|
testutils.h testutils.c
|
|
|
|
virnetserverclienttest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetserverclientmock_la_SOURCES = \
|
2013-09-23 11:39:19 +00:00
|
|
|
virnetserverclientmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetserverclientmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirnetserverclientmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2013-09-23 11:39:19 +00:00
|
|
|
|
2011-07-20 18:04:18 +00:00
|
|
|
virnettlscontexttest_SOURCES = \
|
2013-08-05 15:49:24 +00:00
|
|
|
virnettlscontexttest.c \
|
|
|
|
virnettlshelpers.h virnettlshelpers.c \
|
|
|
|
testutils.h testutils.c
|
2013-08-12 19:13:14 +00:00
|
|
|
virnettlscontexttest_LDADD = $(LDADDS) $(GNUTLS_LIBS)
|
2013-08-05 15:49:24 +00:00
|
|
|
virnettlssessiontest_SOURCES = \
|
|
|
|
virnettlssessiontest.c \
|
|
|
|
virnettlshelpers.h virnettlshelpers.c \
|
|
|
|
testutils.h testutils.c
|
2013-08-12 19:13:14 +00:00
|
|
|
virnettlssessiontest_LDADD = $(LDADDS) $(GNUTLS_LIBS)
|
2011-07-22 17:59:37 +00:00
|
|
|
if HAVE_LIBTASN1
|
|
|
|
virnettlscontexttest_SOURCES += pkix_asn1_tab.c
|
|
|
|
virnettlscontexttest_LDADD += -ltasn1
|
2013-08-05 15:49:24 +00:00
|
|
|
virnettlssessiontest_SOURCES += pkix_asn1_tab.c
|
|
|
|
virnettlssessiontest_LDADD += -ltasn1
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! HAVE_LIBTASN1
|
2011-07-22 17:59:37 +00:00
|
|
|
EXTRA_DIST += pkix_asn1_tab.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! HAVE_LIBTASN1
|
2011-07-20 18:04:18 +00:00
|
|
|
|
2011-11-29 12:11:01 +00:00
|
|
|
virtimetest_SOURCES = \
|
|
|
|
virtimetest.c testutils.h testutils.c
|
2012-04-02 15:45:01 +00:00
|
|
|
virtimetest_LDADD = $(LDADDS)
|
2011-11-29 12:11:01 +00:00
|
|
|
|
2016-06-07 16:54:43 +00:00
|
|
|
virschematest_SOURCES = \
|
|
|
|
virschematest.c testutils.h testutils.c
|
2016-06-08 11:25:08 +00:00
|
|
|
virschematest_LDADD = $(LDADDS) $(LIBXML_LIBS)
|
2016-06-07 16:54:43 +00:00
|
|
|
|
2012-11-30 15:21:02 +00:00
|
|
|
virstringtest_SOURCES = \
|
|
|
|
virstringtest.c testutils.h testutils.c
|
|
|
|
virstringtest_LDADD = $(LDADDS)
|
|
|
|
|
2013-02-13 18:04:05 +00:00
|
|
|
virstoragetest_SOURCES = \
|
|
|
|
virstoragetest.c testutils.h testutils.c
|
2014-04-24 10:14:01 +00:00
|
|
|
virstoragetest_LDADD = $(LDADDS) \
|
|
|
|
../src/libvirt.la \
|
|
|
|
../src/libvirt_driver_storage_impl.la \
|
|
|
|
../gnulib/lib/libgnu.la \
|
|
|
|
$(NULL)
|
2013-02-13 18:04:05 +00:00
|
|
|
|
2012-01-20 17:49:32 +00:00
|
|
|
viridentitytest_SOURCES = \
|
|
|
|
viridentitytest.c testutils.h testutils.c
|
|
|
|
viridentitytest_LDADD = $(LDADDS)
|
2014-03-06 06:02:49 +00:00
|
|
|
if WITH_SELINUX
|
2014-10-24 12:33:52 +00:00
|
|
|
viridentitytest_LDADD += $(SELINUX_LIBS)
|
2014-03-06 06:02:49 +00:00
|
|
|
viridentitytest_DEPENDENCIES = libsecurityselinuxhelper.la \
|
|
|
|
../src/libvirt.la
|
|
|
|
endif WITH_SELINUX
|
2012-01-20 17:49:32 +00:00
|
|
|
|
2014-02-21 09:59:10 +00:00
|
|
|
viriscsitest_SOURCES = \
|
|
|
|
viriscsitest.c testutils.h testutils.c
|
|
|
|
viriscsitest_LDADD = $(LDADDS)
|
|
|
|
|
2013-04-05 16:49:27 +00:00
|
|
|
virkeycodetest_SOURCES = \
|
|
|
|
virkeycodetest.c testutils.h testutils.c
|
|
|
|
virkeycodetest_LDADD = $(LDADDS)
|
|
|
|
|
Introduce an internal API for handling file based lockspaces
The previously introduced virFile{Lock,Unlock} APIs provide a
way to acquire/release fcntl() locks on individual files. For
unknown reason though, the POSIX spec says that fcntl() locks
are released when *any* file handle referring to the same path
is closed. In the following sequence
threadA: fd1 = open("foo")
threadB: fd2 = open("foo")
threadA: virFileLock(fd1)
threadB: virFileLock(fd2)
threadB: close(fd2)
you'd expect threadA to come out holding a lock on 'foo', and
indeed it does hold a lock for a very short time. Unfortunately
when threadB does close(fd2) this releases the lock associated
with fd1. For the current libvirt use case for virFileLock -
pidfiles - this doesn't matter since the lock is acquired
at startup while single threaded an never released until
exit.
To provide a more generally useful API though, it is necessary
to introduce a slightly higher level abstraction, which is to
be referred to as a "lockspace". This is to be provided by
a virLockSpacePtr object in src/util/virlockspace.{c,h}. The
core idea is that the lockspace keeps track of what files are
already open+locked. This means that when a 2nd thread comes
along and tries to acquire a lock, it doesn't end up opening
and closing a new FD. The lockspace just checks the current
list of held locks and immediately returns VIR_ERR_RESOURCE_BUSY.
NB, the API as it stands is designed on the basis that the
files being locked are not being otherwise opened and used
by the application code. One approach to using this API is to
acquire locks based on a hash of the filepath.
eg to lock /var/lib/libvirt/images/foo.img the application
might do
virLockSpacePtr lockspace = virLockSpaceNew("/var/lib/libvirt/imagelocks");
lockname = md5sum("/var/lib/libvirt/images/foo.img");
virLockSpaceAcquireLock(lockspace, lockname);
NB, in this example, the caller should ensure that the path
is canonicalized before calculating the checksum.
It is also possible to do locks directly on resources by
using a NULL lockspace directory and then using the file
path as the lock name eg
virLockSpacePtr lockspace = virLockSpaceNew(NULL);
virLockSpaceAcquireLock(lockspace, "/var/lib/libvirt/images/foo.img");
This is only safe to do though if no other part of the process
will be opening the files. This will be the case when this
code is used inside the soon-to-be-reposted virlockd daemon
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-08-02 16:02:40 +00:00
|
|
|
virlockspacetest_SOURCES = \
|
|
|
|
virlockspacetest.c testutils.h testutils.c
|
|
|
|
virlockspacetest_LDADD = $(LDADDS)
|
|
|
|
|
2013-10-11 16:07:54 +00:00
|
|
|
virlogtest_SOURCES = \
|
|
|
|
virlogtest.c testutils.h testutils.c
|
|
|
|
virlogtest_LDADD = $(LDADDS)
|
|
|
|
|
2013-01-09 15:11:50 +00:00
|
|
|
virportallocatortest_SOURCES = \
|
|
|
|
virportallocatortest.c testutils.h testutils.c
|
|
|
|
virportallocatortest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirportallocatormock_la_SOURCES = \
|
2016-02-11 12:46:16 +00:00
|
|
|
virportallocatormock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirportallocatormock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirportallocatormock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2013-01-09 15:11:50 +00:00
|
|
|
|
2013-03-28 14:36:52 +00:00
|
|
|
vircgrouptest_SOURCES = \
|
|
|
|
vircgrouptest.c testutils.h testutils.c
|
|
|
|
vircgrouptest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvircgroupmock_la_SOURCES = \
|
2013-03-28 14:36:52 +00:00
|
|
|
vircgroupmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvircgroupmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvircgroupmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2013-03-28 14:36:52 +00:00
|
|
|
|
2014-03-05 12:34:10 +00:00
|
|
|
vircryptotest_SOURCES = \
|
|
|
|
vircryptotest.c testutils.h testutils.c
|
|
|
|
vircryptotest_LDADD = $(LDADDS)
|
|
|
|
|
2014-03-06 08:08:36 +00:00
|
|
|
virhostdevtest_SOURCES = \
|
|
|
|
virhostdevtest.c testutils.h testutils.c
|
|
|
|
virhostdevtest_LDADD = $(LDADDS)
|
|
|
|
|
2013-10-23 13:44:40 +00:00
|
|
|
virpcitest_SOURCES = \
|
|
|
|
virpcitest.c testutils.h testutils.c
|
|
|
|
virpcitest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirpcimock_la_SOURCES = \
|
2013-10-23 13:44:40 +00:00
|
|
|
virpcimock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirpcimock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirpcimock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2013-10-23 13:44:40 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirrandommock_la_SOURCES = \
|
2016-05-12 16:15:44 +00:00
|
|
|
virrandommock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirrandommock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirrandommock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2016-05-12 16:15:44 +00:00
|
|
|
|
2019-08-29 19:19:00 +00:00
|
|
|
libvirprocessmock_la_SOURCES = \
|
|
|
|
virprocessmock.c
|
|
|
|
libvirprocessmock_la_CFLAGS = $(AM_CFLAGS)
|
|
|
|
libvirprocessmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirprocessmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirhostcpumock_la_SOURCES = \
|
2016-04-13 17:53:02 +00:00
|
|
|
virhostcpumock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirhostcpumock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirhostcpumock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2015-07-27 08:08:29 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirfilecachemock_la_SOURCES = \
|
2017-04-12 13:58:29 +00:00
|
|
|
virfilecachemock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirfilecachemock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirfilecachemock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2017-04-12 13:58:29 +00:00
|
|
|
|
2017-03-27 20:08:45 +00:00
|
|
|
if WITH_LINUX
|
|
|
|
vircaps2xmltest_SOURCES = \
|
2017-05-10 15:15:05 +00:00
|
|
|
vircaps2xmltest.c testutils.h testutils.c virfilewrapper.h virfilewrapper.c
|
2017-03-27 20:08:45 +00:00
|
|
|
vircaps2xmltest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnumamock_la_SOURCES = \
|
2017-03-23 16:01:41 +00:00
|
|
|
virnumamock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnumamock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirnumamock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2017-04-05 14:13:52 +00:00
|
|
|
|
2017-11-11 08:13:08 +00:00
|
|
|
virresctrltest_SOURCES = \
|
|
|
|
virresctrltest.c testutils.h testutils.c virfilewrapper.h virfilewrapper.c
|
|
|
|
virresctrltest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirfilemock_la_SOURCES = \
|
2018-10-09 11:06:00 +00:00
|
|
|
virfilemock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirfilemock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirfilemock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2017-03-27 20:08:45 +00:00
|
|
|
else ! WITH_LINUX
|
2017-11-11 08:13:08 +00:00
|
|
|
EXTRA_DIST += vircaps2xmltest.c virnumamock.c virfilewrapper.c \
|
2018-10-09 11:06:00 +00:00
|
|
|
virfilewrapper.h virresctrltest.c virfilemock.c
|
2017-03-27 20:08:45 +00:00
|
|
|
endif ! WITH_LINUX
|
2017-03-23 16:01:41 +00:00
|
|
|
|
2016-12-25 14:02:48 +00:00
|
|
|
if WITH_NSS
|
2016-02-15 13:02:05 +00:00
|
|
|
nsstest_SOURCES = \
|
|
|
|
nsstest.c testutils.h testutils.c
|
|
|
|
nsstest_CFLAGS = \
|
2017-11-03 12:09:47 +00:00
|
|
|
$(AM_CFLAGS) \
|
2016-02-15 13:02:05 +00:00
|
|
|
-I$(top_srcdir)/tools/nss
|
|
|
|
nsstest_LDADD = \
|
2017-11-03 12:09:47 +00:00
|
|
|
$(LDADDS) \
|
2016-02-15 13:02:05 +00:00
|
|
|
../tools/nss/libnss_libvirt_impl.la
|
|
|
|
|
2016-11-29 12:48:53 +00:00
|
|
|
nssguesttest_SOURCES = \
|
|
|
|
nsstest.c testutils.h testutils.c
|
|
|
|
nssguesttest_CFLAGS = \
|
2017-11-03 12:09:47 +00:00
|
|
|
-DLIBVIRT_NSS_GUEST \
|
|
|
|
$(AM_CFLAGS) \
|
2016-11-29 12:48:53 +00:00
|
|
|
-I$(top_srcdir)/tools/nss
|
|
|
|
nssguesttest_LDADD = \
|
2017-11-03 12:09:47 +00:00
|
|
|
$(LDADDS) \
|
2016-11-29 12:48:53 +00:00
|
|
|
../tools/nss/libnss_libvirt_guest_impl.la
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libnssmock_la_SOURCES = \
|
2016-02-15 13:02:05 +00:00
|
|
|
nssmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libnssmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libnssmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2016-02-15 13:02:05 +00:00
|
|
|
|
2016-03-03 14:29:51 +00:00
|
|
|
## Intentionaly not linking with anything else.
|
|
|
|
## See the test source for more detailed explanation.
|
|
|
|
nsslinktest_SOURCES = nsslinktest.c
|
2017-11-03 12:09:47 +00:00
|
|
|
nsslinktest_CFLAGS = \
|
|
|
|
$(AM_CFLAGS) \
|
2016-03-03 14:29:51 +00:00
|
|
|
-I$(top_srcdir)/tools/nss
|
|
|
|
nsslinktest_LDADD = ../tools/nss/libnss_libvirt_impl.la
|
|
|
|
nsslinktest_LDFLAGS = $(NULL)
|
|
|
|
|
2016-11-29 12:48:53 +00:00
|
|
|
nssguestlinktest_SOURCES = nsslinktest.c
|
2017-11-03 12:09:47 +00:00
|
|
|
nssguestlinktest_CFLAGS = \
|
|
|
|
-DLIBVIRT_NSS_GUEST \
|
|
|
|
$(AM_CFLAGS) \
|
2016-11-29 12:48:53 +00:00
|
|
|
-I$(top_srcdir)/tools/nss
|
|
|
|
nssguestlinktest_LDADD = ../tools/nss/libnss_libvirt_guest_impl.la
|
|
|
|
nssguestlinktest_LDFLAGS = $(NULL)
|
2016-12-25 14:02:48 +00:00
|
|
|
else ! WITH_NSS
|
|
|
|
EXTRA_DIST += nsstest.c nssmock.c nsslinktest.c
|
|
|
|
endif ! WITH_NSS
|
2016-11-29 12:48:53 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirdeterministichashmock_la_SOURCES = \
|
2017-07-26 08:02:21 +00:00
|
|
|
virdeterministichashmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirdeterministichashmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirdeterministichashmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2017-07-26 08:02:21 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
test_libraries += libvirdeterministichashmock.la
|
2016-11-25 06:30:30 +00:00
|
|
|
|
2018-08-13 11:40:18 +00:00
|
|
|
if WITH_YAJL
|
2016-11-25 06:30:30 +00:00
|
|
|
virmacmaptest_SOURCES = \
|
|
|
|
virmacmaptest.c testutils.h testutils.c
|
|
|
|
virmacmaptest_LDADD = $(LDADDS)
|
|
|
|
|
2019-07-16 07:33:38 +00:00
|
|
|
virnetdevopenvswitchtest_SOURCES = \
|
|
|
|
virnetdevopenvswitchtest.c testutils.h testutils.c
|
|
|
|
virnetdevopenvswitchtest_LDADD = $(LDADDS)
|
|
|
|
|
|
|
|
test_programs += \
|
|
|
|
virmacmaptest \
|
|
|
|
virnetdevopenvswitchtest
|
2018-08-13 11:40:18 +00:00
|
|
|
else ! WITH_YAJL
|
2019-07-16 07:33:38 +00:00
|
|
|
EXTRA_DIST += \
|
|
|
|
virmacmaptest.c \
|
|
|
|
virnetdevopenvswitchtest.c
|
2018-08-13 11:40:18 +00:00
|
|
|
endif ! WITH_YAJL
|
2016-12-25 09:13:31 +00:00
|
|
|
|
2014-06-11 13:05:00 +00:00
|
|
|
virnetdevtest_SOURCES = \
|
|
|
|
virnetdevtest.c testutils.h testutils.c
|
|
|
|
virnetdevtest_CFLAGS = $(AM_CFLAGS) $(LIBNL_CFLAGS)
|
|
|
|
virnetdevtest_LDADD = $(LDADDS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetdevmock_la_SOURCES = \
|
2014-06-11 13:05:00 +00:00
|
|
|
virnetdevmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetdevmock_la_CFLAGS = $(AM_CFLAGS) $(LIBNL_CFLAGS)
|
|
|
|
libvirnetdevmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirnetdevmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2014-06-11 13:05:00 +00:00
|
|
|
|
2015-11-27 13:00:39 +00:00
|
|
|
virrotatingfiletest_SOURCES = \
|
|
|
|
virrotatingfiletest.c testutils.h testutils.c
|
|
|
|
virrotatingfiletest_LDADD = $(LDADDS)
|
|
|
|
|
2014-02-26 09:25:30 +00:00
|
|
|
if WITH_LINUX
|
|
|
|
virusbtest_SOURCES = \
|
|
|
|
virusbtest.c testutils.h testutils.c
|
|
|
|
virusbtest_LDADD = $(LDADDS)
|
|
|
|
|
2014-11-06 11:38:52 +00:00
|
|
|
virnetdevbandwidthtest_SOURCES = \
|
|
|
|
virnetdevbandwidthtest.c testutils.h testutils.c
|
|
|
|
virnetdevbandwidthtest_LDADD = $(LDADDS) $(LIBXML_LIBS)
|
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirusbmock_la_SOURCES = virusbmock.c
|
|
|
|
libvirusbmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirusbmock_la_LIBADD = $(MOCKLIBS_LIBS) \
|
2017-02-10 13:00:41 +00:00
|
|
|
$(PROBES_O) \
|
2017-02-03 13:55:28 +00:00
|
|
|
../src/libvirt_util.la
|
2014-11-06 11:38:52 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetdevbandwidthmock_la_SOURCES = \
|
2014-11-06 11:38:52 +00:00
|
|
|
virnetdevbandwidthmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirnetdevbandwidthmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirnetdevbandwidthmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2014-11-06 11:38:52 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirtestmock_la_SOURCES = \
|
2016-05-13 12:08:29 +00:00
|
|
|
virtestmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirtestmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirtestmock_la_LIBADD = \
|
2016-04-18 12:10:33 +00:00
|
|
|
$(MOCKLIBS_LIBS) \
|
2016-05-18 13:31:54 +00:00
|
|
|
$(PROBES_O) \
|
2016-04-18 12:10:33 +00:00
|
|
|
../src/libvirt_util.la
|
2014-02-26 09:25:30 +00:00
|
|
|
else ! WITH_LINUX
|
2014-11-06 11:38:52 +00:00
|
|
|
EXTRA_DIST += virusbtest.c virusbmock.c \
|
2016-05-13 12:08:29 +00:00
|
|
|
virnetdevbandwidthtest.c virnetdevbandwidthmock.c \
|
|
|
|
virtestmock.c
|
2014-02-26 09:25:30 +00:00
|
|
|
endif ! WITH_LINUX
|
|
|
|
|
2013-07-12 10:13:04 +00:00
|
|
|
if WITH_DBUS
|
|
|
|
virdbustest_SOURCES = \
|
|
|
|
virdbustest.c testutils.h testutils.c
|
|
|
|
virdbustest_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
|
2013-08-12 19:13:14 +00:00
|
|
|
virdbustest_LDADD = $(LDADDS) $(DBUS_LIBS)
|
2013-07-18 09:54:21 +00:00
|
|
|
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirdbusmock_la_SOURCES = \
|
2016-02-11 13:08:11 +00:00
|
|
|
virdbusmock.c
|
2019-08-21 16:13:16 +00:00
|
|
|
libvirdbusmock_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
|
|
|
|
libvirdbusmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
|
|
|
libvirdbusmock_la_LIBADD = $(MOCKLIBS_LIBS)
|
2014-03-12 12:15:47 +00:00
|
|
|
|
2014-09-10 13:52:48 +00:00
|
|
|
virpolkittest_SOURCES = \
|
|
|
|
virpolkittest.c testutils.h testutils.c
|
|
|
|
virpolkittest_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
|
|
|
|
virpolkittest_LDADD = $(LDADDS) $(DBUS_LIBS)
|
|
|
|
|
2013-07-18 09:54:21 +00:00
|
|
|
virsystemdtest_SOURCES = \
|
|
|
|
virsystemdtest.c testutils.h testutils.c
|
2014-03-12 12:20:07 +00:00
|
|
|
virsystemdtest_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
|
2014-05-03 11:17:12 +00:00
|
|
|
virsystemdtest_LDADD = $(LDADDS) $(DBUS_LIBS)
|
2013-07-18 09:54:21 +00:00
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DBUS
|
2016-02-11 13:08:11 +00:00
|
|
|
EXTRA_DIST += virdbustest.c virdbusmock.c virsystemdtest.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DBUS
|
2013-01-09 15:11:50 +00:00
|
|
|
|
2012-03-20 11:55:11 +00:00
|
|
|
viruritest_SOURCES = \
|
|
|
|
viruritest.c testutils.h testutils.c
|
2012-04-02 15:45:01 +00:00
|
|
|
viruritest_LDADD = $(LDADDS)
|
2010-12-06 17:03:22 +00:00
|
|
|
|
2012-03-16 16:29:49 +00:00
|
|
|
virkeyfiletest_SOURCES = \
|
|
|
|
virkeyfiletest.c testutils.h testutils.c
|
2012-04-02 15:45:01 +00:00
|
|
|
virkeyfiletest_LDADD = $(LDADDS)
|
2012-03-16 16:29:49 +00:00
|
|
|
|
2014-04-08 14:44:40 +00:00
|
|
|
viralloctest_SOURCES = \
|
|
|
|
viralloctest.c testutils.h testutils.c
|
|
|
|
viralloctest_LDADD = $(LDADDS)
|
|
|
|
|
2012-03-20 15:40:05 +00:00
|
|
|
virauthconfigtest_SOURCES = \
|
|
|
|
virauthconfigtest.c testutils.h testutils.c
|
2012-04-02 15:45:01 +00:00
|
|
|
virauthconfigtest_LDADD = $(LDADDS)
|
2012-03-20 15:40:05 +00:00
|
|
|
|
2009-04-03 10:55:51 +00:00
|
|
|
seclabeltest_SOURCES = \
|
2016-02-25 16:13:00 +00:00
|
|
|
seclabeltest.c testutils.h testutils.c
|
2012-08-02 12:10:31 +00:00
|
|
|
seclabeltest_LDADD = $(LDADDS)
|
2009-10-08 14:34:22 +00:00
|
|
|
|
2012-08-10 13:31:14 +00:00
|
|
|
if WITH_SECDRIVER_SELINUX
|
2013-08-21 06:52:20 +00:00
|
|
|
if WITH_ATTR
|
2012-08-10 13:31:14 +00:00
|
|
|
if WITH_TESTS
|
|
|
|
noinst_LTLIBRARIES += libsecurityselinuxhelper.la
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_TESTS
|
2012-08-10 13:31:14 +00:00
|
|
|
check_LTLIBRARIES += libsecurityselinuxhelper.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_TESTS
|
2012-08-10 13:31:14 +00:00
|
|
|
|
|
|
|
libsecurityselinuxhelper_la_SOURCES = \
|
|
|
|
securityselinuxhelper.c
|
2015-04-27 13:31:32 +00:00
|
|
|
libsecurityselinuxhelper_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
2012-08-10 13:31:14 +00:00
|
|
|
|
|
|
|
securityselinuxtest_SOURCES = \
|
|
|
|
securityselinuxtest.c testutils.h testutils.c
|
2013-08-12 21:09:52 +00:00
|
|
|
securityselinuxtest_LDADD = $(LDADDS) $(SELINUX_LIBS)
|
2013-07-18 15:37:52 +00:00
|
|
|
securityselinuxtest_DEPENDENCIES = libsecurityselinuxhelper.la \
|
|
|
|
../src/libvirt.la
|
2012-09-19 13:00:34 +00:00
|
|
|
|
|
|
|
if WITH_QEMU
|
|
|
|
securityselinuxlabeltest_SOURCES = \
|
|
|
|
securityselinuxlabeltest.c testutils.h testutils.c \
|
|
|
|
testutilsqemu.h testutilsqemu.c
|
2019-06-11 15:16:57 +00:00
|
|
|
securityselinuxlabeltest_LDADD = $(qemu_LDADDS) $(SELINUX_LIBS)
|
2013-07-18 15:37:52 +00:00
|
|
|
securityselinuxlabeltest_DEPENDENCIES = libsecurityselinuxhelper.la \
|
|
|
|
../src/libvirt.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
|
|
|
endif WITH_ATTR
|
|
|
|
endif WITH_SECDRIVER_SELINUX
|
2013-07-18 15:37:52 +00:00
|
|
|
EXTRA_DIST += securityselinuxtest.c securityselinuxlabeltest.c \
|
|
|
|
securityselinuxhelper.c
|
2012-08-10 13:31:14 +00:00
|
|
|
|
buf: Fix possible infinite loop in EscapeString, VSnprintf
The current code will go into an infinite loop if the printf generated
string is >= 1000, AND exactly 1 character smaller than the amount of free
space in the buffer. When this happens, we are dropped into the loop body,
but nothing will actually change, because count == (buf->size - buf->use - 1),
and virBufferGrow returns unchanged if count < (buf->size - buf->use)
Fix this by removing the '- 1' bit from 'size'. The *nprintf functions handle
the NULL byte for us anyways, so we shouldn't need to manually accommodate
for it.
Here's a bug where we are actually hitting this issue:
https://bugzilla.redhat.com/show_bug.cgi?id=602772
v2: Eric's improvements: while -> if (), remove extra va_list variable,
make sure we report buffer error if snprintf fails
v3: Add tests/virbuftest which reproduces the infinite loop before this
patch, works correctly after
2010-09-01 17:51:35 +00:00
|
|
|
virbuftest_SOURCES = \
|
|
|
|
virbuftest.c testutils.h testutils.c
|
|
|
|
virbuftest_LDADD = $(LDADDS)
|
|
|
|
|
2012-01-25 16:13:59 +00:00
|
|
|
virhashtest_SOURCES = \
|
|
|
|
virhashtest.c virhashdata.h testutils.h testutils.c
|
|
|
|
virhashtest_LDADD = $(LDADDS)
|
2011-04-15 11:15:37 +00:00
|
|
|
|
2012-07-11 13:35:43 +00:00
|
|
|
viratomictest_SOURCES = \
|
2012-08-03 04:47:38 +00:00
|
|
|
viratomictest.c testutils.h testutils.c
|
2012-07-11 13:35:43 +00:00
|
|
|
viratomictest_LDADD = $(LDADDS)
|
|
|
|
|
2012-09-14 07:46:57 +00:00
|
|
|
virbitmaptest_SOURCES = \
|
|
|
|
virbitmaptest.c testutils.h testutils.c
|
|
|
|
virbitmaptest_LDADD = $(LDADDS)
|
|
|
|
|
2013-02-08 23:44:21 +00:00
|
|
|
virendiantest_SOURCES = \
|
|
|
|
virendiantest.c testutils.h testutils.c
|
|
|
|
virendiantest_LDADD = $(LDADDS)
|
|
|
|
|
2013-11-27 15:19:49 +00:00
|
|
|
virfiletest_SOURCES = \
|
|
|
|
virfiletest.c testutils.h testutils.c
|
|
|
|
virfiletest_LDADD = $(LDADDS)
|
|
|
|
|
2017-04-12 13:58:29 +00:00
|
|
|
virfilecachetest_SOURCES = \
|
|
|
|
virfilecachetest.c testutils.h testutils.c
|
|
|
|
virfilecachetest_LDADD = $(LDADDS)
|
|
|
|
|
2013-03-04 16:30:40 +00:00
|
|
|
virfirewalltest_SOURCES = \
|
|
|
|
virfirewalltest.c testutils.h testutils.c
|
2014-05-03 11:17:12 +00:00
|
|
|
virfirewalltest_LDADD = $(LDADDS) $(DBUS_LIBS)
|
2013-03-04 16:30:40 +00:00
|
|
|
virfirewalltest_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
|
|
|
|
|
2017-06-26 14:47:26 +00:00
|
|
|
virjsontest_SOURCES = \
|
|
|
|
virjsontest.c testutils.h testutils.c
|
|
|
|
virjsontest_LDADD = $(LDADDS)
|
2011-06-30 14:08:29 +00:00
|
|
|
|
2011-07-01 17:58:15 +00:00
|
|
|
utiltest_SOURCES = \
|
|
|
|
utiltest.c testutils.h testutils.c
|
|
|
|
utiltest_LDADD = $(LDADDS)
|
|
|
|
|
2017-07-28 09:54:37 +00:00
|
|
|
if WITH_LIBVIRTD
|
2012-04-02 16:25:30 +00:00
|
|
|
virdrivermoduletest_SOURCES = \
|
|
|
|
virdrivermoduletest.c testutils.h testutils.c
|
|
|
|
virdrivermoduletest_LDADD = $(LDADDS)
|
2019-10-09 19:11:44 +00:00
|
|
|
|
|
|
|
virdriverconnvalidatetest_SOURCES = \
|
|
|
|
virdriverconnvalidatetest.c testutils.h testutils.c
|
|
|
|
virdriverconnvalidatetest_LDADD = $(LDADDS)
|
2017-07-28 09:54:37 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2012-04-02 16:25:30 +00:00
|
|
|
|
2009-05-12 16:45:14 +00:00
|
|
|
if WITH_LIBVIRTD
|
|
|
|
eventtest_SOURCES = \
|
2011-02-24 17:58:04 +00:00
|
|
|
eventtest.c testutils.h testutils.c
|
2016-11-24 15:03:39 +00:00
|
|
|
eventtest_LDADD = $(LIB_CLOCK_GETTIME) $(LDADDS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2009-05-12 16:45:14 +00:00
|
|
|
|
Prevent crash from dlclose() of libvirt.so
When libvirt calls virInitialize it creates a thread local
for the virErrorPtr storage, and registers a callback to
cleanup memory when a thread exits. When libvirt is dlclose()d
or otherwise made non-resident, the callback function is
removed from memory, but the thread local may still exist
and if a thread later exists, it will invoke the callback
and SEGV. There may also be other thread locals with callbacks
pointing to libvirt code, so it is in general never safe to
unload libvirt.so from memory once initialized.
To allow dlclose() to succeed, but keep libvirt.so resident
in memory, link with '-z nodelete'. This issue was first
found with the libvirt CIM provider, but can potentially
hit many of the dynamic language bindings which all ultimately
involve dlopen() in some way, either on libvirt.so itself,
or on the glue code for the binding which in turns links
to libvirt
* configure.ac, src/Makefile.am: Ensure libvirt.so is linked
with -z nodelete
* cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
tests/shunloadtest.c: A test case to unload libvirt while
a thread is still running.
2011-09-01 16:57:06 +00:00
|
|
|
libshunload_la_SOURCES = shunloadhelper.c
|
|
|
|
libshunload_la_LIBADD = ../src/libvirt.la
|
2015-04-27 13:31:32 +00:00
|
|
|
libshunload_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
|
Prevent crash from dlclose() of libvirt.so
When libvirt calls virInitialize it creates a thread local
for the virErrorPtr storage, and registers a callback to
cleanup memory when a thread exits. When libvirt is dlclose()d
or otherwise made non-resident, the callback function is
removed from memory, but the thread local may still exist
and if a thread later exists, it will invoke the callback
and SEGV. There may also be other thread locals with callbacks
pointing to libvirt code, so it is in general never safe to
unload libvirt.so from memory once initialized.
To allow dlclose() to succeed, but keep libvirt.so resident
in memory, link with '-z nodelete'. This issue was first
found with the libvirt CIM provider, but can potentially
hit many of the dynamic language bindings which all ultimately
involve dlopen() in some way, either on libvirt.so itself,
or on the glue code for the binding which in turns links
to libvirt
* configure.ac, src/Makefile.am: Ensure libvirt.so is linked
with -z nodelete
* cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
tests/shunloadtest.c: A test case to unload libvirt while
a thread is still running.
2011-09-01 16:57:06 +00:00
|
|
|
|
|
|
|
shunloadtest_SOURCES = \
|
|
|
|
shunloadtest.c
|
2017-01-16 17:58:00 +00:00
|
|
|
shunloadtest_LDADD = $(LIB_PTHREAD) $(DLOPEN_LIBS)
|
Prevent crash from dlclose() of libvirt.so
When libvirt calls virInitialize it creates a thread local
for the virErrorPtr storage, and registers a callback to
cleanup memory when a thread exits. When libvirt is dlclose()d
or otherwise made non-resident, the callback function is
removed from memory, but the thread local may still exist
and if a thread later exists, it will invoke the callback
and SEGV. There may also be other thread locals with callbacks
pointing to libvirt code, so it is in general never safe to
unload libvirt.so from memory once initialized.
To allow dlclose() to succeed, but keep libvirt.so resident
in memory, link with '-z nodelete'. This issue was first
found with the libvirt CIM provider, but can potentially
hit many of the dynamic language bindings which all ultimately
involve dlopen() in some way, either on libvirt.so itself,
or on the glue code for the binding which in turns links
to libvirt
* configure.ac, src/Makefile.am: Ensure libvirt.so is linked
with -z nodelete
* cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
tests/shunloadtest.c: A test case to unload libvirt while
a thread is still running.
2011-09-01 16:57:06 +00:00
|
|
|
shunloadtest_DEPENDENCIES = libshunload.la
|
|
|
|
|
2012-12-14 15:08:25 +00:00
|
|
|
sysinfotest_SOURCES = \
|
|
|
|
sysinfotest.c testutils.h testutils.c
|
|
|
|
sysinfotest_LDADD = $(LDADDS)
|
|
|
|
|
2013-11-12 11:57:56 +00:00
|
|
|
domainconftest_SOURCES = \
|
|
|
|
domainconftest.c testutils.h testutils.c
|
|
|
|
domainconftest_LDADD = $(LDADDS)
|
|
|
|
|
2013-05-10 17:14:40 +00:00
|
|
|
fdstreamtest_SOURCES = \
|
|
|
|
fdstreamtest.c testutils.h testutils.c
|
|
|
|
fdstreamtest_LDADD = $(LDADDS)
|
|
|
|
|
2013-11-25 16:43:46 +00:00
|
|
|
objecteventtest_SOURCES = \
|
|
|
|
objecteventtest.c \
|
|
|
|
testutils.c testutils.h
|
|
|
|
objecteventtest_LDADD = $(LDADDS)
|
|
|
|
|
2015-06-15 22:42:06 +00:00
|
|
|
virtypedparamtest_SOURCES = \
|
|
|
|
virtypedparamtest.c testutils.h testutils.c
|
|
|
|
virtypedparamtest_LDADD = $(LDADDS)
|
|
|
|
|
|
|
|
|
2013-09-27 14:47:12 +00:00
|
|
|
if WITH_LINUX
|
2013-05-06 12:45:17 +00:00
|
|
|
fchosttest_SOURCES = \
|
|
|
|
fchosttest.c testutils.h testutils.c
|
|
|
|
fchosttest_LDADD = $(LDADDS)
|
|
|
|
|
2014-06-10 15:09:20 +00:00
|
|
|
scsihosttest_SOURCES = \
|
|
|
|
scsihosttest.c testutils.h testutils.c
|
|
|
|
scsihosttest_LDADD = $(LDADDS)
|
|
|
|
|
2013-09-27 14:47:12 +00:00
|
|
|
else ! WITH_LINUX
|
|
|
|
EXTRA_DIST += fchosttest.c
|
2014-06-10 15:09:20 +00:00
|
|
|
EXTRA_DIST += scsihosttest.c
|
2013-09-27 14:47:12 +00:00
|
|
|
endif ! WITH_LINUX
|
|
|
|
|
2014-01-30 07:06:37 +00:00
|
|
|
if WITH_LINUX
|
|
|
|
virscsitest_SOURCES = \
|
|
|
|
virscsitest.c testutils.h testutils.c
|
|
|
|
virscsitest_LDADD = $(LDADDS)
|
|
|
|
|
|
|
|
else ! WITH_LINUX
|
|
|
|
EXTRA_DIST += virscsitest.c
|
|
|
|
endif ! WITH_LINUX
|
|
|
|
|
2019-10-08 15:18:00 +00:00
|
|
|
CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
|