1Test::Smoke::Util(3) User Contributed Perl Documentation Test::Smoke::Util(3)
2
3
4
6 Test::Smoke::Util - Take out some of the functions of the smoke suite.
7
9 I've taken out some of the general stuff and put it here. Now I can
10 write some tests!
11
12 Configure_win32( $command[, $win32_maker[, @args]] )
13 Configure_win32() alters the settings of the makefile for MSWin32.
14
15 $command is in the form of './Configure -des -Dusedevel ...'
16
17 $win32_maker should either be "nmake" or "dmake", the default is
18 "nmake".
19
20 @args is a list of "option=value" pairs that will (eventually) be
21 passed to Config.pm.
22
23 PLEASE read README.win32 and study the comments in the makefile.
24
25 It supports these options:
26
27 • -Duseperlio
28
29 set USE_PERLIO = define (default) [should be depricated]
30
31 • -Dusethreads
32
33 set USE_ITHREADS = define (also sets USE_MULTI and USE_IMP_SYS)
34
35 • -Duseithreads
36
37 set USE_ITHREADS = define (also sets USE_MULTI and USE_IMP_SYS)
38
39 • -Dusemultiplicity
40
41 sets USE_MULTI = define (also sets USE_ITHREADS and USE_IMP_SYS)
42
43 • -Duseimpsys
44
45 sets USE_IMP_SYS = define (also sets USE_ITHREADS and USE_MULTI)
46
47 • -Dusemymalloc
48
49 set PERL_MALLOC = define
50
51 • -Duselargefiles
52
53 set USE_LARGE_FILES = define
54
55 • -Dbccold
56
57 set BCCOLD = define (this is for bcc32 <= 5.4)
58
59 • -Dgcc_v3_2
60
61 set USE_GCC_V3_2 = define (this is for gcc >= 3.2)
62
63 • -DDEBUGGING
64
65 sets CFG = Debug
66
67 • -DINST_DRV=...
68
69 sets INST_DRV to a new value (default is "c:")
70
71 • -DINST_TOP=...
72
73 sets INST_DRV to a new value (default is "$(INST_DRV)\perl"), this
74 is where perl will be installed when "[nd]make install" is run.
75
76 • -DINST_VER=...
77
78 sets INST_VER to a new value (default is forced not set), this is
79 also used as part of the installation path to get a more unixy
80 installation. Without "INST_VER" and "INST_ARCH" you get an
81 ActiveState like installation.
82
83 • -DINST_ARCH=...
84
85 sets INST_ARCH to a new value (default is forced not set), this is
86 also used as part of the installation path to get a more unixy
87 installation. Without "INST_VER" and "INST_ARCH" you get an
88 ActiveState like installation.
89
90 • -DCCHOME=...
91
92 Set the base directory for the C compiler. $(CCHOME)\bin still
93 needs to be in the path!
94
95 • -DIS_WIN95
96
97 sets IS_WIN95 to 'define' to indicate this is Win9[58]
98
99 • -DCRYPT_SRC=...
100
101 The file to use as source for des_fcrypt()
102
103 • -DCRYPT_LIB=...
104
105 The library to use for des_fcrypt()
106
107 • -Dcf_email=...
108
109 Set the cf_email option (Config.pm)
110
111 • -Accflags=...
112
113 Adds the option to BUILDOPT. This is implemented differently for
114 nmake and dmake. Returns the name of the outputfile.
115
116 set_vms_rooted_logical( $logical, $dir )
117 This will set a VMS rooted logical like:
118
119 define/translation=concealed $logical $dir
120
121 get_cfg_filename( )
122 get_cfg_filename() tries to find a cfg file and returns it.
123
124 read_logfile( )
125 Read the logfile. If an argument is passed, force to (re)read the log
126 If no argument is passed, return the stored log if available otherwise
127 read the logfile
128
129 grepccmsg( $cc, $logfile, $verbose )
130 This is a port of Jarkko Hietaniemi's grepccerr script.
131
132 grepnonfatal( $cc, $logfile, $verbose )
133 This is a way to find known failures that do not cause the tests to
134 fail but are important enough to report, like being unable to install
135 manual pages.
136
137 get_local_patches( $ddir )
138 get_local_patches() reads patchlevel.h to scan for the locally applied
139 patches array.
140
141 set_local_patch( $ddir, @descr )
142 Copy the code from patchlevel.h. Older (pre 5.8.1) perls do not have it
143 and it doesn't work on MSWin32.
144
145 get_config( $filename )
146 Read and parse the configuration from file, or return the default
147 config.
148
149 get_patch( [$ddir] )
150 Try to find the patchlevel, look for .patch or try to get it from
151 patchlevel.h as a fallback.
152
153 version_from_patchlevel_h( $ddir )
154 version_from_patchlevel_h() returns a "dotted" version as derived from
155 the patchlevel.h file in the distribution.
156
157 get_ncpu( $osname )
158 get_ncpu() returns the number of available (online/active/enabled)
159 CPUs.
160
161 It does this by using some operating system specific trick (usually by
162 running some external command and parsing the output).
163
164 If it cannot recognize your operating system an empty string is
165 returned. If it can recognize it but the external command failed, "?
166 cpus" is returned.
167
168 In the first case (where we really have no idea how to proceed), also a
169 warning ("get_ncpu: unknown operating system") is sent to STDERR.
170
171 WARNINGS
172 If you get the warning "get_ncpu: unknown operating system", you
173 will need to help us-- how does one tell the number of available
174 CPUs in your operating system? Sometimes there are several
175 different ways: please try to find the fastest one, and a one that
176 does not require superuser (administrator) rights.
177
178 Thanks to Jarkko Hietaniemi for donating this!
179
180 get_smoked_Config( $dir, @keys )
181 get_smoked_Config() returns a hash (a listified hash) with the
182 specified keys. It will try to find lib/Config.pm to get those values,
183 if that cannot be found (make error?) we can try config.sh which is
184 used to build lib/Config.pm. If config.sh is not there (./Configure
185 error?) we try to get some fallback information from POSIX::uname() and
186 patchlevel.h.
187
188 parse_report_Config( $report )
189 parse_report_Config() returns a list attributes from a smoke report.
190
191 my( $version, $plevel, $os, $osvers, $archname, $summary, $branch ) =
192 parse_report_Config( $rpt );
193
194 get_regen_headers( $ddir )
195 get_regen_headers() looks in $ddir to find either regen_headers.pl or
196 regen.pl (change 18851).
197
198 Returns undef if not found or a string like "$^X "$regen_headers_pl""
199
200 run_regen_headers( $ddir, $verbose );
201 run_regen_headers() gets its executable from get_regen_headers() and
202 opens a pipe from it. warn()s on error.
203
204 whereis( $prog )
205 Try to find an executable instance of $prog in $ENV{PATH}.
206
207 Rreturns a full file-path (with extension) to it.
208
209 vms_whereis( $prog )
210 First look in the SYMBOLS to see if $prog is there. Next look in the
211 KFE-table "INSTALL LIST" if it is there. As a last resort we can scan
212 "DCL$PATH" like we do on *nix/Win32
213
214 clean_filename( $fname )
215 clean_filename() basically returns a vmsify() type of filename for VMS,
216 and returns an upcase filename for case-ignorant filesystems.
217
218 calc_timeout( $killtime[, $from] )
219 calc_timeout() calculates the timeout in seconds. $killtime can be one
220 of two formats:
221
222 +hh:mm This format represents a duration and is the easy format as we
223 only need to translate that to seconds.
224
225 hh:mm This format represents a clock time (localtime). Calculate
226 minutes from midnight for both $killtime and localtime($from),
227 and get the difference. If $from is omitted, time() is used.
228
229 If $killtime is the actual time, the timeout will be 24 hours!
230
231 time_in_hhmm( $diff )
232 Create a string telling elapsed time in days, hours, minutes, seconds
233 from the number of seconds.
234
235 do_pod2usage( %pod2usage_options )
236 If Pod::Usage is there then call its pod2usage(). In the other case,
237 print the general message passed with the "myusage" key.
238
239 skip_config( $config )
240 Returns true if this config should be skipped. $config should be a
241 Test::Smoke::BuildCFG::Config object.
242
243 skip_filter( $line )
244 skip_filter() returns true if the filter rules apply to $line.
245
247 (c) 2001-2014, All rights reserved.
248
249 * H. Merijn Brand <h.m.brand@hccnet.nl>
250 * Nicholas Clark <nick@unfortu.net>
251 * Jarkko Hietaniemi <jhi@iki.fi>
252 * Abe Timmerman <abeltje@cpan.org>
253
254 This library is free software; you can redistribute it and/or modify it
255 under the same terms as Perl itself.
256
257 See:
258
259 * <http://www.perl.com/perl/misc/Artistic.html>,
260 * <http://www.gnu.org/copyleft/gpl.html>
261
262 This program is distributed in the hope that it will be useful, but
263 WITHOUT ANY WARRANTY; without even the implied warranty of
264 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
265
266
267
268perl v5.36.0 2023-01-20 Test::Smoke::Util(3)