#!/bin/bash # # $Id$ # # Script to test packages on various distributions with qemu # # Syntax: test2qemu [[vm1]..[vmx]] ( dname=`dirname $0` prem=`echo $dname |cut -c1` if [ _${prem} = _"/" ]; then export TOOLHOME=$dname else export TOOLHOME=${PWD}/$dname fi . $TOOLHOME/common-env . $TOOLHOME/distro-env if [ _"$1" = _"" ]; then export VMS=`cat ${TOOLHOME}/DISTROS` single=0 else export VMS="$*" single=1 fi for m in $VMS; do echo "Working on $m" vmp=0 if [ ! -f /users/qemu/pxe.qemu ]; then echo "VM pxe unaccessible. Verify NFS mount" rm -rf $MONDOTMP exit -1 fi if [ _"$sp" = _"" ]; then export sp=2222 fi ps auxww | grep qemu | grep -v grep | grep -q /users/qemu/pxe-$m.qemu if [ $? -ne 0 ]; then # Virtual machine not alreday started vmp=1 sudo mkdir -p /pub/users/svg/mnt sudo mount -o loop /pub/users/svg/mondo/images/test-mondo-$m /pub/users/svg/mnt cp -a /pub/users/svg/mnt/vmlinuz /users/qemu/pxe/$m cp -a /pub/users/svg/mnt/initrd.img /users/qemu/pxe/$m.img sudo umount /pub/users/svg/mnt cp /users/qemu/pxe.qemu /users/qemu/pxe-$m.qemu export QEMUOPT="-kernel /users/qemu/pxe/$m -initrd /users/qemu/pxe/$m.img -append 'load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=65536 rw root=/dev/ram iso_mode pxe prefix=test-mondo-$m ipconf=eth0:dhcp nfsmount=flecha.home.musique-ancienne.org:/users/svg/mondo/images'" # ramdisk_blocksize=1024 $TOOLHOME/mkqemu pxe-$m & sleep 300 fi ssh -q -p $sp bruno@localhost "cd / ; rm -rf ~bruno/mondo ~bruno/RPMS/BUILD/* ~bruno/RPMS/tmp/* /tmp/* ; tar xfz ~bruno/test-mondo.tar.gz ; $MONDOTMP/test-mondo " | tee $MONDOTMP/mkvm.log if [ $vmp -eq 1 ]; then ssh -q -p $sp root@localhost "halt -p" sleep 300 proces=`ps auxww | grep qemu | grep -v grep | grep /users/qemu/$m.qemu | awk '{print $2}'` if [ "$proces" != "" ]; then kill $proces sleep 10 fi fi done # Should be removed at the end rm -rf $MONDOTMP ) 2>&1 | tee /tmp/test2qemu.log