]> git.proxmox.com Git - grub2.git/blame - tests/grub_script_functions.in
merge with mainline
[grub2.git] / tests / grub_script_functions.in
CommitLineData
342bf06e
BC
1#! @builddir@/grub-shell-tester
2
3# Run GRUB script in a Qemu instance
4# Copyright (C) 2010 Free Software Foundation, Inc.
5#
6# GRUB is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10#
11# GRUB is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
18
19echo parameter count
20function fcount {
a0167e8b 21 echo fcount "$#"
342bf06e
BC
22}
23
24fcount
25fcount a
26fcount a b
27
28echo parameter count, with nesting
29function ffcount {
a0167e8b 30 echo ffcount "$#"
342bf06e
BC
31 fcount
32 fcount a
33 fcount a b
34}
35
36ffcount
37ffcount 1
38ffcount 1 2
39
40echo parameters
41function fparam {
a0167e8b
BC
42 echo fparam 1 $1
43 echo fparam 2 $2
44 echo fparam 3 $3
342bf06e
BC
45}
46
47fparam
48fparam a
49fparam a b
50
51echo parameters, with nesting
52function ffparam {
a0167e8b
BC
53 echo ffparam 1 $1
54 echo ffparam 2 $2
55 echo ffparam 3 $3
342bf06e
BC
56 fparam
57 fparam a
58 fparam a b
59}
60
61ffparam
62ffparam 1
63ffparam 1 2
a0167e8b
BC
64
65echo parameter expansion with specials
66function fstar {
67 for f in $*
68 do
69 echo fstar $f
70 done
04888e87
BC
71
72 for f in aaa$*bbb
73 do
74 echo fstar $f
75 done
a0167e8b
BC
76}
77
78fstar
79fstar a
80fstar a "1 2"
81fstar a "1 2" b
82
83function fdqstar {
84 for f in "$*"
85 do
86 echo fdqstar $f
87 done
04888e87
BC
88
89 for f in aaa"$*"bbb
90 do
91 echo fdqstar $f
92 done
93
94 for f in "aaa$*bbb"
95 do
96 echo fdqstar $f
97 done
a0167e8b
BC
98}
99
100fdqstar
101fdqstar a
102fdqstar a "1 2"
103fdqstar a "1 2" b
104
105function fat {
106 for f in $@
107 do
108 echo fat $f
109 done
04888e87
BC
110
111 for f in aaa$@bbb
112 do
113 echo fat $f
114 done
a0167e8b
BC
115}
116
117fat
118fat a
119fat a "1 2"
120fat a "1 2" b
121fat a "1 2" b "c d"
122fat a "1 2" b "c d" e
123
124function fdqat {
125 for f in "$@"
126 do
127 echo fdqat $f
128 done
04888e87
BC
129
130 for f in aaa"$@"bbb
131 do
132 echo fdqat $f
133 done
134
135 for f in "aaa$@bbb"
136 do
137 echo fdqat $f
138 done
a0167e8b
BC
139}
140
141# fdqat # this case needs special handling, lets ignore till we really need it.
142fdqat a
143fdqat a "1 2"
144fdqat a "1 2" b
145fdqat a "1 2" b "c d"
146fdqat a "1 2" b "c d" e
147