merge with mainline

This commit is contained in:
BVK Chaitanya 2010-08-12 14:43:34 +05:30
commit 00a8a3eee3
77 changed files with 5019 additions and 1678 deletions

View file

@ -0,0 +1,86 @@
#! @builddir@/grub-shell-tester
#
# 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/>.
# break without any arguments
for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
if test "$i" = 5
then
break
fi
done
# break with one
for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
if test "$i" = 5
then
break 1
fi
done
# break with loop count
for i in 1 2 3 4 5
do
for j in a b c d e f
do
echo "$i $j"
if test "$i" = 3
then
if test "$j" = d
then
break 2
fi
fi
done
done
# break into middle loop
for i in 1 2 3 4 5
do
for j in a b c d e f
do
echo "$i $j"
if test "$i" = 3
then
if test "$j" = d
then
break 1
fi
fi
done
done
# while and until loops
a=
while test "$a" != "aaaaaaa"
do
a="a$a"
for i in 1 2 3 4
do
b=
until test "$b" = "bbbbb"
do
b="b$b"
echo "$a $i $b"
if test "$i" = 3; then echo "break 2"; break 2; fi
done
done
done

View file

@ -0,0 +1,86 @@
#! @builddir@/grub-shell-tester
#
# 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/>.
# continue without any arguments
for i in 1 2 3 4 5 6 7 8 9 10
do
if test "$i" = 5
then
continue
fi
echo $i
done
# continue with one
for i in 1 2 3 4 5 6 7 8 9 10
do
if test "$i" = 5
then
continue 1
fi
echo $i
done
# continue with loop count
for i in 1 2 3 4 5
do
for j in a b c d e f
do
if test "$i" = 3
then
if test "$j" = d
then
continue 2
fi
echo "$i $j"
fi
done
done
# continue into middle loop
for i in 1 2 3 4 5
do
for j in a b c d e f
do
if test "$i" = 3
then
if test "$j" = d
then
continue 1
fi
echo "$i $j"
fi
done
done
# while and until loops
a=
while test "$a" != "aaaaaaa"
do
a="a$a"
for i in 1 2 3 4
do
b=
until test "$b" = "bbbbb"
do
b="b$b"
if test "$i" = 3; then echo "continue 2"; continue 2; fi
echo "$a $i $b"
done
done
done

View file

@ -16,6 +16,33 @@
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
# simple arguments
echo one two three
echo "one two three"
echo 'one two three'
# empty arguments
echo a "" b
echo a '' b
echo a $foo b
echo a ${foo} b
echo a "$foo" b
echo a "${foo}" b
# multi-part arguments
echo one"two"three
echo one${two}three
echo one"two"$three
echo one'two'three
echo one${two}three
echo one'two'$three
echo one'two'three"four"five${six}seven$eight
foo=bar
echo $foo ${foo}
echo "$foo" "${foo}"

View file

@ -0,0 +1,147 @@
#! @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/>.
echo parameter count
function fcount {
echo fcount "$#"
}
fcount
fcount a
fcount a b
echo parameter count, with nesting
function ffcount {
echo ffcount "$#"
fcount
fcount a
fcount a b
}
ffcount
ffcount 1
ffcount 1 2
echo parameters
function fparam {
echo fparam 1 $1
echo fparam 2 $2
echo fparam 3 $3
}
fparam
fparam a
fparam a b
echo parameters, with nesting
function ffparam {
echo ffparam 1 $1
echo ffparam 2 $2
echo ffparam 3 $3
fparam
fparam a
fparam a b
}
ffparam
ffparam 1
ffparam 1 2
echo parameter expansion with specials
function fstar {
for f in $*
do
echo fstar $f
done
for f in aaa$*bbb
do
echo fstar $f
done
}
fstar
fstar a
fstar a "1 2"
fstar a "1 2" b
function fdqstar {
for f in "$*"
do
echo fdqstar $f
done
for f in aaa"$*"bbb
do
echo fdqstar $f
done
for f in "aaa$*bbb"
do
echo fdqstar $f
done
}
fdqstar
fdqstar a
fdqstar a "1 2"
fdqstar a "1 2" b
function fat {
for f in $@
do
echo fat $f
done
for f in aaa$@bbb
do
echo fat $f
done
}
fat
fat a
fat a "1 2"
fat a "1 2" b
fat a "1 2" b "c d"
fat a "1 2" b "c d" e
function fdqat {
for f in "$@"
do
echo fdqat $f
done
for f in aaa"$@"bbb
do
echo fdqat $f
done
for f in "aaa$@bbb"
do
echo fdqat $f
done
}
# fdqat # this case needs special handling, lets ignore till we really need it.
fdqat a
fdqat a "1 2"
fdqat a "1 2" b
fdqat a "1 2" b "c d"
fdqat a "1 2" b "c d" e

View file

@ -0,0 +1,85 @@
#! @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/>.
function f1 {
echo f1 '$@' $@
echo f1 '$*' $*
echo f1 $# $1 $2 $3
shift
echo f1 '$@' $@
echo f1 '$*' $*
echo f1 $# $1 $2 $3
}
f1
f1 a
f1 a b
f1 a b c
f1 a b c d
f1 a b c d e
function f2 {
echo f1 '$@' $@
echo f1 '$*' $*
echo f2 $# $1 $2 $3
shift 1
echo f1 '$@' $@
echo f1 '$*' $*
echo f2 $# $1 $2 $3
}
f2
f2 a
f2 a b
f2 a b c
f2 a b c d
f2 a b c d e
function f3 {
echo f1 '$@' $@
echo f1 '$*' $*
echo f3 $# $1 $2 $3
shift 3
echo f1 '$@' $@
echo f1 '$*' $*
echo f3 $# $1 $2 $3
}
f3
f3 a
f3 a b
f3 a b c
f3 a b c d
f3 a b c d e
function f4 {
echo f1 '$@' $@
echo f1 '$*' $*
echo f4 $# $1 $2 $3
shift 100
echo f1 '$@' $@
echo f1 '$*' $*
echo f4 $# $1 $2 $3
}
f4
f4 a
f4 a b
f4 a b c
f4 a b c d
f4 a b c d e

View file

@ -28,7 +28,7 @@ foo=foo
echo "" $foo
echo $bar $foo
bar=""
echo $bar $foo

View file

@ -1,4 +1,4 @@
#! /bin/bash -e
#! /bin/sh -e
# Compares GRUB script output with BASH output.
# Copyright (C) 2009,2010 Free Software Foundation, Inc.
@ -84,7 +84,7 @@ done
if [ "x${source}" = x ] ; then
tmpfile=`mktemp`
while read; do
while read REPLY; do
echo $REPLY >> ${tmpfile}
done
source=${tmpfile}