On 10 Dec 2013 02:44, "Ronny Chevalier" <[email protected]> wrote: > > Do we really want to add a compat for several distributions ? Because > why not Archlinux, Ubuntu,... too ? > I used Fedora's path by default because it was in the previous script.
Maybe just use the path created by our kernel-install script? Cheers, Tom > 2013/12/8 Shawn Landden <[email protected]>: > > On Sat, Dec 7, 2013 at 3:01 PM, Ronny Chevalier > > <[email protected]> wrote: > >> It tries to find a suitable QEMU binary and will use KVM if present. > >> We can now configure QEMU from outside with 4 variables : > >> - $QEMU_BIN : path to QEMU's binary > >> - $KERNEL_APPEND : arguments appended to kernel cmdline > >> - $KERNEL_BIN : path to a kernel > >> Default /boot/vmlinuz-$KERNEL_VER > >> - $INITRD : path to an initramfs > >> Default /boot/initramfs-${KERNEL_VER}.img > >> - $QEMU_SMP : number of CPU simulated by QEMU. > >> Default 1 > >> > >> (from Alexander Graf's script: http://www.spinics.net/lists/kvm/msg72389.html) > >> --- > >> TODO | 1 - > >> test/README.testsuite | 19 ++++++++++-- > >> test/TEST-01-BASIC/test.sh | 8 ++--- > >> test/TEST-02-CRYPTSETUP/test.sh | 8 ++--- > >> test/TEST-03-JOBS/test.sh | 8 ++--- > >> test/test-functions | 65 +++++++++++++++++++++++++++++++++++------ > >> 6 files changed, 78 insertions(+), 31 deletions(-) > >> > >> diff --git a/TODO b/TODO > >> index 9698082..f493dbb 100644 > >> --- a/TODO > >> +++ b/TODO > >> @@ -168,7 +168,6 @@ Features: > >> * test/: > >> - add 'set -e' to scripts in test/ > >> - make stuff in test/ work with separate output dir > >> - - qemu wrapper script: http://www.spinics.net/lists/kvm/msg72389.html > >> > >> * systemctl delete x.snapshot leaves no trace in logs (at least at default level). > >> > >> diff --git a/test/README.testsuite b/test/README.testsuite > >> index 54d0eaa..2ae85a2 100644 > >> --- a/test/README.testsuite > >> +++ b/test/README.testsuite > >> @@ -25,11 +25,24 @@ $ make all > >> $ cd test/TEST-01-BASIC > >> $ sudo make clean setup run > >> > >> +QEMU > >> +==== > >> + > >> If you want to log in the testsuite virtual machine, you can specify > >> -additional kernel command line parameter with $DEBUGFAIL. > >> +additional kernel command line parameter with $KERNEL_APPEND. > >> > >> -$ sudo make DEBUGFAIL="systemd.unit=multi-user.target" clean setup run > >> +$ sudo make KERNEL_APPEND="systemd.unit=multi-user.target" clean setup run > >> > >> you can even skip the "clean" and "setup" if you want to run the machine again. > >> > >> -$ sudo make DEBUGFAIL="systemd.unit=multi-user.target" run > >> +$ sudo make KERNEL_APPEND="systemd.unit=multi-user.target" run > >> + > >> +You can specify a different kernel and initramfs with $KERNEL_BIN and $INITRD. > >> +(Fedora's default kernel path and initramfs are used by default) > >> + > >> +$ sudo make KERNEL_BIN=/boot/vmlinuz-foo INITRD=/boot/initramfs-bar clean check > >> + > >> +A script will try to find your QEMU binary. If you want to specify a different > >> +one you can use $QEMU_BIN. > >> + > >> +$ sudo make QEMU_BIN=/path/to/qemu/qemu-kvm clean check > >> diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh > >> index aaf63f4..84ccf26 100755 > >> --- a/test/TEST-01-BASIC/test.sh > >> +++ b/test/TEST-01-BASIC/test.sh > >> @@ -5,9 +5,6 @@ TEST_DESCRIPTION="Basic systemd setup" > >> > >> . $TEST_BASE_DIR/test-functions > >> > >> -# Uncomment this to debug failures > >> -#DEBUGFAIL="systemd.unit=multi-user.target" > >> - > >> check_result_qemu() { > >> ret=1 > >> mkdir -p $TESTDIR/root > >> @@ -23,11 +20,10 @@ check_result_qemu() { > >> } > >> > >> test_run() { > >> - if check_qemu ; then > >> - run_qemu > >> + if run_qemu; then > >> check_result_qemu || return 1 > >> else > >> - dwarn "can't run qemu-kvm, skipping" > >> + dwarn "can't run QEMU, skipping" > >> fi > >> if check_nspawn; then > >> run_nspawn > >> diff --git a/test/TEST-02-CRYPTSETUP/test.sh b/test/TEST-02-CRYPTSETUP/test.sh > >> index 86617df..d7e8776 100755 > >> --- a/test/TEST-02-CRYPTSETUP/test.sh > >> +++ b/test/TEST-02-CRYPTSETUP/test.sh > >> @@ -5,9 +5,6 @@ TEST_DESCRIPTION="cryptsetup systemd setup" > >> > >> . $TEST_BASE_DIR/test-functions > >> > >> -# Uncomment this to debug failures > >> -#DEBUGFAIL="systemd.unit=multi-user.target" > >> - > >> check_result_qemu() { > >> ret=1 > >> mkdir -p $TESTDIR/root > >> @@ -28,11 +25,10 @@ check_result_qemu() { > >> > >> > >> test_run() { > >> - if check_qemu ; then > >> - run_qemu > >> + if run_qemu; then > >> check_result_qemu || return 1 > >> else > >> - dwarn "can't run qemu-kvm, skipping" > >> + dwarn "can't run QEMU, skipping" > >> fi > >> return 0 > >> } > >> diff --git a/test/TEST-03-JOBS/test.sh b/test/TEST-03-JOBS/test.sh > >> index 6303258..41e02e2 100755 > >> --- a/test/TEST-03-JOBS/test.sh > >> +++ b/test/TEST-03-JOBS/test.sh > >> @@ -5,9 +5,6 @@ TEST_DESCRIPTION="Job-related tests" > >> > >> . $TEST_BASE_DIR/test-functions > >> > >> -# Uncomment this to debug failures > >> -#DEBUGFAIL="systemd.unit=multi-user.target" > >> - > >> check_result_qemu() { > >> ret=1 > >> mkdir -p $TESTDIR/root > >> @@ -23,11 +20,10 @@ check_result_qemu() { > >> } > >> > >> test_run() { > >> - if check_qemu ; then > >> - run_qemu > >> + if run_qemu; then > >> check_result_qemu || return 1 > >> else > >> - dwarn "can't run qemu-kvm, skipping" > >> + dwarn "can't run QEMU, skipping" > >> fi > >> if check_nspawn; then > >> run_nspawn > >> diff --git a/test/test-functions b/test/test-functions > >> index a184ed7..87d3a73 100644 > >> --- a/test/test-functions > >> +++ b/test/test-functions > >> @@ -10,12 +10,63 @@ KERNEL_MODS="/lib/modules/$KERNEL_VER/" > >> BASICTOOLS="sh bash setsid loadkeys setfont login sushell sulogin gzip sleep echo mount umount cryptsetup date dmsetup modprobe" > >> DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort" > >> > >> +function find_qemu_bin() { > >> + # SUSE and Red Hat call the binary qemu-kvm > >> + # Debian and Gentoo call it kvm > >> + [ "$QEMU_BIN" ] || QEMU_BIN=$(which -a kvm qemu-kvm 2>/dev/null | grep '^/' -m1) > >> + > >> + [ "$ARCH" ] || ARCH=$(uname -m) > >> + case $ARCH in > >> + x86_64) > >> + # QEMU's own build system calls it qemu-system-x86_64 > >> + [ "$QEMU_BIN" ] || QEMU_BIN=$(which -a qemu-system-x86_64 2>/dev/null | grep '^/' -m1) > >> + ;; > >> + i*86) > >> + # new i386 version of QEMU > >> + [ "$QEMU_BIN" ] || QEMU_BIN=$(which -a qemu-system-i386 2>/dev/null | grep '^/' -m1) > >> + > >> + # i386 version of QEMU > >> + [ "$QEMU_BIN" ] || QEMU_BIN=$(which -a qemu 2>/dev/null | grep '^/' -m1) > >> + ;; > >> + esac > >> + > >> + if [ ! -e "$QEMU_BIN" ]; then > >> + echo "Could not find a suitable QEMU binary" >&2 > >> + return 1 > >> + fi > >> +} > >> + > >> run_qemu() { > >> - qemu-kvm \ > >> - -hda $TESTDIR/rootdisk.img \ > >> - -m 512M -nographic \ > >> - -net none -kernel /boot/vmlinuz-$KERNEL_VER \ > >> - -append "root=/dev/sda1 systemd.log_level=debug raid=noautodetect loglevel=2 init=/usr/lib/systemd/systemd ro console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" || return 1 > >> + [ "$KERNEL_BIN" ] || KERNEL_BIN=/boot/vmlinuz-$KERNEL_VER > >> + [ "$INITRD" ] || INITRD=/boot/initramfs-${KERNEL_VER}.img > >> + [ "$QEMU_SMP" ] || QEMU_SMP=1 > > test -e /boot/initramfd-${KERNEL_VER}.img > > and > > test -e /boot/initrd.img-${KERNEL_VER} > > > > for compat with Debian > > > > (alternatively Debian also has /vmlinuz and /initrd.img ) > > > >> + > >> + find_qemu_bin || return 1 > >> + > >> + KERNEL_APPEND="root=/dev/sda1 \ > >> +systemd.log_level=debug \ > >> +raid=noautodetect \ > >> +loglevel=2 \ > >> +init=/usr/lib/systemd/systemd \ > >> +ro \ > >> +console=ttyS0 \ > >> +selinux=0 \ > >> +$KERNEL_APPEND \ > >> +" > >> + > >> + QEMU_OPTIONS="-machine accel=kvm:tcg \ > >> +-smp $QEMU_SMP \ > >> +-net none \ > >> +-m 512M \ > >> +-nographic \ > >> +-kernel $KERNEL_BIN \ > >> +" > >> + > >> + if [ "$INITRD" ]; then > >> + QEMU_OPTIONS="$QEMU_OPTIONS -initrd $INITRD" > >> + fi > >> + > >> + $QEMU_BIN $QEMU_OPTIONS -append "$KERNEL_APPEND" $TESTDIR/rootdisk.img || return 1 > >> } > >> > >> run_nspawn() { > >> @@ -1043,10 +1094,6 @@ inst_libdir_file() { > >> fi > >> } > >> > >> -check_qemu() { > >> - command -v qemu-kvm &>/dev/null && [[ -c /dev/kvm ]] > >> -} > >> - > >> check_nspawn() { > >> [[ -d /sys/fs/cgroup/systemd ]] > >> } > >> -- > >> 1.8.4.2 > >> > >> _______________________________________________ > >> systemd-devel mailing list > >> [email protected] > >> http://lists.freedesktop.org/mailman/listinfo/systemd-devel > _______________________________________________ > systemd-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/systemd-devel
_______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
