On Sun, Jan 15, 2012 at 10:39 PM, Anthony Liguori <anth...@codemonkey.ws> wrote: > On 01/13/2012 07:25 PM, Zhi Yong Wu wrote: >> >> On Sat, Jan 14, 2012 at 9:03 AM, Zhi Yong Wu<zwu.ker...@gmail.com> wrote: >>> >>> On Sat, Jan 14, 2012 at 5:49 AM, Ryan Harper<ry...@us.ibm.com> wrote: >>>> >>>> We can test out the virtio-blk drive serial number by generating and >>>> then >>>> reading it back via the file in sysfs. >>>> >>>> Signed-off-by: Ryan Harper<ry...@us.ibm.com> >>>> --- >>>> tests/virtio-blk-drive-serial.sh | 40 >>>> ++++++++++++++++++++++++++++++++++++++ >>>> 1 files changed, 40 insertions(+), 0 deletions(-) >>>> create mode 100755 tests/virtio-blk-drive-serial.sh >>>> >>>> diff --git a/tests/virtio-blk-drive-serial.sh >>>> b/tests/virtio-blk-drive-serial.sh >>>> new file mode 100755 >>>> index 0000000..0586f97 >>>> --- /dev/null >>>> +++ b/tests/virtio-blk-drive-serial.sh >>>> @@ -0,0 +1,40 @@ >>>> +#!/bin/sh >>>> + >>>> +serial="0123456789abcdefghi" >>>> + >>>> +in_host() { >>>> + tmpdisk=$tmpdir/disk.img >>>> + qemu-img create -f qcow2 $tmpdisk 10G >>>> + >>>> + qemu -nographic -enable-kvm \ >>>> + -drive >>>> file=$tmpdisk,if=none,id=drive-virtio-disk0,format=raw,cache=none,serial=$serial >>>> \ >>>> + -device >>>> virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 >>>> + rc=$? >>>> + >>>> + rm $tmpdisk >>>> + return $rc >>>> +} >>>> + >>>> +in_guest() { >>>> + sysfspath=/sys/block/vda >>>> + if ! test -e $sysfspath; then >>>> + echo "Device not visible!" >>>> + return 1 >>>> + fi >>>> + >>>> + guest_serial=`cat $sysfspath/serial` >>>> + >>>> + if test "$guest_serial" != "$serial"; then >>>> + echo "drive has wrong serial!" >>>> + echo "Expected '$serial', got '$guest_serial'" >>>> + return 2 >>>> + fi >>>> + >>>> + return 0 >>>> +} >>> >>> How will you make in_guest() run in that guest system? >>> From the code below, i guess that qtest framework make sure it. > > > qemu-test. qtest is something different. > > The script is copied into the initramfs used to run the guest. QEMU_TEST=1 > only in the host so the code below invokes in_guest only in the guest. thanks. > > Regards, > > Anthony Liguori > > >>>> + >>>> +if test $QEMU_TEST; then >>>> + in_host >>>> +else >>>> + in_guest >>>> +fi >>>> -- >>>> 1.7.6 >>>> >>>> >>> >>> >>> >>> -- >>> Regards, >>> >>> Zhi Yong Wu >> >> >> >> >
-- Regards, Zhi Yong Wu