qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

tests: Add OpenBSD image

The image is prepared following instructions as in:

https://wiki.qemu.org/Hosts/BSD

Signed-off-by: Fam Zheng <famz@redhat.com>

+43
+43
tests/vm/openbsd
··· 1 + #!/usr/bin/env python 2 + # 3 + # OpenBSD VM image 4 + # 5 + # Copyright 2017 Red Hat Inc. 6 + # 7 + # Authors: 8 + # Fam Zheng <famz@redhat.com> 9 + # 10 + # This code is licensed under the GPL version 2 or later. See 11 + # the COPYING file in the top-level directory. 12 + # 13 + 14 + import os 15 + import sys 16 + import subprocess 17 + import basevm 18 + 19 + class OpenBSDVM(basevm.BaseVM): 20 + name = "openbsd" 21 + BUILD_SCRIPT = """ 22 + set -e; 23 + cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); 24 + tar -xf /dev/rsd1c; 25 + ./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 --python=python2.7 {configure_opts}; 26 + gmake -j{jobs}; 27 + # XXX: "gmake check" seems to always hang or fail 28 + #gmake check; 29 + """ 30 + 31 + def build_image(self, img): 32 + cimg = self._download_with_cache("http://download.patchew.org/openbsd-6.1-amd64.img.xz", 33 + sha256sum='8c6cedc483e602cfee5e04f0406c64eb99138495e8ca580bc0293bcf0640c1bf') 34 + img_tmp_xz = img + ".tmp.xz" 35 + img_tmp = img + ".tmp" 36 + subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) 37 + subprocess.check_call(["xz", "-df", img_tmp_xz]) 38 + if os.path.exists(img): 39 + os.remove(img) 40 + os.rename(img_tmp, img) 41 + 42 + if __name__ == "__main__": 43 + sys.exit(basevm.main(OpenBSDVM))