merge merge-mkimage into boottest
This commit is contained in:
commit
7fec686e6c
359 changed files with 38948 additions and 10254 deletions
|
@ -28,7 +28,7 @@ example_test (void)
|
|||
|
||||
/* Check if 1st argument is true and report with custom error message. */
|
||||
grub_test_assert (2 == 2, "2 equal 2 expected");
|
||||
grub_test_assert (2 == 3, "2 is not equal to %d", 3);
|
||||
grub_test_assert (2 != 3, "2 matches %d", 3);
|
||||
}
|
||||
|
||||
/* Register example_test method as a functional test. */
|
||||
|
|
|
@ -31,7 +31,7 @@ example_test (void)
|
|||
|
||||
/* Check if 1st argument is true and report with custom error message. */
|
||||
grub_test_assert (2 == 2, "2 equal 2 expected");
|
||||
grub_test_assert (2 == 3, "2 is not equal to %d", 3);
|
||||
grub_test_assert (2 != 3, "2 matches %d", 3);
|
||||
}
|
||||
|
||||
/* Register example_test method as a unit test. */
|
||||
|
|
14
tests/grub_script_blanklines.in
Normal file
14
tests/grub_script_blanklines.in
Normal file
|
@ -0,0 +1,14 @@
|
|||
#! /bin/sh -e
|
||||
|
||||
@builddir@/grub-script-check <<EOF
|
||||
# comment 1
|
||||
|
||||
command1 arg1
|
||||
|
||||
command2 arg2
|
||||
|
||||
|
||||
|
||||
last command
|
||||
# comment 2
|
||||
EOF
|
5
tests/grub_script_dollar.in
Normal file
5
tests/grub_script_dollar.in
Normal file
|
@ -0,0 +1,5 @@
|
|||
#! /bin/sh -e
|
||||
|
||||
@builddir@/grub-script-check << EOF
|
||||
echo "\\\$"
|
||||
EOF
|
32
tests/grub_script_echo1.in
Normal file
32
tests/grub_script_echo1.in
Normal file
|
@ -0,0 +1,32 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
# Run GRUB script in a Qemu instance
|
||||
# Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# GRUB is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GRUB is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
foo=bar
|
||||
echo $foo ${foo}
|
||||
echo "$foo" "${foo}"
|
||||
echo '$foo' '${foo}'
|
||||
echo a$foob a${foo}b
|
||||
echo ab"cd"ef$foo'gh'ij${foo}kl\ mn\"op\'qr\$st\(uv\<wx\>yz\)
|
||||
|
||||
foo=c
|
||||
bar=h
|
||||
echo e"$foo"${bar}o
|
||||
e"$foo"${bar}o hello world
|
||||
|
||||
foo=echo
|
||||
$foo 1234
|
3
tests/grub_script_echo_keywords.in
Normal file
3
tests/grub_script_echo_keywords.in
Normal file
|
@ -0,0 +1,3 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
echo if then else fi for do done
|
10
tests/grub_script_final_semicolon.in
Normal file
10
tests/grub_script_final_semicolon.in
Normal file
|
@ -0,0 +1,10 @@
|
|||
#! /bin/sh -e
|
||||
|
||||
@builddir@/grub-script-check <<EOF
|
||||
echo one;
|
||||
echo one; echo two
|
||||
echo one; echo two;
|
||||
echo one ; echo two ;
|
||||
echo one ; echo two ; echo three
|
||||
echo one; echo two ; echo three;
|
||||
EOF
|
27
tests/grub_script_for1.in
Normal file
27
tests/grub_script_for1.in
Normal file
|
@ -0,0 +1,27 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
for x in one two 'three 3' "four 4" five six-6; do echo $x; done
|
||||
|
||||
for x in one two 'three 3' "four 4" five six-6
|
||||
do
|
||||
echo $x
|
||||
done
|
||||
|
||||
foo="1 2"
|
||||
for x in ab${foo}cd; do echo $x; done
|
||||
for x in "ab${foo}cd"; do echo $x; done
|
||||
|
||||
a="one two three"
|
||||
y=foo
|
||||
echo $y
|
||||
for y in $a; do
|
||||
echo $y
|
||||
done
|
||||
echo $y
|
||||
|
||||
|
||||
b="one two three"
|
||||
for z in $b; do
|
||||
echo $z
|
||||
done
|
||||
echo $z
|
31
tests/grub_script_if.in
Normal file
31
tests/grub_script_if.in
Normal file
|
@ -0,0 +1,31 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
#basic if, execute
|
||||
if true; then echo yes; fi
|
||||
|
||||
#basic if, no execution
|
||||
if false; then echo no; fi
|
||||
|
||||
#if else, execute if path
|
||||
if true; then echo yes; else echo no; fi
|
||||
|
||||
#if else, execute else path
|
||||
if false; then echo no; else echo yes; fi
|
||||
|
||||
#if elif, execute elif
|
||||
if false; then echo no; elif true; then echo yes; fi
|
||||
|
||||
#if elif else, execute else
|
||||
if false; then echo no; elif false; then echo no; else echo yes; fi
|
||||
|
||||
#if elif(1) elif(2), execute elif(2)
|
||||
if false; then echo no; elif false; then echo no; elif true; then echo yes; fi
|
||||
|
||||
#if elif(1) elif(2) else, execute else
|
||||
if false; then echo no; elif false; then echo no; elif false; then echo no; else echo yes; fi
|
||||
|
||||
#if {if elif else}, execute elif
|
||||
if true; then if false; then echo no; elif true; then echo yes; else echo no; fi; fi
|
||||
|
||||
#if {if elif} else, execute elif. ofcourse no dangling-else problem due to "fi"
|
||||
if true; then if false; then echo no; elif true; then echo yes; fi; else echo no; fi
|
34
tests/grub_script_vars1.in
Normal file
34
tests/grub_script_vars1.in
Normal file
|
@ -0,0 +1,34 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
# Run GRUB script in a Qemu instance
|
||||
# Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# GRUB is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GRUB is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
var=foo
|
||||
echo $var
|
||||
echo "$var"
|
||||
echo ${var}
|
||||
echo "${var}"
|
||||
|
||||
echo $1 $2 $?
|
||||
|
||||
foo=foo
|
||||
echo "" $foo
|
||||
|
||||
echo $bar $foo
|
||||
|
||||
bar=""
|
||||
echo $bar $foo
|
||||
|
32
tests/grub_script_while1.in
Normal file
32
tests/grub_script_while1.in
Normal file
|
@ -0,0 +1,32 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
echo one
|
||||
foo=""
|
||||
while test "$foo" != "1111"; do foo="${foo}1"; echo "$foo"; done
|
||||
|
||||
echo two
|
||||
foo=""
|
||||
while test "$foo" != "aaaa"
|
||||
do
|
||||
foo="${foo}a"
|
||||
echo $foo
|
||||
done
|
||||
|
||||
foo=""
|
||||
until test "$foo" = "1111"; do foo="${foo}1"; echo $foo; done
|
||||
foo=""
|
||||
until test "$foo" = "aaaa"
|
||||
do
|
||||
foo="${foo}a"
|
||||
echo $foo
|
||||
done
|
||||
|
||||
# check "$?" in condition gets its value from while body commands
|
||||
foo=""
|
||||
false
|
||||
while test "$?" != "0"
|
||||
do
|
||||
echo $foo
|
||||
foo="${foo}1"
|
||||
test "$foo" = "111111"
|
||||
done
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/bash -e
|
||||
|
||||
# Compares GRUB script output with BASH output.
|
||||
# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009,2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# GRUB is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/bash -e
|
||||
|
||||
# Run GRUB script in a Qemu instance
|
||||
# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009,2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# GRUB is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -55,7 +55,7 @@ Report bugs to <bug-grub@gnu.org>.
|
|||
EOF
|
||||
}
|
||||
|
||||
boot=bios-hd
|
||||
boot=hd
|
||||
qemu=qemu-system-i386
|
||||
|
||||
# Check the arguments.
|
||||
|
@ -80,9 +80,9 @@ for option in "$@"; do
|
|||
qemuopts="$qemuopts $qs" ;;
|
||||
--boot=*)
|
||||
dev=`echo "$option" | sed -e 's/--boot=//'`
|
||||
if [ "$dev" = "bios-fd" ] ; then boot=bios-fd;
|
||||
elif [ "$dev" = "bios-hd" ] ; then boot=bios-hd;
|
||||
elif [ "$dev" = "bios-cd" ] ; then boot=bios-cd;
|
||||
if [ "$dev" = "fd" ] ; then boot=fd;
|
||||
elif [ "$dev" = "hd" ] ; then boot=hd;
|
||||
elif [ "$dev" = "cd" ] ; then boot=cd;
|
||||
else
|
||||
echo "Unrecognized boot method \`$dev'" 1>&2
|
||||
usage
|
||||
|
@ -129,26 +129,24 @@ source /boot/grub/testcase.cfg
|
|||
halt
|
||||
EOF
|
||||
|
||||
if [ x$boot = xbios-hd ] || [ x$boot = xbios-fd ] || [ x$boot = xbios-cd ]; then
|
||||
isofile=`mktemp`
|
||||
grub-mkrescue --output=${isofile} --override-directory=${builddir} \
|
||||
/boot/grub/grub.cfg=${cfgfile} /boot/grub/testcase.cfg=${source} \
|
||||
${files} >/dev/null 2>&1
|
||||
if [ x$boot = xbios-hd ]; then
|
||||
device=hda
|
||||
bootdev=c
|
||||
fi
|
||||
if [ x$boot = xbios-cd ]; then
|
||||
device=cdrom
|
||||
bootdev=d
|
||||
fi
|
||||
if [ x$boot = xbios-fd ]; then
|
||||
device=fda
|
||||
bootdev=a
|
||||
fi
|
||||
${qemu} ${qemuopts} -nographic -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} -boot ${bootdev} | tr -d "\r"
|
||||
rm -f ${isofile}
|
||||
isofile=`mktemp`
|
||||
grub-mkrescue --output=${isofile} --override-directory=${builddir} \
|
||||
/boot/grub/grub.cfg=${cfgfile} /boot/grub/testcase.cfg=${source} \
|
||||
${files} >/dev/null 2>&1
|
||||
if [ x$boot = xhd ]; then
|
||||
device=hda
|
||||
bootdev=c
|
||||
fi
|
||||
if [ x$boot = xcd ]; then
|
||||
device=cdrom
|
||||
bootdev=d
|
||||
fi
|
||||
if [ x$boot = xfd ]; then
|
||||
device=fda
|
||||
bootdev=a
|
||||
fi
|
||||
${qemu} ${qemuopts} -nographic -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} -boot ${bootdev} | tr -d "\r"
|
||||
rm -f ${isofile}
|
||||
|
||||
rm -f ${tmpfile} ${cfgfile}
|
||||
exit 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue