1 |
# perl script to run OpenSSL tests |
2 |
|
3 |
|
4 |
my $base_path = "\\openssl"; |
5 |
|
6 |
my $output_path = "$base_path\\test_out"; |
7 |
my $cert_path = "$base_path\\certs"; |
8 |
my $test_path = "$base_path\\test"; |
9 |
my $app_path = "$base_path\\apps"; |
10 |
|
11 |
my $tmp_cert = "$output_path\\cert.tmp"; |
12 |
my $OpenSSL_config = "$app_path\\openssl.cnf"; |
13 |
my $log_file = "$output_path\\tests.log"; |
14 |
|
15 |
my $pause = 0; |
16 |
|
17 |
|
18 |
# process the command line args to see if they wanted us to pause |
19 |
# between executing each command |
20 |
foreach $i (@ARGV) |
21 |
{ |
22 |
if ($i =~ /^-p$/) |
23 |
{ $pause=1; } |
24 |
} |
25 |
|
26 |
|
27 |
|
28 |
main(); |
29 |
|
30 |
|
31 |
############################################################################ |
32 |
sub main() |
33 |
{ |
34 |
# delete all the output files in the output directory |
35 |
unlink <$output_path\\*.*>; |
36 |
|
37 |
# open the main log file |
38 |
open(OUT, ">$log_file") || die "unable to open $log_file\n"; |
39 |
|
40 |
print( OUT "========================================================\n"); |
41 |
my $outFile = "$output_path\\version.out"; |
42 |
system("openssl2 version (CLIB_OPT)/>$outFile"); |
43 |
log_output("CHECKING FOR OPENSSL VERSION:", $outFile); |
44 |
|
45 |
algorithm_tests(); |
46 |
encryption_tests(); |
47 |
evp_tests(); |
48 |
pem_tests(); |
49 |
verify_tests(); |
50 |
ca_tests(); |
51 |
ssl_tests(); |
52 |
|
53 |
close(OUT); |
54 |
|
55 |
print("\nCompleted running tests.\n\n"); |
56 |
print("Check log file for errors: $log_file\n"); |
57 |
} |
58 |
|
59 |
############################################################################ |
60 |
sub algorithm_tests |
61 |
{ |
62 |
my $i; |
63 |
my $outFile; |
64 |
my @tests = ( rsa_test, destest, ideatest, bftest, bntest, shatest, sha1test, |
65 |
sha256t, sha512t, dsatest, md2test, md4test, md5test, mdc2test, |
66 |
rc2test, rc4test, rc5test, randtest, rmdtest, dhtest, ecdhtest, |
67 |
ecdsatest, ectest, exptest, casttest, hmactest ); |
68 |
|
69 |
print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n"); |
70 |
|
71 |
print( OUT "\n========================================================\n"); |
72 |
print( OUT "CRYPTO ALGORITHM TESTS:\n\n"); |
73 |
|
74 |
foreach $i (@tests) |
75 |
{ |
76 |
if (-e "$base_path\\$i.nlm") |
77 |
{ |
78 |
$outFile = "$output_path\\$i.out"; |
79 |
system("$i (CLIB_OPT)/>$outFile"); |
80 |
log_desc("Test: $i\.nlm:"); |
81 |
log_output("", $outFile ); |
82 |
} |
83 |
else |
84 |
{ |
85 |
log_desc("Test: $i\.nlm: file not found"); |
86 |
} |
87 |
} |
88 |
} |
89 |
|
90 |
############################################################################ |
91 |
sub encryption_tests |
92 |
{ |
93 |
my $i; |
94 |
my $outFile; |
95 |
my @enc_tests = ( "enc", "rc4", "des-cfb", "des-ede-cfb", "des-ede3-cfb", |
96 |
"des-ofb", "des-ede-ofb", "des-ede3-ofb", |
97 |
"des-ecb", "des-ede", "des-ede3", "des-cbc", |
98 |
"des-ede-cbc", "des-ede3-cbc", "idea-ecb", "idea-cfb", |
99 |
"idea-ofb", "idea-cbc", "rc2-ecb", "rc2-cfb", |
100 |
"rc2-ofb", "rc2-cbc", "bf-ecb", "bf-cfb", |
101 |
"bf-ofb", "bf-cbc" ); |
102 |
|
103 |
my $input = "$base_path\\do_tests.pl"; |
104 |
my $cipher = "$output_path\\cipher.out"; |
105 |
my $clear = "$output_path\\clear.out"; |
106 |
|
107 |
print( "\nRUNNING ENCRYPTION & DECRYPTION TESTS:\n\n"); |
108 |
|
109 |
print( OUT "\n========================================================\n"); |
110 |
print( OUT "FILE ENCRYPTION & DECRYPTION TESTS:\n\n"); |
111 |
|
112 |
foreach $i (@enc_tests) |
113 |
{ |
114 |
log_desc("Testing: $i"); |
115 |
|
116 |
# do encryption |
117 |
$outFile = "$output_path\\enc.out"; |
118 |
system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile" ); |
119 |
log_output("Encrypting: $input --> $cipher", $outFile); |
120 |
|
121 |
# do decryption |
122 |
$outFile = "$output_path\\dec.out"; |
123 |
system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile"); |
124 |
log_output("Decrypting: $cipher --> $clear", $outFile); |
125 |
|
126 |
# compare files |
127 |
$x = compare_files( $input, $clear, 1); |
128 |
if ( $x == 0 ) |
129 |
{ |
130 |
print( "\rSUCCESS - files match: $input, $clear\n"); |
131 |
print( OUT "SUCCESS - files match: $input, $clear\n"); |
132 |
} |
133 |
else |
134 |
{ |
135 |
print( "\rERROR: files don't match\n"); |
136 |
print( OUT "ERROR: files don't match\n"); |
137 |
} |
138 |
|
139 |
do_wait(); |
140 |
|
141 |
# Now do the same encryption but use Base64 |
142 |
|
143 |
# do encryption B64 |
144 |
$outFile = "$output_path\\B64enc.out"; |
145 |
system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile"); |
146 |
log_output("Encrypting(B64): $cipher --> $clear", $outFile); |
147 |
|
148 |
# do decryption B64 |
149 |
$outFile = "$output_path\\B64dec.out"; |
150 |
system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile"); |
151 |
log_output("Decrypting(B64): $cipher --> $clear", $outFile); |
152 |
|
153 |
# compare files |
154 |
$x = compare_files( $input, $clear, 1); |
155 |
if ( $x == 0 ) |
156 |
{ |
157 |
print( "\rSUCCESS - files match: $input, $clear\n"); |
158 |
print( OUT "SUCCESS - files match: $input, $clear\n"); |
159 |
} |
160 |
else |
161 |
{ |
162 |
print( "\rERROR: files don't match\n"); |
163 |
print( OUT "ERROR: files don't match\n"); |
164 |
} |
165 |
|
166 |
do_wait(); |
167 |
|
168 |
} # end foreach |
169 |
|
170 |
# delete the temporary files |
171 |
unlink($cipher); |
172 |
unlink($clear); |
173 |
} |
174 |
|
175 |
|
176 |
############################################################################ |
177 |
sub pem_tests |
178 |
{ |
179 |
my $i; |
180 |
my $tmp_out; |
181 |
my $outFile = "$output_path\\pem.out"; |
182 |
|
183 |
my %pem_tests = ( |
184 |
"crl" => "testcrl.pem", |
185 |
"pkcs7" => "testp7.pem", |
186 |
"req" => "testreq2.pem", |
187 |
"rsa" => "testrsa.pem", |
188 |
"x509" => "testx509.pem", |
189 |
"x509" => "v3-cert1.pem", |
190 |
"sess_id" => "testsid.pem" ); |
191 |
|
192 |
|
193 |
print( "\nRUNNING PEM TESTS:\n\n"); |
194 |
|
195 |
print( OUT "\n========================================================\n"); |
196 |
print( OUT "PEM TESTS:\n\n"); |
197 |
|
198 |
foreach $i (keys(%pem_tests)) |
199 |
{ |
200 |
log_desc( "Testing: $i"); |
201 |
|
202 |
my $input = "$test_path\\$pem_tests{$i}"; |
203 |
|
204 |
$tmp_out = "$output_path\\$pem_tests{$i}"; |
205 |
|
206 |
if ($i ne "req" ) |
207 |
{ |
208 |
system("openssl2 $i -in $input -out $tmp_out (CLIB_OPT)/>$outFile"); |
209 |
log_output( "openssl2 $i -in $input -out $tmp_out", $outFile); |
210 |
} |
211 |
else |
212 |
{ |
213 |
system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config (CLIB_OPT)/>$outFile"); |
214 |
log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile ); |
215 |
} |
216 |
|
217 |
$x = compare_files( $input, $tmp_out); |
218 |
if ( $x == 0 ) |
219 |
{ |
220 |
print( "\rSUCCESS - files match: $input, $tmp_out\n"); |
221 |
print( OUT "SUCCESS - files match: $input, $tmp_out\n"); |
222 |
} |
223 |
else |
224 |
{ |
225 |
print( "\rERROR: files don't match\n"); |
226 |
print( OUT "ERROR: files don't match\n"); |
227 |
} |
228 |
do_wait(); |
229 |
|
230 |
} # end foreach |
231 |
} |
232 |
|
233 |
|
234 |
############################################################################ |
235 |
sub verify_tests |
236 |
{ |
237 |
my $i; |
238 |
my $outFile = "$output_path\\verify.out"; |
239 |
|
240 |
$cert_path =~ s/\\/\//g; |
241 |
my @cert_files = <$cert_path/*.pem>; |
242 |
|
243 |
print( "\nRUNNING VERIFY TESTS:\n\n"); |
244 |
|
245 |
print( OUT "\n========================================================\n"); |
246 |
print( OUT "VERIFY TESTS:\n\n"); |
247 |
|
248 |
make_tmp_cert_file(); |
249 |
|
250 |
foreach $i (@cert_files) |
251 |
{ |
252 |
system("openssl2 verify -CAfile $tmp_cert $i (CLIB_OPT)/>$outFile"); |
253 |
log_desc("Verifying cert: $i"); |
254 |
log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile); |
255 |
} |
256 |
} |
257 |
|
258 |
|
259 |
############################################################################ |
260 |
sub ssl_tests |
261 |
{ |
262 |
my $outFile = "$output_path\\ssl_tst.out"; |
263 |
my($CAcert) = "$output_path\\certCA.ss"; |
264 |
my($Ukey) = "$output_path\\keyU.ss"; |
265 |
my($Ucert) = "$output_path\\certU.ss"; |
266 |
my($ssltest)= "ssltest -key $Ukey -cert $Ucert -c_key $Ukey -c_cert $Ucert -CAfile $CAcert"; |
267 |
|
268 |
print( "\nRUNNING SSL TESTS:\n\n"); |
269 |
|
270 |
print( OUT "\n========================================================\n"); |
271 |
print( OUT "SSL TESTS:\n\n"); |
272 |
|
273 |
system("ssltest -ssl2 (CLIB_OPT)/>$outFile"); |
274 |
log_desc("Testing sslv2:"); |
275 |
log_output("ssltest -ssl2", $outFile); |
276 |
|
277 |
system("$ssltest -ssl2 -server_auth (CLIB_OPT)/>$outFile"); |
278 |
log_desc("Testing sslv2 with server authentication:"); |
279 |
log_output("$ssltest -ssl2 -server_auth", $outFile); |
280 |
|
281 |
system("$ssltest -ssl2 -client_auth (CLIB_OPT)/>$outFile"); |
282 |
log_desc("Testing sslv2 with client authentication:"); |
283 |
log_output("$ssltest -ssl2 -client_auth", $outFile); |
284 |
|
285 |
system("$ssltest -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile"); |
286 |
log_desc("Testing sslv2 with both client and server authentication:"); |
287 |
log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile); |
288 |
|
289 |
system("ssltest -ssl3 (CLIB_OPT)/>$outFile"); |
290 |
log_desc("Testing sslv3:"); |
291 |
log_output("ssltest -ssl3", $outFile); |
292 |
|
293 |
system("$ssltest -ssl3 -server_auth (CLIB_OPT)/>$outFile"); |
294 |
log_desc("Testing sslv3 with server authentication:"); |
295 |
log_output("$ssltest -ssl3 -server_auth", $outFile); |
296 |
|
297 |
system("$ssltest -ssl3 -client_auth (CLIB_OPT)/>$outFile"); |
298 |
log_desc("Testing sslv3 with client authentication:"); |
299 |
log_output("$ssltest -ssl3 -client_auth", $outFile); |
300 |
|
301 |
system("$ssltest -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile"); |
302 |
log_desc("Testing sslv3 with both client and server authentication:"); |
303 |
log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile); |
304 |
|
305 |
system("ssltest (CLIB_OPT)/>$outFile"); |
306 |
log_desc("Testing sslv2/sslv3:"); |
307 |
log_output("ssltest", $outFile); |
308 |
|
309 |
system("$ssltest -server_auth (CLIB_OPT)/>$outFile"); |
310 |
log_desc("Testing sslv2/sslv3 with server authentication:"); |
311 |
log_output("$ssltest -server_auth", $outFile); |
312 |
|
313 |
system("$ssltest -client_auth (CLIB_OPT)/>$outFile"); |
314 |
log_desc("Testing sslv2/sslv3 with client authentication:"); |
315 |
log_output("$ssltest -client_auth ", $outFile); |
316 |
|
317 |
system("$ssltest -server_auth -client_auth (CLIB_OPT)/>$outFile"); |
318 |
log_desc("Testing sslv2/sslv3 with both client and server authentication:"); |
319 |
log_output("$ssltest -server_auth -client_auth", $outFile); |
320 |
|
321 |
system("ssltest -bio_pair -ssl2 (CLIB_OPT)/>$outFile"); |
322 |
log_desc("Testing sslv2 via BIO pair:"); |
323 |
log_output("ssltest -bio_pair -ssl2", $outFile); |
324 |
|
325 |
system("ssltest -bio_pair -dhe1024dsa -v (CLIB_OPT)/>$outFile"); |
326 |
log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:"); |
327 |
log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile); |
328 |
|
329 |
system("$ssltest -bio_pair -ssl2 -server_auth (CLIB_OPT)/>$outFile"); |
330 |
log_desc("Testing sslv2 with server authentication via BIO pair:"); |
331 |
log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile); |
332 |
|
333 |
system("$ssltest -bio_pair -ssl2 -client_auth (CLIB_OPT)/>$outFile"); |
334 |
log_desc("Testing sslv2 with client authentication via BIO pair:"); |
335 |
log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile); |
336 |
|
337 |
system("$ssltest -bio_pair -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile"); |
338 |
log_desc("Testing sslv2 with both client and server authentication via BIO pair:"); |
339 |
log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile); |
340 |
|
341 |
system("ssltest -bio_pair -ssl3 (CLIB_OPT)/>$outFile"); |
342 |
log_desc("Testing sslv3 via BIO pair:"); |
343 |
log_output("ssltest -bio_pair -ssl3", $outFile); |
344 |
|
345 |
system("$ssltest -bio_pair -ssl3 -server_auth (CLIB_OPT)/>$outFile"); |
346 |
log_desc("Testing sslv3 with server authentication via BIO pair:"); |
347 |
log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile); |
348 |
|
349 |
system("$ssltest -bio_pair -ssl3 -client_auth (CLIB_OPT)/>$outFile"); |
350 |
log_desc("Testing sslv3 with client authentication via BIO pair:"); |
351 |
log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile); |
352 |
|
353 |
system("$ssltest -bio_pair -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile"); |
354 |
log_desc("Testing sslv3 with both client and server authentication via BIO pair:"); |
355 |
log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile); |
356 |
|
357 |
system("ssltest -bio_pair (CLIB_OPT)/>$outFile"); |
358 |
log_desc("Testing sslv2/sslv3 via BIO pair:"); |
359 |
log_output("ssltest -bio_pair", $outFile); |
360 |
|
361 |
system("$ssltest -bio_pair -server_auth (CLIB_OPT)/>$outFile"); |
362 |
log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:"); |
363 |
log_output("$ssltest -bio_pair -server_auth", $outFile); |
364 |
|
365 |
system("$ssltest -bio_pair -client_auth (CLIB_OPT)/>$outFile"); |
366 |
log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:"); |
367 |
log_output("$ssltest -bio_pair -client_auth", $outFile); |
368 |
|
369 |
system("$ssltest -bio_pair -server_auth -client_auth (CLIB_OPT)/>$outFile"); |
370 |
log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:"); |
371 |
log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile); |
372 |
} |
373 |
|
374 |
|
375 |
############################################################################ |
376 |
sub ca_tests |
377 |
{ |
378 |
my $outFile = "$output_path\\ca_tst.out"; |
379 |
|
380 |
my($CAkey) = "$output_path\\keyCA.ss"; |
381 |
my($CAcert) = "$output_path\\certCA.ss"; |
382 |
my($CAserial) = "$output_path\\certCA.srl"; |
383 |
my($CAreq) = "$output_path\\reqCA.ss"; |
384 |
my($CAreq2) = "$output_path\\req2CA.ss"; |
385 |
|
386 |
my($CAconf) = "$test_path\\CAss.cnf"; |
387 |
|
388 |
my($Uconf) = "$test_path\\Uss.cnf"; |
389 |
|
390 |
my($Ukey) = "$output_path\\keyU.ss"; |
391 |
my($Ureq) = "$output_path\\reqU.ss"; |
392 |
my($Ucert) = "$output_path\\certU.ss"; |
393 |
|
394 |
print( "\nRUNNING CA TESTS:\n\n"); |
395 |
|
396 |
print( OUT "\n========================================================\n"); |
397 |
print( OUT "CA TESTS:\n"); |
398 |
|
399 |
system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new (CLIB_OPT)/>$outFile"); |
400 |
log_desc("Make a certificate request using req:"); |
401 |
log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile); |
402 |
|
403 |
system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey (CLIB_OPT)/>$outFile"); |
404 |
log_desc("Convert the certificate request into a self signed certificate using x509:"); |
405 |
log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile); |
406 |
|
407 |
system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 (CLIB_OPT)/>$outFile"); |
408 |
log_desc("Convert a certificate into a certificate request using 'x509':"); |
409 |
log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile); |
410 |
|
411 |
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout (CLIB_OPT)/>$outFile"); |
412 |
log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile); |
413 |
|
414 |
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout (CLIB_OPT)/>$outFile"); |
415 |
log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile); |
416 |
|
417 |
system("openssl2 verify -CAfile $CAcert $CAcert (CLIB_OPT)/>$outFile"); |
418 |
log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile); |
419 |
|
420 |
system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new (CLIB_OPT)/>$outFile"); |
421 |
log_desc("Make another certificate request using req:"); |
422 |
log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile); |
423 |
|
424 |
system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial (CLIB_OPT)/>$outFile"); |
425 |
log_desc("Sign certificate request with the just created CA via x509:"); |
426 |
log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile); |
427 |
|
428 |
system("openssl2 verify -CAfile $CAcert $Ucert (CLIB_OPT)/>$outFile"); |
429 |
log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile); |
430 |
|
431 |
system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert (CLIB_OPT)/>$outFile"); |
432 |
log_desc("Certificate details"); |
433 |
log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile); |
434 |
|
435 |
print(OUT "--\n"); |
436 |
print(OUT "The generated CA certificate is $CAcert\n"); |
437 |
print(OUT "The generated CA private key is $CAkey\n"); |
438 |
print(OUT "The current CA signing serial number is in $CAserial\n"); |
439 |
|
440 |
print(OUT "The generated user certificate is $Ucert\n"); |
441 |
print(OUT "The generated user private key is $Ukey\n"); |
442 |
print(OUT "--\n"); |
443 |
} |
444 |
|
445 |
############################################################################ |
446 |
sub evp_tests |
447 |
{ |
448 |
my $i = 'evp_test'; |
449 |
|
450 |
print( "\nRUNNING EVP TESTS:\n\n"); |
451 |
|
452 |
print( OUT "\n========================================================\n"); |
453 |
print( OUT "EVP TESTS:\n\n"); |
454 |
|
455 |
if (-e "$base_path\\$i.nlm") |
456 |
{ |
457 |
my $outFile = "$output_path\\$i.out"; |
458 |
system("$i $test_path\\evptests.txt (CLIB_OPT)/>$outFile"); |
459 |
log_desc("Test: $i\.nlm:"); |
460 |
log_output("", $outFile ); |
461 |
} |
462 |
else |
463 |
{ |
464 |
log_desc("Test: $i\.nlm: file not found"); |
465 |
} |
466 |
} |
467 |
|
468 |
############################################################################ |
469 |
sub log_output( $ $ ) |
470 |
{ |
471 |
my( $desc, $file ) = @_; |
472 |
my($error) = 0; |
473 |
my($key); |
474 |
my($msg); |
475 |
|
476 |
if ($desc) |
477 |
{ |
478 |
print("\r$desc\n"); |
479 |
print(OUT "$desc\n"); |
480 |
} |
481 |
|
482 |
# loop waiting for test program to complete |
483 |
while ( stat($file) == 0) |
484 |
{ print(". "); sleep(1); } |
485 |
|
486 |
|
487 |
# copy test output to log file |
488 |
open(IN, "<$file"); |
489 |
while (<IN>) |
490 |
{ |
491 |
print(OUT $_); |
492 |
if ( $_ =~ /ERROR/ ) |
493 |
{ |
494 |
$error = 1; |
495 |
} |
496 |
} |
497 |
# close and delete the temporary test output file |
498 |
close(IN); |
499 |
unlink($file); |
500 |
|
501 |
if ( $error == 0 ) |
502 |
{ |
503 |
$msg = "Test Succeeded"; |
504 |
} |
505 |
else |
506 |
{ |
507 |
$msg = "Test Failed"; |
508 |
} |
509 |
|
510 |
print(OUT "$msg\n"); |
511 |
|
512 |
if ($pause) |
513 |
{ |
514 |
print("$msg - press ENTER to continue..."); |
515 |
$key = getc; |
516 |
print("\n"); |
517 |
} |
518 |
|
519 |
# Several of the testing scripts run a loop loading the |
520 |
# same NLM with different options. |
521 |
# On slow NetWare machines there appears to be some delay in the |
522 |
# OS actually unloading the test nlms and the OS complains about. |
523 |
# the NLM already being loaded. This additional pause is to |
524 |
# to help provide a little more time for unloading before trying to |
525 |
# load again. |
526 |
sleep(1); |
527 |
} |
528 |
|
529 |
|
530 |
############################################################################ |
531 |
sub log_desc( $ ) |
532 |
{ |
533 |
my( $desc ) = @_; |
534 |
|
535 |
print("\n"); |
536 |
print("$desc\n"); |
537 |
|
538 |
print(OUT "\n"); |
539 |
print(OUT "$desc\n"); |
540 |
print(OUT "======================================\n"); |
541 |
} |
542 |
|
543 |
############################################################################ |
544 |
sub compare_files( $ $ $ ) |
545 |
{ |
546 |
my( $file1, $file2, $binary ) = @_; |
547 |
my( $n1, $n2, $b1, $b2 ); |
548 |
my($ret) = 1; |
549 |
|
550 |
open(IN0, $file1) || die "\nunable to open $file1\n"; |
551 |
open(IN1, $file2) || die "\nunable to open $file2\n"; |
552 |
|
553 |
if ($binary) |
554 |
{ |
555 |
binmode IN0; |
556 |
binmode IN1; |
557 |
} |
558 |
|
559 |
for (;;) |
560 |
{ |
561 |
$n1 = read(IN0, $b1, 512); |
562 |
$n2 = read(IN1, $b2, 512); |
563 |
|
564 |
if ($n1 != $n2) {last;} |
565 |
if ($b1 != $b2) {last;} |
566 |
|
567 |
if ($n1 == 0) |
568 |
{ |
569 |
$ret = 0; |
570 |
last; |
571 |
} |
572 |
} |
573 |
close(IN0); |
574 |
close(IN1); |
575 |
return($ret); |
576 |
} |
577 |
|
578 |
############################################################################ |
579 |
sub do_wait() |
580 |
{ |
581 |
my($key); |
582 |
|
583 |
if ($pause) |
584 |
{ |
585 |
print("Press ENTER to continue..."); |
586 |
$key = getc; |
587 |
print("\n"); |
588 |
} |
589 |
} |
590 |
|
591 |
|
592 |
############################################################################ |
593 |
sub make_tmp_cert_file() |
594 |
{ |
595 |
my @cert_files = <$cert_path/*.pem>; |
596 |
|
597 |
# delete the file if it already exists |
598 |
unlink($tmp_cert); |
599 |
|
600 |
open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n"; |
601 |
|
602 |
print("building temporary cert file\n"); |
603 |
|
604 |
# create a temporary cert file that contains all the certs |
605 |
foreach $i (@cert_files) |
606 |
{ |
607 |
open( IN_CERT, $i ) || die "\nunable to open $i\n"; |
608 |
|
609 |
for(;;) |
610 |
{ |
611 |
$n = sysread(IN_CERT, $data, 1024); |
612 |
|
613 |
if ($n == 0) |
614 |
{ |
615 |
close(IN_CERT); |
616 |
last; |
617 |
}; |
618 |
|
619 |
syswrite(TMP_CERT, $data, $n); |
620 |
} |
621 |
} |
622 |
|
623 |
close( TMP_CERT ); |
624 |
} |