xref: /openbmc/qemu/tests/vm/openbsd (revision 3d9569b8)
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
14import os
15import sys
16import subprocess
17import basevm
18
19class OpenBSDVM(basevm.BaseVM):
20    name = "openbsd"
21    arch = "x86_64"
22    BUILD_SCRIPT = """
23        set -e;
24        rm -rf /var/tmp/qemu-test.*
25        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
26        tar -xf /dev/rsd1c;
27        ./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 --python=python2.7 {configure_opts};
28        gmake --output-sync -j{jobs} {verbose};
29        # XXX: "gmake check" seems to always hang or fail
30        #gmake --output-sync -j{jobs} check {verbose};
31    """
32
33    def build_image(self, img):
34        cimg = self._download_with_cache("http://download.patchew.org/openbsd-6.1-amd64.img.xz",
35                sha256sum='8c6cedc483e602cfee5e04f0406c64eb99138495e8ca580bc0293bcf0640c1bf')
36        img_tmp_xz = img + ".tmp.xz"
37        img_tmp = img + ".tmp"
38        sys.stderr.write("Extracting the image...\n")
39        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
40        subprocess.check_call(["xz", "-dvf", img_tmp_xz])
41        if os.path.exists(img):
42            os.remove(img)
43        os.rename(img_tmp, img)
44
45if __name__ == "__main__":
46    sys.exit(basevm.main(OpenBSDVM))
47