1. 19 2月, 2016 2 次提交
    • C
      domain: add implicit controllers from post parse · 4066c734
      Cole Robinson 提交于
      Seems like the natural fit, since we are already adding other XML bits
      in the PostParse routine.
      
      Previously AddImplicitControllers was only called at the end of XML
      parsing, meaning code that builds a DomainDef by hand had to manually
      call it. Now those PostParse callers get it for free.
      
      There's some test churn here; xen xm and sexpr test suite bits weren't
      calling this before, but now they are, so you'll see new IDE controllers.
      I don't think this will cause problems in practice, since the code already
      needs to handle these implicit controllers like in the case when a user
      defines their own XML.
      4066c734
    • A
      test: qemuxml2argv: Drop QEMU_CAPS_DEVICE uses · b6c40bd5
      Andrea Bolognani 提交于
      Since commit 51045df0, the QEMU_CAPS_DEVICE capability is enabled
      automatically and shouldn't be passed as an argument to DO_TEST();
      however, commit 998a936c accidentally introduced few such uses.
      b6c40bd5
  2. 18 2月, 2016 6 次提交
    • C
      tests: Remove unused virtTestClearLineRegex · ad859090
      Cole Robinson 提交于
      This was only used for test 'xml blanking', which has now all
      been removed, and isn't an ideal paradigm anyways since it
      inhibits easy XML regeneration.
      ad859090
    • C
      tests: lxcconf2xml: Drop XML blanking · 1064fb33
      Cole Robinson 提交于
      Hardcode a UUID like we did for qemuargv2xml, so we can use standard
      comparison helpers, which gives us VIR_TEST_REGENERATE_OUTPUT support
      1064fb33
    • C
      tests: qemuargv2xml: Drop memory XML blanking · 2fc011fe
      Cole Robinson 提交于
      The memory XML blanking is only there to avoid the unit= churn that
      was added by default a long time ago.
      
      Drop the blanking, switch over to using the standard comparison
      helpers, and regenerate the output with VIR_TEST_REGENERATE_OUTPUT.
      2fc011fe
    • C
      tests: qemuargv2xml: hardcode disk auth usage · 73ed1d74
      Cole Robinson 提交于
      If a qemuargv has iscsi or ceph secrets on the command line, we will
      convert that to XML like:
      
        <auth username='myname'>
          <secret type='iscsi'/>
        </auth>
      
      This is not valid XML, as either a UUID or usage must be specified in
      the secret block. It's not clear though how the argv2xml code can do
      anything correct here, since XML like this requires a libvirt secret
      object to have already been defined.
      
      The current test suite handles this by blanking out any <secret> block
      in the XML. This avoids domainschematest failures.
      
      Instead of blanking, let's hardcode a usage= name. This lets us test
      the other bits of generated <secret> XML, and is a step towards wiring
      up VIR_TEST_REGENERATE_OUTPUT
      73ed1d74
    • C
      tests: qemuargv2xml: Remove UUID randomness · b25027ba
      Cole Robinson 提交于
      Overwrite any randomly generated UUID to use a hardcoded value, so
      we don't need to blank it when comparing XML.
      b25027ba
    • C
      tests: qemuargv2xml: Remove unneeded XML blanking · 7973c0ef
      Cole Robinson 提交于
      None of the test cases depend on dropping these XML bits
      7973c0ef
  3. 17 2月, 2016 4 次提交
    • E
      virnetdaemon: Store servers in a hash table · 252610f7
      Erik Skultety 提交于
      Since the daemon can manage and add (at fresh start) multiple servers,
      we also should be able to add them from a JSON state file in case of a
      daemon restart, so post exec restart support for multiple servers is also
      provided. Patch also updates virnetdaemontest accordingly.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      252610f7
    • E
      util: Refactor virHashForEach so it returns as soon as an iterator fails · 353de572
      Erik Skultety 提交于
      The method will now return 0 on success and -1 on error, rather than number of
      items which it iterated over before it returned back to the caller. Since the
      only place where we actually check the number of elements iterated is in
      virhashtest, return value of 0 and -1 can be a pretty accurate hint that it
      iterated over all the items. However, if we really want to know the number of
      items iterated over (like virhashtest does), a counter has to be provided
      through opaque data to each iterator call. This patch adjusts return value of
      virHashForEach, refactors the body, so it returns as soon as one of the
      iterators fail and adjusts virhashtest to reflect these changes.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      353de572
    • E
      util: Add a return value to void hash iterators · cc48d3a1
      Erik Skultety 提交于
      Our existing virHashForEach method iterates through all items disregarding the
      fact, that some of the iterators might have actually failed. Errors are usually
      dispatched through an error element in opaque data which then causes the
      original caller of virHashForEach to return -1. In that case, virHashForEach
      could return as soon as one of the iterators fail. This patch changes the
      iterator return type and adjusts all of its instances accordingly, so the
      actual refactor of virHashForEach method can be dealt with later.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      cc48d3a1
    • J
      qemu: Move qemuAssign*Alias* API's into their own module · de71e0e5
      John Ferlan 提交于
      Create a new module qemu_alias.c to handle the qemuAssign*Alias* APIs
      and the qemuDomainDeviceAliasIndex
      de71e0e5
  4. 16 2月, 2016 3 次提交
    • A
      tests: Add more GIC test cases · 998a936c
      Andrea Bolognani 提交于
      Test all kinds of scenarios, including guests asking for GIC but
      failing to specify a version, guests specifying an invalid version
      and guests trying to use GIC with non-virt or even non-ARM machines.
      998a936c
    • A
      tests: Reorganize and simplify GIC test cases · 161a3418
      Andrea Bolognani 提交于
      Unify the naming to prepare for new test cases that will be added
      later on.
      
      Convert a couple of output XML files for the qemuxml2xml test to
      symlinks while at it, since they were identical to the corresponding
      input XML files anyways.
      
      Moreover, since we're only interested in testing GIC support here,
      simplify XML files by getting rid of the unrelevant bits.
      161a3418
    • A
      qemu: Always enable GIC on ARM virt machines · bd236950
      Andrea Bolognani 提交于
      GIC is always available to ARM virt machines, and the domain XML should
      reflect this fact.
      bd236950
  5. 12 2月, 2016 4 次提交
    • M
      virportallocatortest: Run on linux only · 26946f67
      Michal Privoznik 提交于
      After the rework of mocking of our tests there's the
      virportallocator test failing to link on mingw. Well, it's the
      mocking library actually:
      
      ../gnulib/lib/.libs/libgnu.a(bind.o): In function `rpl_bind':
      /home/jenkins/libvirt-mingw/build32/gnulib/lib/../../../gnulib/lib/bind.c:33: multiple definition of `rpl_bind'
      .libs/virportallocatormock_la-virportallocatormock.o:/home/jenkins/libvirt-mingw/build32/tests/../../tests/virportallocatormock.c:79: first defined here
      
      I've no idea why this matters to mingw and does not to others.
      Nevertheless, if we make the test linux only the problem goes
      away.
      
      Apparently, our test for RTLD_NEXT is not sufficient because
      mingw32 defines it. Lets put aside for a while fact that it has
      the same value as RTLD_DEFAULT which by description has different
      meaning, shall we?
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      26946f67
    • A
      tests: Rename virmockdbus -> virdbusmock for consistency · 92ec2e5e
      Andrea Bolognani 提交于
      All mock libraries were called vir*mock except for this one; now
      the naming is consistent across the board.
      92ec2e5e
    • A
      tests: Don't use "lib" prefix for mock libraries · f6d6d21f
      Andrea Bolognani 提交于
      virportallocatormock was the only one using it, and has been
      changed accordingly.
      f6d6d21f
    • A
      tests: Split off the mock part of the port allocator test · caf8d479
      Andrea Bolognani 提交于
      Instead of compiling either the mock or the non-mock part of the
      file based on a compiler flag, split the mock part off to its
      own file.
      caf8d479
  6. 11 2月, 2016 6 次提交
    • A
      tests: Link mock libraries against gnulib and gnulib only · 1ed0bdd8
      Andrea Bolognani 提交于
      Mock libraries should not be linked against libvirt, but some of
      them did - fix that.
      
      On the other hand, not linking against gnulib can cause build
      failures on mingw, so define a new $(MOCKLIBS_LIBS) variable and
      use it everywhere.
      1ed0bdd8
    • A
      tests: Use plain close() in mock code · a03cbfe0
      Andrea Bolognani 提交于
      The virportallocatortest.c file is compiled both as a test case
      and as a mock library; in the latter case, it can't use
      VIR_FORCE_CLOSE() because mock libraries are not linked against
      libvirt.
      
      Replace VIR_FORCE_CLOSE() with plain close() to solve the issue.
      a03cbfe0
    • M
      dbus: Don't unref NULL messages · 862298a2
      Michal Privoznik 提交于
      Apparently we are not the only ones with dumb free functions
      because dbus_message_unref() does not accept NULL either. But if
      I were to vote, this one is even more evil. Instead of returning
      an error just like we do it immediately dereference any pointer
      passed and thus crash you app. Well done DBus!
      
        Program received signal SIGSEGV, Segmentation fault.
        [Switching to Thread 0x7f878ebda700 (LWP 31264)]
        0x00007f87be4016e5 in ?? () from /usr/lib64/libdbus-1.so.3
        (gdb) bt
        #0  0x00007f87be4016e5 in ?? () from /usr/lib64/libdbus-1.so.3
        #1  0x00007f87be3f004e in dbus_message_unref () from /usr/lib64/libdbus-1.so.3
        #2  0x00007f87bf6ecf95 in virSystemdGetMachineNameByPID (pid=9849) at util/virsystemd.c:228
        #3  0x00007f879761bd4d in qemuConnectCgroup (driver=0x7f87600a32a0, vm=0x7f87600c7550) at qemu/qemu_cgroup.c:909
        #4  0x00007f87976386b7 in qemuProcessReconnect (opaque=0x7f87600db840) at qemu/qemu_process.c:3386
        #5  0x00007f87bf6edfff in virThreadHelper (data=0x7f87600d5580) at util/virthread.c:206
        #6  0x00007f87bb602334 in start_thread (arg=0x7f878ebda700) at pthread_create.c:333
        #7  0x00007f87bb3481bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
        (gdb) frame 2
        #2  0x00007f87bf6ecf95 in virSystemdGetMachineNameByPID (pid=9849) at util/virsystemd.c:228
        228         dbus_message_unref(reply);
        (gdb) p reply
        $1 = (DBusMessage *) 0x0
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      862298a2
    • J
      qemu: Split the command parsing routines into own module · d860b2f5
      John Ferlan 提交于
      Extract out the qemuParseCommandLine{String|Pid} into their own
      separate module - taking with it all the various static functions.
      
      Causes a ripple effect with a few other modules to include the
      new qemu_parse_command.h.
      
      Narrowed down the list of #include's in the split out module to
      those that are necessary for build.
      d860b2f5
    • A
      Revert "tests: Don't link mock libraries against libvirt and gnulib" · 51c70705
      Andrea Bolognani 提交于
      This reverts commit 6aa90452.
      
      Turns out that not linking against libvirt and gnulib is okay for
      regular Linux (and FreeBSD) builds, but makes mingw very unhappy.
      
        .../virnetserverclientmock_la-virnetserverclientmock.o:
          In function `virNetSocketGetSELinuxContext':
          .../virnetserverclientmock.c:61: undefined reference to `rpl_strdup'
        .../libvirportallocatormock_la-virportallocatortest.o:
          In function `init_syms':
          .../virportallocatortest.c:61: undefined reference to `virFileClose'
      51c70705
    • A
      tests: Don't link mock libraries against libvirt and gnulib · 6aa90452
      Andrea Bolognani 提交于
      Mock libraries are used with LD_PRELOAD from test binaries that
      are already linked against those libraries, so they will be able
      to resolve the symbols anyway.
      6aa90452
  7. 10 2月, 2016 7 次提交
    • C
      tests: qemu: More aarch64 virtio and pci tests · 5a1ccaeb
      Cole Robinson 提交于
      Clarify the point of some of the test cases by renaming them. Add more
      xml2xml tests.
      5a1ccaeb
    • C
      tests: qemuxml2xml: assign device addresses · c1c4d0d5
      Cole Robinson 提交于
      We use the PreFormat callback for this. Many test cases need to be extended
      to pass in proper qemuCaps flags so AssignAddresses doesn't throw errors.
      
      One test case (pcie-root-port-too-many) is dropped, since it was meant
      only for checking an error condition in qemuxml2argv, and one we add in
      AssignAddresses it errors here too.
      
      Long term I think AssignAddresses should be handled in qemu's PostParse
      callback, but that's not entirely straightforward. Handling it here
      means we can get the test suite churn over with.
      c1c4d0d5
    • C
      tests: utils: Add PreFormat callback for CompareXML2XML helper · 8e0fd243
      Cole Robinson 提交于
      This allows individual driver tests to hook in their own code before
      the def is formatted and compared.
      
      We will eventually use this in the qemuxml2xml
      8e0fd243
    • M
      virStringListLength: Ensure const correctness · d1a71023
      Michal Privoznik 提交于
      The virStringListLength function does not ever modify the passed
      string list. It merely counts the items in it. Make sure that we
      reflect this bit in the function header.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      
      (crobinso: fix up spacing and squash in sheepdog bit suggested
       by Andrea)
      d1a71023
    • C
      tests: qemuxml2xml: specify qemuCaps in test cases · 129c3532
      Cole Robinson 提交于
      Similar to how we do it for qemuxml2argvtest. This will be used in future
      patches.
      129c3532
    • C
      tests: Unconditionally enable QEMU_CAPS_DEVICE · 51045df0
      Cole Robinson 提交于
      QEMU_CAPS_DEVICE is always enabled for qemu binaries we support.
      Sync qemuxml2* to match, and regenerate all test output.
      51045df0
    • C
      tests: qemuxml2argv: remove some QEMU_CAPS_DEVICE problem cases · e9394d69
      Cole Robinson 提交于
      When we unconditionally enable QEMU_CAPS_DEVICE, these tests need
      some massaging, so do it ahead of time to not mix it in with the
      big test refresh.
      
      - minimal-s390 is not a real world working config, so drop it
      - disk-usb was testing for an old code path that will be removed.
        instead use it to test lack of USB disk support, and rename it
        to disk-usb-nosupport. Switch xml2xml to use disk-usb-device for
        input.
      - cputune-numatune was needlessly using q35, switch it to an older
        machine type
      e9394d69
  8. 09 2月, 2016 1 次提交
    • C
      tests: qemuxml2xml: Always use different output file · d093d623
      Cole Robinson 提交于
      Most qemuxml2xml tests expect that the input XML is unchanged after
      parsing. This is unlike 99% of new qemu configs in the wild, which after
      initial parsing end up with stable PCI device addresses. The xml2xml bit
      doesn't currently hit that code path though, so most XML testing indeed
      does not change.
      
      Future patches will add that PCI address bits, which means most test cases
      will have different output. So let's do away with the hardcoded same vs
      different test split, and always track a separate output file. Tests can
      still have same input and output, it just necessitates 2 separate XML files.
      d093d623
  9. 08 2月, 2016 3 次提交
  10. 06 2月, 2016 2 次提交
    • C
      tests: qemuargv2xml: separate from qemuxml2argv data · e117bf64
      Cole Robinson 提交于
      Most of the qemuargv2xml tests are parsing old style qemu command
      lines (with -disk, -serial, etc), and it gets its input from
      qemuxml2argv output.
      
      But since we've raise the minimum supported qemu version to 0.12.0,
      which supports -device, once that changes propagates through libvirt
      the vast majority of qemuxml2argv output is _not_ going to be using
      old style qemu options.
      
      In preparation for this, switch qemuargv2xml to use its own copies
      of input and output, so it's not tied to qemuxml2argv results.
      
      This is just a straight copy of the current tests.
      e117bf64
    • C
      tests: Run test-wrap-argv with REGENERATE_OUTPUT · 3e9033f7
      Cole Robinson 提交于
      To get properly wrapped output
      3e9033f7
  11. 05 2月, 2016 2 次提交