Message ID | 20170921150755.19914-8-famz@redhat.com |
---|---|
State | New |
Headers | show |
Series | tests: Add VM based build tests (for non-x86_64 and/or non-Linux) | expand |
Hi Fam, On 09/21/2017 12:07 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> > --- > tests/vm/freebsd | 42 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > create mode 100755 tests/vm/freebsd > > diff --git a/tests/vm/freebsd b/tests/vm/freebsd > new file mode 100755 > index 0000000000..039dad8f69 > --- /dev/null > +++ b/tests/vm/freebsd > @@ -0,0 +1,42 @@ > +#!/usr/bin/env python > +# > +# FreeBSD VM image > +# > +# Copyright 2017 Red Hat Inc. > +# > +# Authors: > +# Fam Zheng <famz@redhat.com> > +# > +# This code is licensed under the GPL version 2 or later. See > +# the COPYING file in the top-level directory. > +# > + > +import os > +import sys > +import subprocess > +import basevm > + > +class FreeBSDVM(basevm.BaseVM): > + name = "freebsd" > + BUILD_SCRIPT = """ > + set -e; > + cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); > + tar -xf /dev/vtbd1; > + ./configure {configure_opts}; > + gmake -j{jobs}; > + gmake check; > + """ > + > + def build_image(self, img): > + cimg = self._download_with_cache("http://download.patchew.org/freebsd-11.1-amd64.img.xz", > + sha256sum='adcb771549b37bc63826c501f05121a206ed3d9f55f49145908f7e1432d65891') > + img_tmp_xz = img + ".tmp.xz" > + img_tmp = img + ".tmp" > + subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) I'd rather see this part common to 3 images refactored as @static BaseVM.download_and_extract_image() and some logging: logging.debug("Extracting %s...", fname) > + subprocess.check_call(["xz", "-df", img_tmp_xz]) else one wonder what's happening here. (for another patch on top on this series) > + if os.path.exists(img): > + os.remove(img) > + os.rename(img_tmp, img) > + > +if __name__ == "__main__": > + sys.exit(basevm.main(FreeBSDVM)) >
On Fri, 09/22 00:17, Philippe Mathieu-Daudé wrote: > Hi Fam, > > On 09/21/2017 12:07 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> > > --- > > tests/vm/freebsd | 42 ++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 42 insertions(+) > > create mode 100755 tests/vm/freebsd > > > > diff --git a/tests/vm/freebsd b/tests/vm/freebsd > > new file mode 100755 > > index 0000000000..039dad8f69 > > --- /dev/null > > +++ b/tests/vm/freebsd > > @@ -0,0 +1,42 @@ > > +#!/usr/bin/env python > > +# > > +# FreeBSD VM image > > +# > > +# Copyright 2017 Red Hat Inc. > > +# > > +# Authors: > > +# Fam Zheng <famz@redhat.com> > > +# > > +# This code is licensed under the GPL version 2 or later. See > > +# the COPYING file in the top-level directory. > > +# > > + > > +import os > > +import sys > > +import subprocess > > +import basevm > > + > > +class FreeBSDVM(basevm.BaseVM): > > + name = "freebsd" > > + BUILD_SCRIPT = """ > > + set -e; > > + cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); > > + tar -xf /dev/vtbd1; > > + ./configure {configure_opts}; > > + gmake -j{jobs}; > > + gmake check; > > + """ > > + > > + def build_image(self, img): > > + cimg = self._download_with_cache("http://download.patchew.org/freebsd-11.1-amd64.img.xz", > > + sha256sum='adcb771549b37bc63826c501f05121a206ed3d9f55f49145908f7e1432d65891') > > + img_tmp_xz = img + ".tmp.xz" > > + img_tmp = img + ".tmp" > > + subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) > > I'd rather see this part common to 3 images refactored as @static > BaseVM.download_and_extract_image() and some logging: > > logging.debug("Extracting %s...", fname) > > > + subprocess.check_call(["xz", "-df", img_tmp_xz]) > > else one wonder what's happening here. > > (for another patch on top on this series) Yep, that sounds good. Fam
On 09/21/2017 12:07 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> $ QEMU=`pwd`/x86_64-softmmu/qemu-system-x86_64 make vm-build-freebsd V=1 [...] CC tests/test-io-channel-socket.o CC tests/io-channel-helpers.o LINK tests/test-io-channel-socket the build hang here, stopping to use the cpu, keeping 2GB of resident physical memory until I hit ^C ... not enough ram for the guest? guest tmpfs full? useful enough for: Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > tests/vm/freebsd | 42 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > create mode 100755 tests/vm/freebsd > > diff --git a/tests/vm/freebsd b/tests/vm/freebsd > new file mode 100755 > index 0000000000..039dad8f69 > --- /dev/null > +++ b/tests/vm/freebsd > @@ -0,0 +1,42 @@ > +#!/usr/bin/env python > +# > +# FreeBSD VM image > +# > +# Copyright 2017 Red Hat Inc. > +# > +# Authors: > +# Fam Zheng <famz@redhat.com> > +# > +# This code is licensed under the GPL version 2 or later. See > +# the COPYING file in the top-level directory. > +# > + > +import os > +import sys > +import subprocess > +import basevm > + > +class FreeBSDVM(basevm.BaseVM): > + name = "freebsd" > + BUILD_SCRIPT = """ > + set -e; > + cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); > + tar -xf /dev/vtbd1; > + ./configure {configure_opts}; > + gmake -j{jobs}; > + gmake check; > + """ > + > + def build_image(self, img): > + cimg = self._download_with_cache("http://download.patchew.org/freebsd-11.1-amd64.img.xz", > + sha256sum='adcb771549b37bc63826c501f05121a206ed3d9f55f49145908f7e1432d65891') > + 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(FreeBSDVM)) >
On Fri, 09/22 03:09, Philippe Mathieu-Daudé wrote: > On 09/21/2017 12:07 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> > > $ QEMU=`pwd`/x86_64-softmmu/qemu-system-x86_64 make vm-build-freebsd V=1 > [...] > CC tests/test-io-channel-socket.o > CC tests/io-channel-helpers.o > LINK tests/test-io-channel-socket > > the build hang here, stopping to use the cpu, keeping 2GB of resident > physical memory until I hit ^C ... not enough ram for the guest? guest tmpfs > full? For how long? The four images doing "J=8" takes 1~2 hours here usually. This worked for me on at least two machines (one laptop and one server). :-/ > > useful enough for: > Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Fam
diff --git a/tests/vm/freebsd b/tests/vm/freebsd new file mode 100755 index 0000000000..039dad8f69 --- /dev/null +++ b/tests/vm/freebsd @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# +# FreeBSD VM image +# +# Copyright 2017 Red Hat Inc. +# +# Authors: +# Fam Zheng <famz@redhat.com> +# +# This code is licensed under the GPL version 2 or later. See +# the COPYING file in the top-level directory. +# + +import os +import sys +import subprocess +import basevm + +class FreeBSDVM(basevm.BaseVM): + name = "freebsd" + BUILD_SCRIPT = """ + set -e; + cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); + tar -xf /dev/vtbd1; + ./configure {configure_opts}; + gmake -j{jobs}; + gmake check; + """ + + def build_image(self, img): + cimg = self._download_with_cache("http://download.patchew.org/freebsd-11.1-amd64.img.xz", + sha256sum='adcb771549b37bc63826c501f05121a206ed3d9f55f49145908f7e1432d65891') + 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(FreeBSDVM))
The image is prepared following instructions as in: https://wiki.qemu.org/Hosts/BSD Signed-off-by: Fam Zheng <famz@redhat.com> --- tests/vm/freebsd | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 tests/vm/freebsd