xref: /openbmc/qemu/tests/vm/netbsd (revision 31719c37f500a62aeb739ddeea87db89e8c2fcb1)
15cd2b138SFam Zheng#!/usr/bin/env python
25cd2b138SFam Zheng#
35cd2b138SFam Zheng# NetBSD VM image
45cd2b138SFam Zheng#
55cd2b138SFam Zheng# Copyright 2017 Red Hat Inc.
65cd2b138SFam Zheng#
75cd2b138SFam Zheng# Authors:
85cd2b138SFam Zheng#  Fam Zheng <famz@redhat.com>
95cd2b138SFam Zheng#
105cd2b138SFam Zheng# This code is licensed under the GPL version 2 or later.  See
115cd2b138SFam Zheng# the COPYING file in the top-level directory.
125cd2b138SFam Zheng#
135cd2b138SFam Zheng
145cd2b138SFam Zhengimport os
155cd2b138SFam Zhengimport sys
165cd2b138SFam Zhengimport subprocess
175cd2b138SFam Zhengimport basevm
185cd2b138SFam Zheng
195cd2b138SFam Zhengclass NetBSDVM(basevm.BaseVM):
205cd2b138SFam Zheng    name = "netbsd"
21*31719c37SPhilippe Mathieu-Daudé    arch = "x86_64"
225cd2b138SFam Zheng    BUILD_SCRIPT = """
235cd2b138SFam Zheng        set -e;
2444b69d50SPeter Maydell        rm -rf /var/tmp/qemu-test.*
255cd2b138SFam Zheng        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
265cd2b138SFam Zheng        tar -xf /dev/rld1a;
275cd2b138SFam Zheng        ./configure --python=python2.7 {configure_opts};
28f2d4becdSPeter Maydell        gmake --output-sync -j{jobs} {verbose};
29f2d4becdSPeter Maydell        gmake --output-sync -j{jobs} check {verbose};
305cd2b138SFam Zheng    """
315cd2b138SFam Zheng
325cd2b138SFam Zheng    def build_image(self, img):
335cd2b138SFam Zheng        cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz",
345cd2b138SFam Zheng                                         sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732')
355cd2b138SFam Zheng        img_tmp_xz = img + ".tmp.xz"
365cd2b138SFam Zheng        img_tmp = img + ".tmp"
375cd2b138SFam Zheng        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
385cd2b138SFam Zheng        subprocess.check_call(["xz", "-df", img_tmp_xz])
395cd2b138SFam Zheng        if os.path.exists(img):
405cd2b138SFam Zheng            os.remove(img)
415cd2b138SFam Zheng        os.rename(img_tmp, img)
425cd2b138SFam Zheng
435cd2b138SFam Zhengif __name__ == "__main__":
445cd2b138SFam Zheng    sys.exit(basevm.main(NetBSDVM))
45