1CONFIGSMOKE(1) User Contributed Perl Documentation CONFIGSMOKE(1)
2
3
4
6 configsmoke.pl - Create a configuration for tssmokeperl.pl
7
9 $ perl configsmoke.pl -p <prefix>[ -d <defaultsprefix>]
10
11 or regenerate from previous _config:
12
13 $ perl configsmoke.pl -p <prefix> -des
14
16 Current options:
17
18 -d dfvalsprefix Set prefix for a _dfconfig file (<prefix>)
19 -c configprefix When omitted 'perlcurrent' is used
20 -j jclprefix When omitted 'perlcurrent' is used
21 -l logprefix When omitted 'perlcurrent' is used
22 -p prefix Set -c and -j and -l at once
23
24 -des confirm all answers (needs previous _config)
25
27 Test::Smoke is the symbolic name for a set of scripts and modules that
28 try to run the perl core tests on as many configurations as possible
29 and combine the results into an easy to read report.
30
31 The main script is tssmokeperl.pl, and this uses a configuration file
32 that is created by this program (configsmoke.pl). There is no default
33 configuration as some actions can be rather destructive, so you will
34 need to create your own configuration by running this program!
35
36 By default the configuration file created is called
37 smokecurrent_config, this can be changed by specifying the "-c
38 <prefix>" or "-p <prefix>" switch at the command line ("-c" will
39 override "-p" when both are specified).
40
41 $ perl configsmoke.pl -c mysmoke
42
43 will create mysmoke_config as the configuration file.
44
45 After you are done configuring, a small job command list is written.
46 For MSWin32 this is called smokecurrent.cmd otherwise this is called
47 smokecurrent.sh. Again the default prefix can be overridden by
48 specifying the "-j <prefix>" or "-p <prefix>" switch.
49
50 All output (stdout, stderr) from tssmokeperl.pl and its sub-processes
51 is redirected to a logfile called smokecurrent.log by the small jcl.
52 (Use "-l <prefix>" or "-p <prefix>" to override).
53
54 There are two additional configuration default files smoke562_dfconfig
55 and smoke58x_dfconfig to help you configure Test::Smoke for these two
56 maintenance branches of the source-tree.
57
58 To create a configuration for the perl 5.8.x branch:
59
60 $ perl configsmoke.pl -p smoke58x
61
62 This will read additional defaults from smoke58x_dfconfig and create
63 smoke58x_config and smoke58x.sh/smoke58x.cmd and logfile will be
64 smoke58x.log.
65
66 To create another configuration for the same branch (and have the right
67 defaults) you can add the "-d" option:
68
69 $ perl configsmokepl -p snap58x -d smoke58x
70
71 To create a configuration for the perl 5.6.2 brach:
72
73 $ perl configsmoke.pl -p smoke562
74
76 Use of the program:
77
78 · Values in angled-brackets (<>) are alternatives (none other
79 allowed)
80
81 · Values in square-brackets ([]) are default values (<Enter>
82 confirms)
83
84 · Use single space to clear a value
85
86 Here is a description of the configuration sections.
87
88 perl_version
89 "perl_version" sets a number of default_values. This makes the
90 smoke5?x_dfconfig files almost obsolete, although they still
91 provide a nice way to set the prefix and set the perl_version.
92
93 ddir
94 "ddir" is the destination directory. This is used to put the
95 source-tree in and build perl. If a source-tree appears to be there
96 you will need to confirm your choice.
97
98 cfg "cfg" is the path to the file that holds the build-configurations.
99 There are several build-cfg files provided with the distribution:
100
101 perlcurrent.cfg for 5.11.x+ on unixy systems
102 perl510x.cfg for 5.10.x (MAINT) on unixy systems
103 perl58x.cfg for 5.8.x (MAINT) on unixy systems
104 w32current.cfg for 5.8.x+ on MSWin32
105 vmsperl.cfg for 5.8.x+ on OpenVMS
106 Nick Clark hardlink forest
107 Here is how Nick described it to me:
108
109 My plan is to use a few more directories, and avoid make distclean:
110
111 1. rsync as before, but to a master directory. this directory is
112 only used for rsyncing from the server
113
114 2. copy that directory (as a hardlink forest) - gnu cp can do it
115 as cp -lr, and I have a perl script to replicate that (which
116 works nicely on FreeBSD) as a clean master source directory for
117 this smoke session
118
119 3. run the regen headers script (which 5.9.0 now has as a distinct
120 script) rather than just a Makefile target
121
122 I now have a clean, up-to-date source tree with accurate
123 headers. For each smoking configuration
124
125 4. copy that directory (hard links again)
126
127 5. in the copy directory. Configure, build and test
128
129 6. delete the copy directory
130
131 deleting a directory seems to be faster than make distclean.
132
133 sync_type (fsync)
134 "sync_type" (or "fsync" if you want_forest) can be one of four:
135
136 rsync
137 This will use the rsync program to sync up with the repository.
138 configsmoke.pl checks to see if it can find rsync in your path.
139
140 The default switches passed to rsync are: -az --delete
141
142 snapshot
143 This will use Net::FTP to try to find the latest snapshot on
144 <ftp://ftp.funet.fi/languages/perl/snap/>.
145
146 You can also get the perl-5.8.x snapshots (and others) via HTTP
147 if you have LWP installed. There are two things you should
148 remember:
149
150 1. start the server-name http://
151 2. the snapshot-file must be specified.
152
153 Snapshots are not in sync with the repository, so if you have a
154 working patch program, you can choose to "upgrade" your
155 snapshot by fetching all the seperate patches from the
156 repository and applying them.
157
158 copy
159 This will use File::Copy and File::Find to just copy from a
160 local source directory.
161
162 hardlink
163 This will use File::Find and the link function to copy from a
164 local source directory. (This is also used if you choose
165 "forest".)
166
167 See also Test::Smoke::Syncer
168
169 pfile
170 "pfile" is the path to a textfile that holds the names of patches
171 to be applied before smoking. This can be used to run a smoke test
172 on proposed patches that have not been applied (yet) or to see the
173 effect of reversing an already applied patch. The file format is
174 simple:
175
176 · one patchfile per line
177
178 · optionally followed by ';' and options to pass to patch
179
180 · optionally followed by ';' and a description for the patch
181
182 If the file does not exist yet, a skeleton version will be created
183 for you.
184
185 You will need a working patch program to use this feature.
186
187 TODO: There is an issue when using the "forest" sync, but I will
188 look into that.
189
190 skip_tests
191 This is a MANIFEST-like file with the paths to tests that should be
192 skipped for this smoke.
193
194 The process involves on the fly modification of MANIFEST for tests
195 in lib/ and ext/ and renaming of core-tests in t/.
196
197 hostname
198 In the case "System::Info->hostname" needs to be overridden.
199
200 user_note
201 This gives you a way of adding personal information to the report.
202
203 un_file is the filename where the text to insert into the report is
204 set.
205
206 user_note is the old way to add this text.
207
208 un_position specify if you want the user_note on TOP or at the
209 BOTTOM of te report.
210
211 force_c_locale
212 "force_c_locale" is passed as a switch to mktest.pl to indicate
213 that $ENV{LC_ALL} should be forced to "C" during make test.
214
215 defaultenv
216 "defaultenv", when set will make Test::Smoke remove $ENV{PERLIO}
217 and only do a single pass "make test".
218
219 locale
220 "locale" and its value are passed to mktest.pl and its value is
221 passed to mkovz.pl. mktest.pl will do an extra pass of make test
222 with $ENV{LC_ALL} set to that locale (and "$ENV{PERL_UNICODE} =
223 "";", "$ENV{PERLIO} = "perlio";"). This feature should only be used
224 with UTF8 locales, that is why this is checked (by regex only).
225
226 If you know of a way to get the utf8 locales on your system, which
227 is not covered here, please let me know!
228
229 smokedb_url [http://perl5.test-smoke.org]
230 Instead of flooding a mailing list, reposts should be sent to the
231 SmokeDB. The option to mail yourself a copy of the report still
232 exists. The SmokeDB however offers a central point of view to the
233 smoke results.
234
235 send_log <always|on_fail|never> [on_fail]
236 Please send in the smoke-logfile for failures.
237
238 send_out <always|on_fail|never> [never]
239 mail
240 "{mail}" will set the new default for tssmokeperl.pl
241
242 mail_type
243 See Test::Smoke::Mailer and mailrpt.pl
244
245 w32args
246 For MSWin32 we need some extra information that is passed to
247 Test::Smoke::Smoker in order to compensate for the lack of
248 Configure.
249
250 See "Configure_win32( )" in Test::Smoke::Util and W32Configure.pl
251
252 vmsmake
253 Get the make program to use for VMS (MMS or MMK). Start with the
254 one this perl was build with.
255
256 make finetuning
257 Two different config options to accomodate the same thing: parallel
258 build and serial testing
259
260 * makeopt => used by Test::Smoke::Smoker::_make()
261 * testmake => use a different binary for "make _test"
262
263 harnessonly
264 "harnessonly" indicates that "make test" is replaced by "make
265 test_harness".
266
267 hasharness3
268 "hasharness3" is automagically set for perl version >= 5.11
269
270 harness3opts
271 "harness3opts" are passed to "HARNESS_OPTIONS" for the "make
272 test_harness" step.
273
274 umask
275 "umask" will be set in the shell-script that starts the smoke.
276
277 renice
278 "renice" will add a line in the shell-script that starts the smoke.
279
280 v The verbosity level:
281
282 0: Be as quiet as possible
283 1: Give moderate information
284 2: Be as loud as possible
285
286 Every module has its own verbosity control and these are not verry
287 consistent at the moment.
288
289 smartsmoke
290 "smartsmoke" indicates that the smoke need not happen if the
291 patchlevel is the same after syncing the source-tree.
292
293 killtime
294 When $Config{d_alarm} is found we can use "alarm()" to abort long
295 running smokes. Leave this value empty to keep the old behaviour.
296
297 07:30 => F<tssmokeperl.pl> is aborted on 7:30 localtime
298 +23:45 => F<tssmokeperl.pl> is aborted after 23 hours and 45 minutes
299
300 Thank you Jarkko for donating this suggestion.
301
302 adir
303 The smokereports are lost after a new SYNCTREE step, it might be
304 handy to archive them along with the logfile.
305
306 If you want this then set the directory where you want the stored
307 (empty value means no archiving).
308
309 delay_report
310 Some filesystems do not support opening an already opened file.
311 This makes it hard to scan the logfile for compiler messages. We
312 can delay the creation of the report and call mailrpt.pl after
313 tssmokeperl.pl. VMS might benefit.
314
315 PERL5LIB
316 If you have a value for PERL5LIB set in the config environment, you
317 could have it transferred tho the jcl-wrapperscript. Do not bother
318 asking if it is not there.
319
320 PERL5OPT
321 If you have a value for PERL5OPT set in the config environment, you
322 could have it transferred tho the jcl-wrapperscript. Do not bother
323 asking if it is not there.
324
325 schedule stuff
326 cron/crontab
327 We try to detect 'crontab' or 'cron', read the contents of
328 crontab -l, detect ourself and comment us out. Then we add an
329 new entry.
330
331 MSWin32 at.exe
332 We only add a new entry, you will need to remove existing
333 entries, as at.exe has not got a way comment-out entries.
334
336 save_config()
337 "save_config()" writes the configuration data to disk. If
338 "Data::Dumper->can('Sortkeys')" it will order the keys.
339
340 sort_configkeys()
341 "sort_configkeys()" is the hook for Data::Dumper
342
343 Order and grouping by Merijn, thanks!
344
345 write_sh()
346 "write_sh()" creates the shell-script.
347
348 write_bat()
349 "write_bat()" writes the batch-file. It uses the ".cmd" extension
350 because it uses commands that are not supported by COMMAND.COM
351
352 write_com
353 Write a simple DCL script that helps running the smoke suite.
354
355 default_buildcfg( $file_name, $pversion )
356 Check to see if $file_name exists. If not, copy the default config
357 for $pversion to $file_name.
358
359 check_buildcfg
360 We will try to check the build configurations file to see if we
361 should comment some options out.
362
363 finish_cfgcheck
364 "finish_cfgcheck()" will create a backup of the original file and
365 write the new one in its place.
366
367 _perl_numeric_version( $dotted )
368 Normalize the dotted version to a numeric version.
369
371 Schedule, logfile optional
372
374 In case I forget to update the $VERSION:
375
376 $Id$
377
379 (c) 2002-2003, All rights reserved.
380
381 * Abe Timmerman <abeltje@cpan.org>
382
383 This library is free software; you can redistribute it and/or modify it
384 under the same terms as Perl itself.
385
386 See:
387
388 · <http://www.perl.com/perl/misc/Artistic.html>
389
390 · <http://www.gnu.org/copyleft/gpl.html>
391
392 This program is distributed in the hope that it will be useful, but
393 WITHOUT ANY WARRANTY; without even the implied warranty of
394 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
395
396
397
398perl v5.30.1 2020-02-10 CONFIGSMOKE(1)