virt: Regex strings must begin with r

Signed-off-by: Chris Evich <cevich@redhat.com>
virttest.aexpect: Close tail thread fd on thread end

When the aexpect "tail" thread is requested to stop, take the chance
and close the filedescriptor being used by that thread. This makes up
for a big decrease in the number of open fds over the course of a
default virt test set. Before the patch, in 10 migrations tests
executed, the evolution of fds open is:

26 -> 31 -> 36 -> 41 -> 46 -> 51 -> 56 -> 61 -> 66 -> 71

After the patch, the evolution goes:

23 -> 25 -> 27 -> 29 -> 31 -> 33 -> 35 -> 37 -> 39 -> 40

That's quite a nice cleanup.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
virttest.qemu_vm: Make the qemu process a Tail object rather than Expect

Checking up the qemu vm code, I noticed that none of the
uses of vm.process actually requires it to be an Expect
object. By using a Tail object, we obtain the same features
we've been using the code for, and we get rid of an extra
expect reader pipe, that ends up accumulating over the course
of the tests.

So make a function aexpect.run_tail(), nearly identical to
aexpect.run_bg(), and make vm.process to be a tail object.
With this change,  we further reduce the open number of open
fds from:

23 -> 25 -> 27 -> 29 -> 31 -> 33 -> 35 -> 37 -> 39 -> 40

to:

22 -> 23 -> 24 -> 25 -> 26 -> 26 -> 28 -> 29 -> 30 -> 31

If you guys can see any disadvantages of simplifying things
here, let me know.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
virttest.aexpect: Don't remove inpipe server side

The clients will do that on close() anyway.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
virttest.aexpect: Introduce server side logging

Make the aexpect server able to log into a file. As it
is, we don't really have an easy way to tell what's going
on in there.

On later patches, we'll implement better ways to manage
files generated by aexpect, as well as debugging mechanisms.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
virttest.aexpect: Change file/log directory structure

Instead of having a flat structure of files

BASE_DIR/[filename]-[aexpect_instance]

Make the aexpect instance the parent dir of the files

BASE_DIR/[aexpect_instance]/filename

That makes it easy to see the number of open aexpect
controlled process at any given point in time, while
keeping information available.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
Merge pull request #1098 from autotest/fd-leak

virttest.aexpect: FD leak fixes
virttest.env_process: Tcpdump is stopped too early

Tcpdump is required to get ARP ip when calling wait_for_login.
Stopping it before wait_for_login will make wait_for_login hang for 240s

Signed-off-by: Hao Liu <hliu@redhat.com>
libvirt-tests: Backup inactive domain XML

* Added option to toggle saving active or inactive domain XML for
  libvirt_vm.backup_xml

* Added '--inactive' option when dumping xml for backup when calling
  virsh.dumpxml or libvirt_vm.backup_xml. Without this option, the new
  domain restored will change its inactive xml like following diff permanently.

* using vmXML.new_from_inactive_xml instead of vmXML.new_from_xml to
  backup domain.

```diff
@@ -41,7 +41,9 @@
       <target type='serial' port='0'/>
     </console>
     <input type='mouse' bus='ps2'/>
-    <graphics type='vnc' port='-1' autoport='yes'/>
+    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
+      <listen type='address' address='127.0.0.1'/>
+    </graphics>
     <video>
       <model type='cirrus' vram='9216' heads='1'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
@@ -50,4 +52,5 @@
       <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0'/>
     </memballoon>
   </devices>
+  <seclabel type='dynamic' model='selinux' relabel='yes'/>
 </domain>
```

Signed-off-by: Hao Liu <hliu@redhat.com>
virttest.utils_env: Check the whether the key is none before using it.

When get vm objects from Env object, the key of the data maybe None.
if the key is None, will raise error like:
   'NoneType' object has no attribute 'startswith'.

Signed-off-by: Yunping Zheng <yunzheng@redhat.com>
Merge pull request #1109 from humanux/env_issue

virttest.utils_env: Check the whether the key is none before using it.
virsh_secret_set_get: Prepare for upstream change

An upstream change to libvirt:

https://www.redhat.com/archives/libvir-list/2013-November/msg00400.html

results in the output starting with a single space rather than
at the beginning of the line - this change will account for that
with an appropriately placed '.lstrip()'.

Also, if fail the check for the existence of the base64_file, then
indicate that's what the failure is rather than what would be a
false message of "The secret value mismatch with result" because
the secret_decoded_string is empty.
virsh_volume: Adjust for upstream change

Upstream change adjusted the output of the virsh vol-list command
output to have a space in the front of the line, see:

https://www.redhat.com/archives/libvir-list/2013-November/msg00380.html

Add a strategic ".lstrip()" to the re.search() on the output
qemu.tests: add enable s3/s4 params for qemu_guest_agent.cfg

since miss the enable s3/s4 params when create the qemu-kvm command
for qemu_guest_agent..check_suspend test.

Signed-off-by: Shuping Cui <scui@redhat.com>
qemu.test: add test case for guest suspend under nic stress

This patch add test case of guest suspend under nic stress

Signed-off-by: Yunping Zheng <yunzheng@redhat.com>
virt.test: modify vhost config for file_transfer test

Currently for non-MSIX guest, qemu will disable vhost_net automatically,
even vhost is enabled. using vhostfoce=on to force enable vhost-net.
This patch modify the test configuration, only test "vhostforce=on"
on non-MSIX guest.

Signed-off-by: Yunping Zheng <yunzheng@redhat.com>
virttest.utils_test.__init__: Add detail error log in get_time()

Also PEP8 fixes in get_time function

Signed-off-by: Feng Yang <fyang@redhat.com>
shared.cfg.guest-hw: Add raw_dd variant.

This variant test raw image which created by dd command.

Signed-off-by: Feng Yang <fyang@redhat.com>
qemu.cfg.virtual_nic_send_buffer: Update configure for netperf_udp sub case.

We change to use netperf under shard/deps folder by default in netperf_udp.
So update virtual_nic_send_buffer.

Signed-off-by: Feng Yang <fyang@redhat.com>
qemu.cfg.host-kernel: Set nettype to bridge when vhost used

vhost only works nettype = bridge

Signed-off-by: Feng Yang <fyang@redhat.com>