1BEAKER-WIZARD(1) Beaker BEAKER-WIZARD(1)
2
3
4
6 beaker-wizard - Tool to ease the creation of a new Beaker task
7
9 beaker-wizard [options] <testname> <bug>
10
11
12 The testname argument should be specified as:
13
14 [[[NAMESPACE/]PACKAGE/]TYPE/][PATH/]NAME
15
16 which can be shortened as you need:
17
18 TESTNAME
19 TYPE/TESTNAME
20 TYPE/PATH/TESTNAME
21 PACKAGE/TYPE/NAME
22 PACKAGE/TYPE/PATH/NAME
23 NAMESPACE/PACKAGE/TYPE/NAME
24 NAMESPACE/PACKAGE/TYPE/PATH/NAME
25 beaker-wizard Makefile
26
27
28 This form will run the Wizard in the Makefile edit mode which allows
29 you to quickly and simply update metadata of an already existing test
30 while trying to keep the rest of the Makefile untouched.
31
33 Beaker Wizard is a tool which can transform that "create all the neces‐
34 sary files with correct names, values, and paths" boring phase of every
35 test creation into one-line joy. For power users there is a lot of in‐
36 spiration in the man page. For quick start just cd to your test package
37 directory and simply run beaker-wizard.
38
39 The beaker-wizard was designed to be flexible: it is intended not only
40 for beginning Beaker users who will welcome questions with hints but
41 also for experienced test writers who can make use of the extensive
42 command-line options to push their new-test-creating productivity to
43 the limits.
44
45 For basic usage help, see Options below or run beaker-wizard -h. For
46 advanced features and expert usage examples, read on.
47
48 Highlights
49 • provide reasonable defaults wherever possible
50
51 • flexible confirmation (--every, --common, --yes)
52
53 • predefined skeletons (beaker, beakerlib, simple, multihost, library,
54 parametrized, empty)
55
56 • saved user preferences (defaults, user skeletons, licenses)
57
58 • Bugzilla integration (fetch bug info, reproducers, suggest name, de‐
59 scription)
60
61 • Makefile edit mode (quick adding of bugs, limiting archs or re‐
62 leases...)
63
64 • automated adding created files to the git repository
65
66 Skeletons
67 Another interesting feature is that you can save your own skeletons
68 into the preferences file, so that you can automatically populate the
69 new test scripts with your favourite structure.
70
71 All of the test related metadata gathered by the Wizard can be expanded
72 inside the skeletons using XML tags. For example: use <package/> for
73 expanding into the test package name or <test/> for the full test name.
74
75 The following metadata variables are available:
76
77 • test namespace package type path testname description
78
79 • bugs reproducers requires architectures releases version time
80
81 • priority license confidential destructive
82
83 • skeleton author email
84
86 -h, --help
87 show this help message and exit
88
89 -V, --version
90 display version info and quit
91
92 Basic metadata:
93
94 -d DESCRIPTION
95 short description
96
97 -a ARCHS
98 architectures [All]
99
100 -r RELEASES
101 releases [All]
102
103 -o PACKAGES
104 run for packages [wizard]
105
106 -q PACKAGES
107 required packages [wizard]
108
109 -t TIME
110 test time [5m]
111
112 Extra metadata:
113
114 -z VERSION
115 test version [1.0]
116
117 -p PRIORITY
118 priority [Normal]
119
120 -l LICENSE
121 license [GPLv2+]
122
123 -i INTERNAL
124 confidential [No]
125
126 -u UGLY
127 destructive [No]
128
129 Author info:
130
131 -n NAME
132 your name [Petr Splichal]
133
134 -m MAIL
135 your email address [psplicha@redhat.com <psplicha@red‐
136 hat.com>]
137
138 Test creation specifics:
139
140 -s SKELETON
141 skeleton to use [beakerlib]
142
143 -j PREFIX
144 join the bug prefix to the testname [Yes]
145
146 -f, --force
147 force without review and overwrite existing files
148
149 -w, --write
150 write preferences to ~/.beaker_client/wizard
151
152 -b, --bugzilla
153 contact bugzilla to get bug details
154
155 -g, --git
156 add created files to the git repository
157
158 Confirmation and verbosity:
159
160 -v, --verbose
161 display detailed info about every action
162
163 -e, --every
164 prompt for each and every available option
165
166 -c, --common
167 confirm only commonly used options [Default]
168
169 -y, --yes
170 yes, I'm sure, no questions, just do it!
171
173 Some brief examples:
174
175 beaker-wizard overload-performance 379791
176 regression test with specified bug and name
177 -> /CoreOS/perl/Regression/bz379791-overload-performance
178
179 beaker-wizard buffer-overflow 2008-1071 -a i386
180 security test with specified CVE and name, i386 arch only
181 -> /CoreOS/perl/Security/CVE-2008-1071-buffer-overflow
182
183 beaker-wizard Sanity/options -y -a?
184 sanity test with given name, ask just for architecture
185 -> /CoreOS/perl/Sanity/options
186
187 beaker-wizard Sanity/server/smoke
188 add an optional path under test type directory
189 -> /CoreOS/perl/Sanity/server/smoke
190
191 beaker-wizard -by 1234
192 contact bugzilla for details, no questions, just review
193 -> /CoreOS/installer/Regression/bz1234-Swap-partition-Installer
194
195 beaker-wizard -byf 2007-0455
196 security test, no questions, no review, overwrite existing files
197 -> /CoreOS/gd/Security/CVE-2007-0455-gd-buffer-overrun
198
199 All of the previous examples assume you're in the package tests direc‐
200 tory (e.g. cd git/tests/perl). All the necessary directories and files
201 are created under this location.
202
203 Bugzilla integration
204 The following example creates a regression test for bug #227655. Op‐
205 tion -b is used to contact Bugzilla to automatically fetch bug details
206 and -y to skip unnecessary questions.
207
208 # beaker-wizard -by 227655
209 Contacting bugzilla...
210 Fetching details for bz227655
211 Examining attachments for possible reproducers
212 Adding test.pl (simple test using Net::Config)
213 Adding libnet.cfg (libnet.cfg test config file)
214
215 Ready to create the test, please review
216 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217
218 /CoreOS/perl/Regression/bz227655-libnet-cfg-in-wrong-directory
219
220 Namespace : CoreOS
221 Package : perl
222 Test type : Regression
223 Relative path : None
224 Test name : bz227655-libnet-cfg-in-wrong-directory
225 Description : Test for bz227655 (libnet.cfg in wrong directory)
226
227 Bug or CVE numbers : bz227655
228 Reproducers to fetch : test.pl, libnet.cfg
229 Required packages : None
230 Architectures : All
231 Releases : All
232 Version : 1.0
233 Time : 5m
234
235 Priority : Normal
236 License : GPLv2+
237 Confidential : No
238 Destructive : No
239
240 Skeleton : beakerlib
241 Author : Petr Splichal
242 Email : psplicha@redhat.com
243
244 [Everything OK?]
245 Directory Regression/bz227655-libnet-cfg-in-wrong-directory created
246 File Regression/bz227655-libnet-cfg-in-wrong-directory/PURPOSE written
247 File Regression/bz227655-libnet-cfg-in-wrong-directory/runtest.sh written
248 File Regression/bz227655-libnet-cfg-in-wrong-directory/Makefile written
249 Attachment test.pl downloaded
250 Attachment libnet.cfg downloaded
251
252 Command line
253 The extensive command line syntax can come in handy for example when
254 creating a bunch of sanity tests for a component. Let's create a test
255 skeleton for each of wget's feature areas:
256
257 # cd git/tests/wget
258 # for test in download recursion rules authentication; do
259 > beaker-wizard -yf $test -t 10m -q httpd,vsftpd \
260 > -d "Sanity test for $test options"
261 > done
262
263 ...
264
265 /CoreOS/wget/Sanity/authentication
266
267 Namespace : CoreOS
268 Package : wget
269 Test type : Sanity
270 Relative path : None
271 Test name : authentication
272 Description : Sanity test for authentication options
273
274 Bug or CVE numbers : None
275 Reproducers to fetch : None
276 Required packages : httpd, vsftpd
277 Architectures : All
278 Releases : All
279 Version : 1.0
280 Time : 10m
281
282 Priority : Normal
283 License : GPLv2+
284 Confidential : No
285 Destructive : No
286
287 Skeleton : beakerlib
288 Author : Petr Splichal
289 Email : psplicha@redhat.com
290
291 Directory Sanity/authentication created
292 File Sanity/authentication/PURPOSE written
293 File Sanity/authentication/runtest.sh written
294 File Sanity/authentication/Makefile written
295
296 # tree
297 .
298 `-- Sanity
299 |-- authentication
300 | |-- Makefile
301 | |-- PURPOSE
302 | `-- runtest.sh
303 |-- download
304 | |-- Makefile
305 | |-- PURPOSE
306 | `-- runtest.sh
307 |-- recursion
308 | |-- Makefile
309 | |-- PURPOSE
310 | `-- runtest.sh
311 `-- rules
312 |-- Makefile
313 |-- PURPOSE
314 `-- runtest.sh
315
317 If you provide an option with a "?" you will be given a list of avail‐
318 able options and a prompt to type your choice in.
319
320 For working Bugzilla integration you need python-bugzilla package in‐
321 stalled on your system. If you are trying to access a bug with re‐
322 stricted access, log in to Bugzilla first with the following command:
323
324 bugzilla login
325
326 You will be asked for email and password and after successfully logging
327 in a ~/.bugzillacookies file will be created which then will be used in
328 all subsequent Bugzilla queries. Logout can be performed with rm
329 ~/.bugzillacookies ;-)
330
332 All commonly used preferences can be saved into ~/.beaker_client/wiz‐
333 ard. Use "write" command to save current settings when reviewing gath‐
334 ered test data or edit the file with you favourite editor.
335
336 All options in the config file are self-explanatory. For confirm level
337 choose one of: nothing, common or everything.
338
340 The "library" skeleton can be used to create a "library task". It al‐
341 lows you to bundle together common functionality which may be required
342 across multiple tasks. To learn more, see the BeakerLib documentation
343 for library tasks <https://github.com/beakerlib/beaker‐
344 lib/wiki/man#rlimport>.
345
347 If you encounter an issue or have an idea for enhancement, please file
348 a new bug <https://bugzilla.redhat.com/enter_bug.cgi?prod‐
349 uct=Beaker&component=command+line&short_desc=beaker-wizard:+&sta‐
350 tus_whiteboard=BeakerWizard&assigned_to=psplicha@redhat.com>. See also
351 open bugs <https://bugzilla.redhat.com/buglist.cgi?prod‐
352 uct=Beaker&bug_status=__open__&short_desc=beaker-wiz‐
353 ard&short_desc_type=allwordssubstr>.
354
356 • Beaker documentation <http://beaker-project.org/help.html>
357
358 • BeakerLib <https://github.com/beakerlib/beakerlib>
359
361 Petr Splichal <psplicha@redhat.com>
362
364 2013-2023 Red Hat, Inc.
365
366
367
368
36928.3 Nov 17, 2023 BEAKER-WIZARD(1)