diff mbox series

[v4,06/10] tests: Add NetBSD image

Message ID 20170828174707.20786-7-famz@redhat.com
State New
Headers show
Series tests: Add VM based build tests (for non-x86_64 and/or non-Linux) | expand

Commit Message

Fam Zheng Aug. 28, 2017, 5:47 p.m. UTC
The image is prepared following instructions as in:

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

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Kamil Rytarowski <n54@gmx.com>
---
 tests/vm/netbsd | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100755 tests/vm/netbsd

Comments

Philippe Mathieu-Daudé Aug. 29, 2017, 12:09 p.m. UTC | #1
On 08/28/2017 02:47 PM, Fam Zheng wrote:
> The image is prepared following instructions as in:
> 
> https://wiki.qemu.org/Hosts/BSD
> 
> Signed-off-by: Fam Zheng <famz@redhat.com>
> Reviewed-by: Kamil Rytarowski <n54@gmx.com>
> ---
>   tests/vm/netbsd | 42 ++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 42 insertions(+)
>   create mode 100755 tests/vm/netbsd
> 
> diff --git a/tests/vm/netbsd b/tests/vm/netbsd
> new file mode 100755
> index 0000000000..559e89c8a6
> --- /dev/null
> +++ b/tests/vm/netbsd
> @@ -0,0 +1,42 @@
> +#!/usr/bin/env python
> +#
> +# NetBSD VM image
> +#
> +# Copyright (C) 2017 Red Hat Inc.
> +#
> +# Authors:
> +#  Fam Zheng <famz@redhat.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2.  See
> +# the COPYING file in the top-level directory.
> +#
> +
> +import os
> +import sys
> +import subprocess
> +import basevm
> +
> +class NetBSDVM(basevm.BaseVM):
> +    name = "netbsd"
> +    BUILD_SCRIPT = """
> +        set -e;
> +        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
> +        tar -xf /dev/rld1a;
> +        ./configure --python=python2.7 {configure_opts};
> +        gmake -j{jobs};
> +        gmake check;
> +    """
> +
> +    def build_image(self, img):
> +        cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz",
> +                                         sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732')
> +        img_tmp_xz = img + ".tmp.xz"
> +        img_tmp = img + ".tmp"
> +        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
> +        subprocess.check_call(["xz", "-df", img_tmp_xz])
> +        if os.path.exists(img):
> +            os.remove(img)
> +        os.rename(img_tmp, img)
> +
> +if __name__ == "__main__":
> +    sys.exit(basevm.main(NetBSDVM))

This one is failing:

DEBUG:root:ssh_cmd: ssh -q -o StrictHostKeyChecking=no -o 
UserKnownHostsFile=/dev/null -o ConnectTimeout=1 -p 34091 -i 
/tmp/qemu-vm-59XYOj/id_rsa qemu@127.0.0.1
         set -e;
         cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
         tar -xf /dev/rld1a;
         ./configure --python=python2.7 ;
         gmake -j4;
         gmake check;

...
   CC      bt-host.o
   CC      bt-vhci.o
   CC      dma-helpers.o
   CC      vl.o
   CC      tpm.o
In file included from vl.c:72:0:
/var/tmp/qemu-test.ht0XHU/include/hw/loader.h:4:29: fatal error: 
hw/nvram/fw_cfg.h: No such file or directory
  #include "hw/nvram/fw_cfg.h"
                              ^
compilation terminated.
/var/tmp/qemu-test.ht0XHU/rules.mak:66: recipe for target 'vl.o' failed
gmake: *** [vl.o] Error 1
gmake: *** Waiting for unfinished jobs....
tests/vm/Makefile.include:32: recipe for target 'vm-build-netbsd' failed
make: *** [vm-build-netbsd] Error 3
Philippe Mathieu-Daudé Aug. 29, 2017, 9:47 p.m. UTC | #2
Hi Fam,

On 08/29/2017 09:09 AM, Philippe Mathieu-Daudé wrote:
[...]>> +if __name__ == "__main__":
>> +    sys.exit(basevm.main(NetBSDVM))
> 
> This one is failing:
> 
> DEBUG:root:ssh_cmd: ssh -q -o StrictHostKeyChecking=no -o 
> UserKnownHostsFile=/dev/null -o ConnectTimeout=1 -p 34091 -i 
> /tmp/qemu-vm-59XYOj/id_rsa qemu@127.0.0.1
>          set -e;
>          cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
>          tar -xf /dev/rld1a;
>          ./configure --python=python2.7 ;
>          gmake -j4;
>          gmake check;
> 
> ...
>    CC      bt-host.o
>    CC      bt-vhci.o
>    CC      dma-helpers.o
>    CC      vl.o
>    CC      tpm.o
> In file included from vl.c:72:0:
> /var/tmp/qemu-test.ht0XHU/include/hw/loader.h:4:29: fatal error: 
> hw/nvram/fw_cfg.h: No such file or directory
>   #include "hw/nvram/fw_cfg.h"
>                               ^
> compilation terminated.
> /var/tmp/qemu-test.ht0XHU/rules.mak:66: recipe for target 'vl.o' failed
> gmake: *** [vl.o] Error 1
> gmake: *** Waiting for unfinished jobs....
> tests/vm/Makefile.include:32: recipe for target 'vm-build-netbsd' failed
> make: *** [vm-build-netbsd] Error 3

Probably false alarm, this seems to be an ENOMEM host error.

I later got:

	CHK version_gen.h
Makefile:342: recipe for target 'subdir-dtc' failed
gmake[1]: *** No rule to make target 'dtc/libfdt/fdt.h', needed by 
'libfdt/fdt.o'.  Stop.
gmake: *** [subdir-dtc] Error 2
gmake: *** Waiting for unfinished jobs....

which I solved running "gmake -C dtc" after ./configure but I'm not sure 
it is necessary or can come from my tree, this testing is veeeeeeery 
slow and mostly kill my laptop, I ended wondering on what kind of 
hardware you developed this series without going crazy nut :S
Fam Zheng Aug. 30, 2017, 3:32 a.m. UTC | #3
On Tue, 08/29 18:47, Philippe Mathieu-Daudé wrote:
> Hi Fam,
> 
> On 08/29/2017 09:09 AM, Philippe Mathieu-Daudé wrote:
> [...]>> +if __name__ == "__main__":
> > > +    sys.exit(basevm.main(NetBSDVM))
> > 
> > This one is failing:
> > 
> > DEBUG:root:ssh_cmd: ssh -q -o StrictHostKeyChecking=no -o
> > UserKnownHostsFile=/dev/null -o ConnectTimeout=1 -p 34091 -i
> > /tmp/qemu-vm-59XYOj/id_rsa qemu@127.0.0.1
> >          set -e;
> >          cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
> >          tar -xf /dev/rld1a;
> >          ./configure --python=python2.7 ;
> >          gmake -j4;
> >          gmake check;
> > 
> > ...
> >    CC      bt-host.o
> >    CC      bt-vhci.o
> >    CC      dma-helpers.o
> >    CC      vl.o
> >    CC      tpm.o
> > In file included from vl.c:72:0:
> > /var/tmp/qemu-test.ht0XHU/include/hw/loader.h:4:29: fatal error:
> > hw/nvram/fw_cfg.h: No such file or directory
> >   #include "hw/nvram/fw_cfg.h"
> >                               ^
> > compilation terminated.
> > /var/tmp/qemu-test.ht0XHU/rules.mak:66: recipe for target 'vl.o' failed
> > gmake: *** [vl.o] Error 1
> > gmake: *** Waiting for unfinished jobs....
> > tests/vm/Makefile.include:32: recipe for target 'vm-build-netbsd' failed
> > make: *** [vm-build-netbsd] Error 3
> 
> Probably false alarm, this seems to be an ENOMEM host error.
> 
> I later got:
> 
> 	CHK version_gen.h
> Makefile:342: recipe for target 'subdir-dtc' failed
> gmake[1]: *** No rule to make target 'dtc/libfdt/fdt.h', needed by
> 'libfdt/fdt.o'.  Stop.
> gmake: *** [subdir-dtc] Error 2
> gmake: *** Waiting for unfinished jobs....
> 
> which I solved running "gmake -C dtc" after ./configure but I'm not sure it
> is necessary or can come from my tree, this testing is veeeeeeery slow and
> mostly kill my laptop, I ended wondering on what kind of hardware you
> developed this series without going crazy nut :S

Not too beefy, just a Lenovo W541 laptop with i7-4810. To save you from being
killed again, maybe we should reduce the default -smp to nr_cores / 2?

Fam
diff mbox series

Patch

diff --git a/tests/vm/netbsd b/tests/vm/netbsd
new file mode 100755
index 0000000000..559e89c8a6
--- /dev/null
+++ b/tests/vm/netbsd
@@ -0,0 +1,42 @@ 
+#!/usr/bin/env python
+#
+# NetBSD VM image
+#
+# Copyright (C) 2017 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2.  See
+# the COPYING file in the top-level directory.
+#
+
+import os
+import sys
+import subprocess
+import basevm
+
+class NetBSDVM(basevm.BaseVM):
+    name = "netbsd"
+    BUILD_SCRIPT = """
+        set -e;
+        cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
+        tar -xf /dev/rld1a;
+        ./configure --python=python2.7 {configure_opts};
+        gmake -j{jobs};
+        gmake check;
+    """
+
+    def build_image(self, img):
+        cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz",
+                                         sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732')
+        img_tmp_xz = img + ".tmp.xz"
+        img_tmp = img + ".tmp"
+        subprocess.check_call(["cp", "-f", cimg, img_tmp_xz])
+        subprocess.check_call(["xz", "-df", img_tmp_xz])
+        if os.path.exists(img):
+            os.remove(img)
+        os.rename(img_tmp, img)
+
+if __name__ == "__main__":
+    sys.exit(basevm.main(NetBSDVM))