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 ommited 'perlcurrent' is used
20 -j jclprefix When ommited 'perlcurrent' is used
21 -l logprefix When ommited '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 user_note
198 This gives you a way of adding personal information to the report.
199
200 un_file is the filename where the text to insert into the report is
201 set.
202
203 user_note is the old way to add this text.
204
205 un_position specify if you want the user_note on TOP or at the
206 BOTTOM of te report.
207
208 force_c_locale
209 "force_c_locale" is passed as a switch to mktest.pl to indicate
210 that $ENV{LC_ALL} should be forced to "C" during make test.
211
212 defaultenv
213 "defaultenv", when set will make Test::Smoke remove $ENV{PERLIO}
214 and only do a single pass "make test".
215
216 locale
217 "locale" and its value are passed to mktest.pl and its value is
218 passed to mkovz.pl. mktest.pl will do an extra pass of make test
219 with $ENV{LC_ALL} set to that locale (and "$ENV{PERL_UNICODE} =
220 "";", "$ENV{PERLIO} = "perlio";"). This feature should only be used
221 with UTF8 locales, that is why this is checked (by regex only).
222
223 If you know of a way to get the utf8 locales on your system, which
224 is not coverd here, please let me know!
225
226 smokedb_url [http://perl5.test-smoke.org]
227 Instead of flooding a mailing list, reposts should be sent to the
228 SmokeDB. The option to mail yourself a copy of the report still
229 exists. The SmokeDB however offers a central point of view to the
230 smoke results.
231
232 send_log <always|on_fail|never> [on_fail]
233 Please send in the smoke-logfile for failures.
234
235 send_out <always|on_fail|never> [never]
236 mail
237 "{mail}" will set the new default for tssmokeperl.pl
238
239 mail_type
240 See Test::Smoke::Mailer and mailrpt.pl
241
242 w32args
243 For MSWin32 we need some extra information that is passed to
244 Test::Smoke::Smoker in order to compensate for the lack of
245 Configure.
246
247 See "Configure_win32( )" in Test::Smoke::Util and W32Configure.pl
248
249 vmsmake
250 Get the make program to use for VMS (MMS or MMK). Start with the
251 one this perl was build with.
252
253 make finetuning
254 Two different config options to accomodate the same thing: parallel
255 build and serial testing
256
257 * makeopt => used by Test::Smoke::Smoker::_make()
258 * testmake => use a different binary for "make _test"
259
260 harnessonly
261 "harnessonly" indicates that "make test" is replaced by "make
262 test_harness".
263
264 hasharness3
265 "hasharness3" is automagically set for perl version >= 5.11
266
267 harness3opts
268 "harness3opts" are passed to "HARNESS_OPTIONS" for the "make
269 test_harness" step.
270
271 umask
272 "umask" will be set in the shell-script that starts the smoke.
273
274 renice
275 "renice" will add a line in the shell-script that starts the smoke.
276
277 v The verbosity level:
278
279 0: Be as quiet as possible
280 1: Give moderate information
281 2: Be as loud as possible
282
283 Every module has its own verbosity control and these are not verry
284 consistent at the moment.
285
286 smartsmoke
287 "smartsmoke" indicates that the smoke need not happen if the
288 patchlevel is the same after syncing the source-tree.
289
290 killtime
291 When $Config{d_alarm} is found we can use "alarm()" to abort long
292 running smokes. Leave this value empty to keep the old behaviour.
293
294 07:30 => F<tssmokeperl.pl> is aborted on 7:30 localtime
295 +23:45 => F<tssmokeperl.pl> is aborted after 23 hours and 45 minutes
296
297 Thank you Jarkko for donating this suggestion.
298
299 adir
300 The smokereports are lost after a new SYNCTREE step, it might be
301 handy to archive them along with the logfile.
302
303 If you want this then set the directory where you want the stored
304 (empty value means no archiving).
305
306 delay_report
307 Some filesystems do not support opening an already opened file.
308 This makes it hard to scan the logfile for compiler messages. We
309 can delay the creation of the report and call mailrpt.pl after
310 tssmokeperl.pl. VMS might benefit.
311
312 PERL5LIB
313 If you have a value for PERL5LIB set in the config environment, you
314 could have it transferred tho the jcl-wrapperscript. Do not bother
315 asking if it is not there.
316
317 PERL5OPT
318 If you have a value for PERL5OPT set in the config environment, you
319 could have it transferred tho the jcl-wrapperscript. Do not bother
320 asking if it is not there.
321
322 schedule stuff
323 cron/crontab
324 We try to detect 'crontab' or 'cron', read the contents of
325 crontab -l, detect ourself and comment us out. Then we add an
326 new entry.
327
328 MSWin32 at.exe
329 We only add a new entry, you will need to remove existing
330 entries, as at.exe has not got a way comment-out entries.
331
333 save_config()
334 "save_config()" writes the configuration data to disk. If
335 "Data::Dumper->can('Sortkeys')" it will order the keys.
336
337 sort_configkeys()
338 "sort_configkeys()" is the hook for Data::Dumper
339
340 Order and grouping by Merijn, thanks!
341
342 write_sh()
343 "write_sh()" creates the shell-script.
344
345 write_bat()
346 "write_bat()" writes the batch-file. It uses the ".cmd" extension
347 because it uses commands that are not supported by COMMAND.COM
348
349 write_com
350 Write a simple DCL script that helps running the smoke suite.
351
352 default_buildcfg( $file_name, $pversion )
353 Check to see if $file_name exists. If not, copy the default config
354 for $pversion to $file_name.
355
356 check_buildcfg
357 We will try to check the build configurations file to see if we
358 should comment some options out.
359
360 finish_cfgcheck
361 "finish_cfgcheck()" will create a backup of the original file and
362 write the new one in its place.
363
364 _perl_numeric_version( $dotted )
365 Normalize the dotted version to a numeric version.
366
368 Schedule, logfile optional
369
371 In case I forget to update the $VERSION:
372
373 $Id$
374
376 (c) 2002-2003, All rights reserved.
377
378 * Abe Timmerman <abeltje@cpan.org>
379
380 This library is free software; you can redistribute it and/or modify it
381 under the same terms as Perl itself.
382
383 See:
384
385 · <http://www.perl.com/perl/misc/Artistic.html>
386
387 · <http://www.gnu.org/copyleft/gpl.html>
388
389 This program is distributed in the hope that it will be useful, but
390 WITHOUT ANY WARRANTY; without even the implied warranty of
391 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
392
393
394
395perl v5.28.1 2017-05-22 CONFIGSMOKE(1)