- 07 9月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
To be able to test the QEMU monitor code, we need to have a fake QEMU monitor server. This introduces a simple (dumb) framework that can do this. The test case registers a series of items to be sent back as replies to commands that will be executed. A thread runs the event loop looking for incoming replies and sending back this pre-registered data. This allows testing all QEMU monitor code that deals with parsing responses and errors from QEMU, without needing QEMU around Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 21 8月, 2012 2 次提交
-
-
由 Eric Blake 提交于
Commit 1d22ba95 was complete at the time, but we have since reintroduced a warning that is fixed in the same manner: CCLD storagebackendsheepdogtest *** Warning: Linking the executable storagebackendsheepdogtest against the loadable module *** libvirt_driver_storage.so is not portable! * src/Makefile.am (libvirt_driver_storage.la): Factor into new convenience library libvirt_driver_storage_impl.la. * tests/Makefile.am (storagebackendsheepdogtest_LDADD): Link to convenience library, not shared library.
-
由 Daniel P. Berrange 提交于
This test case validates the correct generation of SELinux labels for VMs, wrt the current process label. Since we can't actually change the label of the test program process, we create a shared library libsecurityselinuxhelper.so which overrides the getcon() and setcon() libselinux.so functions. When started the test case will check to see if LD_PRELOAD is set, and if not, it will re-exec() itself setting LD_PRELOAD=libsecurityselinuxhelper.so Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 07 8月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
Occasionally some test cases will (accidentally) try to spawn libvirtd. Set the LIBVIRT_AUTOSTART=0 environment variable to ensure the remote driver never tries autostart.
-
- 03 8月, 2012 1 次提交
-
-
由 Laine Stump 提交于
make rpm was failing with the following error: Entering directory `/home/laine/devel/libvirt/tests' make[2]: *** No rule to make target `viratomicdata.h', needed by `distdir'. Stop. viratomicdata.h is listed in tests/Makefile.am as a dependency of viratomictest, but doesn't exist, is never referenced, and removing that dependency permits make rpm to complete successfully.
-
- 02 8月, 2012 2 次提交
-
-
由 Jiri Denemark 提交于
Security manager is not a dynamically loadable driver, it's a common infrastructure similar to util, conf, cpu, etc. used by individual drivers. Such code is allowed to be linked into libvirt.so. This reverts commit ec5b7bd2 and most of aae5cfb6. This patch is supposed to fix virdrivermoduletest failures for qemu and lxc drivers as well as libvirtd's ability to load qemu and lxc drivers.
-
由 Daniel P. Berrange 提交于
There are a few issues with the current virAtomic APIs - They require use of a virAtomicInt struct instead of a plain int type - Several of the methods do not implement memory barriers - The methods do not implement compiler re-ordering barriers - There is no Win32 native impl The GLib library has a nice LGPLv2+ licensed impl of atomic ops that works with GCC, Win32, or pthreads.h that addresses all these problems. The main downside to their code is that the pthreads impl uses a single global mutex, instead of a per-variable mutex. Given that it does have a Win32 impl though, we don't expect anyone to seriously use the pthread.h impl, so this downside is not significant. * .gitignore: Ignore test case * configure.ac: Check for which atomic ops impl to use * src/Makefile.am: Add viratomic.c * src/nwfilter/nwfilter_dhcpsnoop.c: Switch to new atomic ops APIs and plain int datatype * src/util/viratomic.h: inline impls of all atomic ops for GCC, Win32 and pthreads * src/util/viratomic.c: Global pthreads mutex for atomic ops * tests/viratomictest.c: Test validate to validate safety of atomic ops. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 01 8月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
The nwfilter and secrets drivers are both stateful and are already linked directly to libvirtd. Linking them to libvirt.so is thus wrong, likewise exporting their symbols in libvirt.so is wrong
-
- 19 7月, 2012 1 次提交
-
-
由 Sebastian Wiedenroth 提交于
This patch brings support to manage sheepdog pools and volumes to libvirt. It uses the "collie" command-line utility that comes with sheepdog for that. A sheepdog pool in libvirt maps to a sheepdog cluster. It needs a host and port to connect to, which in most cases is just going to be the default of localhost on port 7000. A sheepdog volume in libvirt maps to a sheepdog vdi. To create one specify the pool, a name and the capacity. Volumes can also be resized later. In the volume XML the vdi name has to be put into the <target><path>. To use the volume as a disk source for virtual machines specify the vdi name as "name" attribute of the <source>. The host and port information from the pool are specified inside the host tag. <disk type='network'> ... <source protocol="sheepdog" name="vdi_name"> <host name="localhost" port="7000"/> </source> </disk> To work right this patch parses the output of collie, so it relies on the raw output option. There recently was a bug which caused size information to be reported wrong. This is fixed upstream already and will be in the next release. Signed-off-by: NSebastian Wiedenroth <wiedi@frubar.net>
-
- 28 5月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Libtool is picky about linking against a module library (aka a .so); giving lots of warnings like this in the tests directory: CCLD networkxml2argvtest *** Warning: Linking the executable networkxml2argvtest against the loadable module *** libvirt_driver_network.so is not portable! Fix that by splitting things into a convenience library which can be used directly by the tests, and making the real .so just wrap the convenience library. Based on a suggestion by Daniel P. Berrange. * configure.ac (--with-driver-modules): Fix help test. * src/Makefile.am (libvirt_driver_xen.la, libvirt_driver_libxl.la) (libvirt_driver_qemu.la, libvirt_driver_lxc.la) (libvirt_driver_uml.la): Factor into new convenience libraries. * tests/Makefile.am (xen_LDADDS, qemu_LDADDS, lxc_LDADDS) (networkxml2argvtest_LDADD): Link to convenience libraries, not shared libraries.
-
- 26 5月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Libtool supports linking directly against .o files on some platforms (such as Linux), which happens to be the only place where we are actually doing that (for the dtrace-generated probes.o files). However, it raises a big stink about the non-portability, even though we don't attempt it on platforms where it would actually fail: CCLD libvirt_driver_qemu.la *** Warning: Linking the shared library libvirt_driver_qemu.la against the non-libtool *** objects libvirt_qemu_probes.o is not portable! This shuts libtool up by creating a proper .lo file that matches what libtool normally expects. * src/Makefile.am (%_probes.lo): New rule. (libvirt_probes.stp, libvirt_qemu_probes.stp): Simplify into... (%_probes.stp): ...shorter rule. (CLEANFILES): Clean new .lo files. (libvirt_la_BUILT_LIBADD, libvirt_driver_qemu_la_LIBADD) (libvirt_lxc_LDADD, virt_aa_helper_LDADD): Link against .lo file. * tests/Makefile.am (PROBES_O, qemu_LDADDS): Likewise.
-
- 25 5月, 2012 1 次提交
-
-
由 Eric Blake 提交于
* tests/Makefile.am (valgrind): Use libtool's ability to bypass libtool wrappers when running valgrind.
-
- 24 5月, 2012 3 次提交
-
-
由 Daniel P. Berrange 提交于
To ensure all symbols used by loadable driver modules are exported in libvirt.so, add a test suite that simply loads each driver in turn * tests/Makefile.am, tests/virdrivermoduletest.c: Add a test case for loading drivers Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
When building as driver modules, it is not possible for the QEMU driver module to reference the DTrace/SystemTAP probes linked into the main libvirt.so. Thus we need to move the QEMU probes into a separate file 'libvirt_qemu_probes.d'. Also rename the existing file from 'probes.d' to 'libvirt_probes.d' while we're at it * daemon/Makefile.am, src/internal.h: Include libvirt_probes.h instead of probes.h * src/Makefile.am: Add rules for libvirt_qemu_probes.d * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Include libvirt_qemu_probes.h * src/libvirt_probes.d: Rename from probes.d * src/libvirt_qemu_probes.d: QEMU specific probes formerly in probes.d Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
The libvirt_test.la library was introduced to allow test suites to reference internal-only symbols. These days, nearly every symbol we care about is in src/libvirt_private.syms, so there is no need for libvirt_test.la to continue to exist * src/Makefile.am: Delete libvirt_test.la & add new .syms files * src/libvirt_private.syms: Export symbols needed by test suite * tests/Makefile.am: Link to libvirt_test.la. Ensure LXC tests link to network_driver.la * src/libvirt_esx.syms, src/libvirt_openvz.syms: Add exports needed by test suite
-
- 08 5月, 2012 1 次提交
-
-
由 Eric Blake 提交于
We only know -lpthread exists on platforms where we build threads-pthread.c; but when we build threads-win32.c, LIB_PTHREAD is empty. * tests/Makefile.am (shunloadtest_LDADD): Use correct library.
-
- 04 5月, 2012 1 次提交
-
-
由 Eric Blake 提交于
On cygwin, <rpc/rpc.h> lives in a different directory than /usr/include, so anything that uses it must modify CFLAGS. This previously tripped up just 'make check', but now that we build all test programs unconditionally, it also trips up 'make'. * tests/Makefile.am (virnetmessagetest_CFLAGS): Find rpc headers.
-
- 11 4月, 2012 1 次提交
-
-
由 Jiri Denemark 提交于
Without this, libvirtdconftest fails to build with "fatal error: daemon/libvirtd-config.h: No such file or directory"
-
- 10 4月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
The daemon-conf test script continues to be very fragile to changes in libvirt. It currently fails 1 time in 3/4 due to race conditions in startup/shutdown of the test script. Replace it with a proper test case tailored to the code being tested * tests/Makefile.am: Remove daemon-conf, add libvirtdconftest * tests/daemon-conf: Delete obsolete test * tests/libvirtdconftest.c: Test config file handling
-
- 28 3月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
Add a new flag '--with-test-suite' to configure to control whether the test suite binaries are built by default. ie built with a plain 'make', as opposed to delayed until 'make check' For builds from tar.gz tests will not be built by default. For builds from GIT, tests with be on by default, to try and ensure that patch developers don't accidentally break the test suites without noticing. * configure.ac: Add --with-test-suite * tests/Makefile.am: Use noinst_PROGRAMS instead of check_PROGRAMS if building tests by default. Consolidate setting of TESTS and {noinst,check}_PROGRAMS to avoid duplication
-
- 27 3月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
Pass argv to the init binary of LXC, using a new <initarg> element. * docs/formatdomain.html.in: Document <os> usage for containers * docs/schemas/domaincommon.rng: Add <initarg> element * src/conf/domain_conf.c, src/conf/domain_conf.h: parsing and formatting of <initarg> * src/lxc/lxc_container.c: Setup LXC argv * tests/Makefile.am, tests/lxcxml2xmldata/lxc-systemd.xml, tests/lxcxml2xmltest.c, tests/testutilslxc.c, tests/testutilslxc.h: Test parsing/formatting of LXC related XML parts
-
- 24 3月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Otherwise, 'make check' breaks since commit bc1ff160 deleted qparams.h. A later patch will ensure that viruri takes over what qparams used to do. * tests/qparamtest.c (mymain): Delete, now that we have viruri. * tests/Makefile.am (check_PROGRAMS, TESTS, qparamtest_SOURCES): Delete old test. * .gitignore: Add recent test additions.
-
- 23 3月, 2012 3 次提交
-
-
由 Daniel P. Berrange 提交于
* src/util/virauth.c, src/util/virauth.h: Add virAuthGetConfigFilePath * include/libvirt/virterror.h, src/util/virterror.c: Add VIR_FROM_AUTH error domain Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
The '.ini' file format is a useful alternative to the existing config file style, when you need to have config files which are hashes of hashes. The 'virKeyFilePtr' object provides a way to parse these file types. * src/Makefile.am, src/util/virkeyfile.c, src/util/virkeyfile.h: Add .ini file parser * tests/Makefile.am, tests/virkeyfiletest.c: Test basic parsing capabilities Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
To ensure we properly escape & unescape IPv6 numeric addresses, add a test case * tests/Makefile.am, tests/viruritest.c: URI parsing test Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 29 2月, 2012 1 次提交
-
-
由 Daniel Veillard 提交于
commit f27f616f broke "make dist" by adding qemumonitortest which is a generated binary to the EXTRA_DIST, hence breaking "make dist"
-
- 28 2月, 2012 1 次提交
-
-
由 Josh Durgin 提交于
QMP commands don't need to be escaped since converting them to json also escapes special characters. When a QMP command fails, however, libvirt falls back to HMP commands. These fallback functions (qemuMonitorText*) do their own escaping, and pass the result directly to qemuMonitorHMPCommandWithFd. If the monitor is in json mode, these pre-escaped commands will be escaped again when converted to json, which can result in the wrong arguments being sent. For example, a filename test\file would be sent in json as test\\file. This prevented attaching an image file with a " or \ in its name in qemu 1.0.50, and also broke rbd attachment (which uses backslashes to escape some internal arguments.) Reported-by: NMasuko Tomoya <tomoya.masuko@gmail.com> Signed-off-by: NJosh Durgin <josh.durgin@dreamhost.com> Signed-off-by: NEric Blake <eblake@redhat.com>
-
- 25 2月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
The /usr/include/python/pyconfig.h file pollutes the global namespace with a huge number of HAVE_XXX and WITH_XXX defines. These change what we detected in our own config.h In particular if you try to build without DTrace, python's headers turn it back on with predictable fail. THe hack to workaround this is to rename WITH_DTRACE to WITH_DTRACE_PROBES to avoid the namespace clash
-
- 04 2月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Our syntax checker missed all-lower-case variables (this will be fixed by the next .gnulib update). Additionally, anywhere that we mix in-tree files with generated files, automake recommends listing builddir prior to srcdir for VPATH builds. * src/Makefile.am (*_la_CFLAGS): Favor $(top_srcdir). (INCLUDES): Likewise, and follow automake recommendations on builddir before srcdir. * python/Makefile.am (INCLUDES): Swap directory order. * tests/Makefile.am (INCLUDES): Likewise. * tools/Makefile.am (INCLUDES): Likewise. * daemon/Makefile.am (INCLUDES): Likewise. (libvirtd.init, libvirtd.service): Favor $(). * examples/hellolibvirt/Makefile.am (hellolibvirt_LDADD): Likewise. * examples/openauth/Makefile.am (openauth_LDADD): Likewise. * examples/dominfo/Makefile.am (INCLUDES): Drop dead include. * examples/domsuspend/Makefile.am (INCLUDES): Likewise.
-
- 26 1月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
In preparation for the patch to include Murmurhash3, which introduces a virhashcode.h and virhashcode.c files, rename the existing hash.h and hash.c to virhash.h and virhash.c respectively.
-
- 30 11月, 2011 1 次提交
-
-
由 Daniel P. Berrange 提交于
The logging APIs need to be able to generate formatted timestamps using only async signal safe functions. This rules out using gmtime/localtime/malloc/gettimeday(!) and much more. Introduce a new internal API which is async signal safe. virTimeMillisNowRaw replacement for gettimeofday. Uses clock_gettime where available, otherwise falls back to the unsafe gettimeofday virTimeFieldsNowRaw replacements for gmtime(), convert a timestamp virTimeFieldsThenRaw into a broken out set of fields. No localtime() replacement is provided, because converting to local time is not practical with only async signal safe APIs. virTimeStringNowRaw replacements for strftime() which print a timestamp virTimeStringThenRaw into a string, using a pre-determined format, with a fixed size buffer (VIR_TIME_STRING_BUFLEN) For each of these there is also a version without the Raw postfix which raises a full libvirt error. These versions are not async signal safe * src/Makefile.am, src/util/virtime.c, src/util/virtime.h: New files * src/libvirt_private.syms: New APis * configure.ac: Check for clock_gettime in -lrt * tests/virtimetest.c, tests/Makefile.am: Test new APIs
-
- 21 10月, 2011 1 次提交
-
-
由 Eric Blake 提交于
Add a test for the simple parts of my indentation changes, and fix the fallout. * tests/domainsnapshotxml2xmltest.c: New test. * tests/Makefile.am (domainsnapshotxml2xmltest_SOURCES): Build it. * src/conf/domain_conf.c (virDomainSnapshotDefFormat): Avoid NULL deref, match documented order. * src/conf/domain_conf.h (virDomainSnapshotDefFormat): Add const. * tests/domainsnapshotxml2xmlout/all_parameters.xml: Tweak output. * tests/domainsnapshotxml2xmlout/disk_snapshot.xml: Likewise. * tests/domainsnapshotxml2xmlout/full_domain.xml: Likewise. * .gitignore: Exempt new binary.
-
- 19 10月, 2011 1 次提交
-
-
由 Philipp Hahn 提交于
Add test cases for parsing the qemu-name-space. This is based on qemuxml2argv{test,data/}, but can not reside in qemuxml2argv{test,data/} because ... 1. qemuxmlns-qemu-ns-domain.xml is not schema-valid and breaks domainschematest. The test is still important to detect xmlns:qemu bindings to a name-space other than http://libvirt.org/schemas/domain/qemu/1.0 2. they break qemuxml2xml, because the xmlns:qemu binding is moved to the top-level <domain> element when converting from argv to xml. Signed-off-by: NPhilipp Hahn <hahn@univention.de>
-
- 12 10月, 2011 2 次提交
-
-
由 Eric Blake 提交于
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.
-
由 Jiri Denemark 提交于
-
- 17 9月, 2011 1 次提交
-
-
由 Daniel P. Berrange 提交于
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.
-
- 30 7月, 2011 1 次提交
-
-
由 Eric Blake 提交于
POSIX states that 'a=1; a=2 b=$a command' has unspecified results for the value of $b visible within command. In particular, on BSD, this resulted in PATH not picking up the in-test ssh. * tests/Makefile.am (lv_abs_top_builddir): New macro. (path_add, TESTS_ENVIRONMENT): Use it to avoid referring to an environment variable set previously within the same command line. Reported by Matthias Bolte.
-
- 29 7月, 2011 2 次提交
-
-
由 Matthias Bolte 提交于
Gettext annoyingly modifies CPPFLAGS in-place, putting -I/usr/local/include into the search patch if libintl headers must be used from that location. But since we must support automake 1.9.6 which lacks AM_CPPFLAGS, and since CPPFLAGS is used prior to INCLUDES, this means that the build picks up the _old_ installed libvirt.h in priority to the in-tree version, leading to all sorts of weird build failures on FreeBSD. Fix this by teaching configure to undo gettext's actions, but to keep any changes required by gettext at the end of INCLUDES after all in-tree locations are used first. Also requires adding a wrapper Makefile.am and making gnulib-tool create just gnulib.mk files during the bootstrap process. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Eric Blake 提交于
I went with the shorter license notice used by src/libvirt.c, rather than spelling out the full LGPLv2+ clause into each of these files. * configure.ac: Declare copyright. * all Makefile.am: Likewise.
-
- 25 7月, 2011 1 次提交
-
-
由 Eric Blake 提交于
Even though gnutls is a hard-req for libvirt, and gnutls depends on libtasn1, that does not mean that you have to have the libtasn1 development files installed. Skip the test rather than failing compilation in that case. With newer gcc, the test consumed too much stack space. Move things to static storage to fix that. * configure.ac (AC_CHECK_HEADERS): Check for libtasn1.h. (HAVE_LIBTASN1): New automake conditional. * tests/Makefile.am (virnettlsconvirnettlscontexttest_SOURCES) (virnettlscontexttest_LDADD): Allow compilation without libtasn1. * tests/virnettlscontexttest.c: Skip test if headers not present. (struct testTLSCertReq): Alter time members. (testTLSGenerateCert): Reflect the change. (mymain): Reduce stack usage.
-