xref: /openbsd/gnu/usr.bin/perl/lib/h2ph.t (revision fc61954a)
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