2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								#!/usr/local/bin/perl -w 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Run the test suite and generate a report 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  ( !  - f  "Configure" )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    print  "Please run perl util/selftest.pl in the OpenSSL directory.\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ report = "testlog" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ os = "??" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ version = "??" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ platform0 = "??" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ platform = "??" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ options = "??" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ last = "??" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ ok = 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								my  $ cc = "cc" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								my  $ cversion = "??" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								my  $ sep = "-----------------------------------------------------------------------------\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-06-06 10:45:18 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								my  $ not_our_fault = "\nPlease ask your system administrator/vendor for more information.\n[Problems with your operating system setup should not be reported\nto the OpenSSL project.]\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								open ( OUT , ">$report" )  or  die ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "OpenSSL self-test report:\n\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ uname = `uname -a` ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 08:22:56 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ uname = "??\n"  if  $ uname  eq  "" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ c = `sh config -t` ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								foreach  $ _  ( split ( "\n" , $ c ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $ os = $ 1  if  ( /Operating system: (.*)$/ ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $ platform0 = $ 1  if  ( /Configuring for (.*)$/ ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-04-27 16:48:55 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								system  "sh config"  if  ( !  - f  "Makefile" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-04-27 16:48:55 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  ( open ( IN , "<Makefile" ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    while  ( <IN> )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$ version = $ 1  if  ( /^VERSION=(.*)$/ ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$ platform = $ 1  if  ( /^PLATFORM=(.*)$/ ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$ options = $ 1  if  ( /^OPTIONS=(.*)$/ ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									$ cc = $ 1  if  ( /^CC= *(.*)$/ ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    close ( IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    print  OUT  "Error running config!\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ cversion = `$cc -v 2>&1` ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-21 04:48:21 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ cversion = `$cc -V 2>&1`  if  $ cversion  =~  "[Uu]sage" ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-03-06 23:36:24 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ cversion = `$cc -V |head -1`  if  $ cversion  =~  "Error" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 12:41:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ cversion = `$cc --version`  if  $ cversion  eq  "" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ cversion  =~  s/Reading specs.*\n// ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ cversion  =~  s/usage.*\n// ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								chomp  $ cversion ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								if  ( open ( IN , "<CHANGES" ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    while ( <IN> )  { 
							 
						 
					
						
							
								
									
										
										
										
											2002-01-17 03:22:13 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( /\*\) (.{0,55})/  &&  ! /applies to/ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									    $ last = $ 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									    last ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    close ( IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "OpenSSL version:  $version\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "Last change:      $last...\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 12:41:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								print  OUT  "Options:          $options\n"  if  $ options  ne  "" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "OS (uname):       $uname" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "OS (config):      $os\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "Target (default): $platform0\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "Target:           $platform\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								print  OUT  "Compiler:         $cversion\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								print  OUT  "\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  "Checking compiler...\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 17:48:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  ( open ( TEST , ">cctest.c" ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-13 19:22:55 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    print  TEST  "#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\nmain(){printf(\"Hello world\\n\");}\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    close ( TEST ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 17:48:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    system ( "$cc -o cctest cctest.c" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 06:07:59 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  ( `./cctest`  !~  /Hello world/ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  "Compiler doesn't work.\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-06-06 10:45:18 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									print  OUT  $ not_our_fault ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									goto  err ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-21 02:19:38 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    system ( "ar r cctest.a /dev/null" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 08:22:56 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  ( not  - f  "cctest.a" )  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 10:06:04 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									print  OUT  "Check your archive tool (ar).\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-06-06 10:45:18 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									print  OUT  $ not_our_fault ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 08:22:56 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									goto  err ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 17:48:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    print  OUT  "Can't create cctest.c\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 17:48:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  ( open ( TEST , ">cctest.c" ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-13 19:22:55 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    print  TEST  "#include <stdio.h>\n#include <stdlib.h>\n#include <openssl/opensslv.h>\nmain(){printf(OPENSSL_VERSION_TEXT);}\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    close ( TEST ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 17:48:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    system ( "$cc -o cctest -Iinclude cctest.c" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    $ cctest  =  `./cctest` ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( $ cctest  !~  /OpenSSL $version/ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( $ cctest  =~  /OpenSSL/ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									    print  OUT  "#include uses headers from different OpenSSL version!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									    print  OUT  "Can't compile test program!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2000-06-06 10:45:18 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									print  OUT  $ not_our_fault ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									goto  err ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 17:48:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    print  OUT  "Can't create cctest.c\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  "Running make...\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  ( system ( "make 2>&1 | tee make.log" )  >  255 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    print  OUT  "make failed!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( open ( IN , "<make.log" ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  $ sep ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( <IN> )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									    print  OUT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									close ( IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  $ sep ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  "make.log not found!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    goto  err ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-06-06 16:38:05 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Not sure why this is here.  The tests themselves can detect if their 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# particular feature isn't included, and should therefore skip themselves. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# To skip *all* tests just because one algorithm isn't included is like 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# shooting mosquito with an elephant gun... 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#                   -- Richard Levitte, inspired by problem report 1089 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#$_=$options; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#s/no-asm//; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#s/no-shared//; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#s/no-krb5//; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#if (/no-/) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#    print OUT "Test skipped.\n"; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#    goto err; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#} 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 12:41:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								print  "Running make test...\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 08:22:56 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  ( system ( "make test 2>&1 | tee maketest.log" )  >  255 ) 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    print  OUT  "make test failed!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $ ok = 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 08:22:56 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  ( $ ok  and  open ( IN , "<maketest.log" ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    while  ( <IN> )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$ ok = 2  if  /^platform: $platform/ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    close ( IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  ( $ ok  !=  2 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    print  OUT  "Failure!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( open ( IN , "<make.log" ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  $ sep ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( <IN> )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									    print  OUT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									close ( IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  $ sep ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  "make.log not found!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-03-04 08:22:56 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  ( open ( IN , "<maketest.log" ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( <IN> )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									    print  OUT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									close ( IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  $ sep ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  OUT  "maketest.log not found!\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    print  OUT  "Test passed.\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								err: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								close ( OUT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								print  "\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								open ( IN , "<$report" )  or  die ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								while  ( <IN> )  { 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 12:41:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  ( /$sep/ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									print  "[...]\n" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									last ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 05:58:06 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    print ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 12:41:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								print  "\nTest report in file $report\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-02-24 07:47:05 +08:00