1#!./perl 2use strict; 3 4# quickie tests to see if h2ph actually runs and does more or less what is 5# expected 6 7BEGIN { 8 chdir 't' if -d 't'; 9 @INC = '../lib'; 10} 11 12require './test.pl'; 13 14my $extracted_program = '../utils/h2ph'; # unix, nt, ... 15if ($^O eq 'VMS') { $extracted_program = '[-.utils]h2ph.com'; } 16if (!(-e $extracted_program)) { 17 print "1..0 # Skip: $extracted_program was not built\n"; 18 exit 0; 19} 20 21plan(6); 22 23# quickly compare two text files 24sub txt_compare { 25 local $/; 26 my ($A, $B); 27 for (($A,$B) = @_) { open(_,"<$_") ? $_ = <_> : die "$_ : $!"; close _ } 28 $A cmp $B; 29} 30 31my $result = runperl( progfile => $extracted_program, 32 stderr => 1, 33 args => ['-d.', '-Q', 'lib/h2ph.h']); 34is( $result, '', "output is free of warnings" ); 35is( $?, 0, "$extracted_program runs successfully" ); 36 37is ( txt_compare("lib/h2ph.ph", "lib/h2ph.pht"), 38 0, 39 "generated file has expected contents" ); 40 41$result = runperl( progfile => 'lib/h2ph.pht', 42 switches => ['-c'], 43 stderr => 1 ); 44like( $result, qr/syntax OK$/, "output compiles"); 45 46$result = runperl( progfile => '_h2ph_pre.ph', 47 switches => ['-c'], 48 stderr => 1 ); 49like( $result, qr/syntax OK$/, "preamble compiles"); 50 51$result = runperl( switches => ['-I.', "-w"], 52 stderr => 1, 53 prog => <<'PROG' ); 54$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht); 55PROG 56is( $result, '', "output free of warnings" ); 57 58# cleanup 59END { 60 1 while unlink("lib/h2ph.ph"); 61 1 while unlink("_h2ph_pre.ph"); 62} 63