From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36180) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sypse-0001cM-Mm for qemu-devel@nongnu.org; Tue, 07 Aug 2012 15:55:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sypsd-0008LS-2q for qemu-devel@nongnu.org; Tue, 07 Aug 2012 15:55:52 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59083) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sypsc-0008L8-R7 for qemu-devel@nongnu.org; Tue, 07 Aug 2012 15:55:51 -0400 From: Markus Armbruster References: <87obmmcxlh.fsf@blackfin.pond.sub.org> <87fw7ya42h.fsf@codemonkey.ws> Date: Tue, 07 Aug 2012 21:55:47 +0200 In-Reply-To: <87fw7ya42h.fsf@codemonkey.ws> (Anthony Liguori's message of "Tue, 07 Aug 2012 14:35:02 -0500") Message-ID: <87ipcubhoc.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] For all targets and machine types: "start to monitor" smoke test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org Anthony Liguori writes: > Markus Armbruster writes: > >> Very basic smoke test: start QEMU with -monitor stdio, quit immediately. >> Wouldn't it be nice if that worked for all targets and machine types? >> >> Many targets have mandatory options (fun oxymoron), such as -kernel or >> -pflash. Can't stop me, I just try a bunch until something works. >> >> Many targets expect various files to be present, and some of them need >> to have the right size. Can't stop me, I hack up the file loaders until >> it works (silly patch appended). To do this right, we'd need the >> required files or suitable mock-ups in-tree. > > I attempted something similar in the past and ran into similar results. > >> >> Test script: >> >> #!/bin/sh >> for i in ../qemu/bld/*-softmmu/qemu-system-* >> do >> echo "= $i =" >> for m in `$i -M help | sed -n '2,$s/ .*//gp'` >> do >> echo "== $m ==" >> for k in "" "-kernel /dev/null" "-pflash /dev/null" "-pflash /dev/null -pflash /dev/null -kernel /dev/null" >> do >> echo "=== ${k:-(default)} ===" >> if echo q | QEMU_AUDIO_DRV=none $i -S -vnc :0 -M $m $k -monitor stdio | fgrep -q '(qemu)' >> then break >> else false >> fi >> done >> if [ $? -eq 0 ] >> then echo "*** Success $k ***" >> else echo '*** Fail' >> fi >> done >> done >> >> Summary of results: >> >> * Bad unexplained >> >> qemu-system-arm lm3s811evb >> qemu-system-arm lm3s6965evb >> qemu-system-arm: /work/armbru/qemu/hw/qdev.c:310: qdev_get_gpio_in: Assertion `n >= 0 && n < dev->num_gpio_in' failed. >> >> qemu-system-ppc64 prep >> qemu: hardware error: Unknown device 'i82378' for bus 'PCI' >> >> qemu-system-ppcemb ref405ep >> qemu-system-ppcemb taihu >> Unable to find PowerPC 405ep CPU definition >> >> qemu-system-ppcemb mac99 >> qemu-system-ppcemb g3beige >> qemu-system-ppcemb prep >> Unable to find PowerPC CPU definition >> >> qemu-system-xtensaeb lx60 >> qemu-system-xtensaeb lx200 >> qemu-system-xtensaeb sim >> Unable to find CPU definition >> >> I'm not saying these are all busted. If you know how to "start to >> monitor" one of these, let us know. > > Perhaps we could add a QEMUMachine parameter that indicates that the > machine doesn't start without special options. Recommend to make it a string that lists the mandatory options. > At least a handful of these machines cannot be run without the use of > non-free binaries firmware :-( Yes, and that's bad. However, my test isn't trying to execute any guest code. It *should* be possible to pull off with mocked-up firmware. The mock-ups could then serve as documentation on what firmware binaries are required.