--- trunk/grubby/test.sh 2011/06/03 20:32:19 1332 +++ trunk/grubby/test.sh 2012/02/18 00:50:18 1719 @@ -69,10 +69,38 @@ fi } +# Test feature that display some information, checking that output instead of +# the generated configuration file +oneDisplayTest() { + typeset mode=$1 cfg=test/$2 correct=test/results/$3 + shift 3 + + echo "$testing ... $mode $cfg $correct" + runme=( ./grubby "$mode" --bad-image-okay -c "$cfg" "$@" ) + if "${runme[@]}" | cmp "$correct" > /dev/null; then + (( pass++ )) + if $opt_verbose; then + echo ------------------------------------------------------------- + echo -n "PASS: " + printf "%q " "${runme[@]}"; echo + "${runme[@]}" | diff -U30 "$cfg" - + echo + fi + else + (( fail++ )) + echo ------------------------------------------------------------- + echo -n "FAIL: " + printf "%q " "${runme[@]}"; echo + "${runme[@]}" | diff -U30 "$correct" - + echo + fi +} + # generate convenience functions for b in $(./grubby --help | \ sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader$/\1/p'); do eval "${b}Test() { [[ \"$b\" == \$opt_bootloader ]] && oneTest --$b \"\$@\"; }" + eval "${b}DisplayTest() { [[ \"$b\" == \$opt_bootloader ]] && oneDisplayTest --$b \"\$@\"; }" done #---------------------------------------------------------------------- @@ -301,6 +329,19 @@ --initrd=/boot/new-initrd --boot-filesystem=/boot --copy-default \ --args='console=tty0 console=ttyS1,9600n81 single' +testing="GRUB2 add kernel" +grub2Test grub2.1 add/g2-1.1 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ --copy-default +grub2Test grub2.1 add/g2-1.2 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ + --copy-default --make-default +grub2Test grub2.1 add/g2-1.3 --add-kernel=/boot/new-kernel.img --title='title' \ + --boot-filesystem=/boot/ --copy-default --make-default + +testing="GRUB2 add initrd" +grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ + testing="YABOOT add kernel" yabootTest yaboot.1 add/y1.1 --copy-default --boot-filesystem=/ --add-kernel=/boot/new-kernel \ --title=newtitle