]>
Commit | Line | Data |
---|---|---|
be223152 RL |
1 | #! /usr/bin/env perl |
2 | # | |
3 | # TEST c-compress-pl with a number of examples and what should happen to them | |
4 | ||
5 | use strict; | |
6 | use warnings; | |
7 | ||
8 | use File::Basename; | |
9 | ||
10 | my @pairs = | |
11 | ( | |
12 | [ <<'_____' | |
13 | /* A hell of a program */ | |
14 | #def\ | |
15 | ine foo/* bar */ 3 | |
16 | #define bar /* haha "A /* comment */ that should /* remain" */ | |
17 | #define haha /* hoho */ "A /* comment */ that should /* remain" */ | |
18 | ||
19 | int main() { | |
20 | int x; | |
21 | /* one lonely comment */ | |
22 | } | |
23 | _____ | |
24 | , <<'_____' | |
25 | #define foo 3 | |
26 | #define bar that should | |
27 | #define haha "A /* comment */ that should /* remain" */ | |
28 | int main() { | |
29 | int x; | |
30 | } | |
31 | _____ | |
32 | ] | |
33 | ); | |
34 | ||
35 | my $here = dirname $0; | |
36 | my $c_compress = "$here/lang-compress.pl"; | |
37 | ||
38 | use FileHandle; | |
39 | use IPC::Open2; | |
40 | use Text::Diff; | |
41 | foreach (@pairs) { | |
42 | my $source = $_->[0]; | |
43 | my $expected = $_->[1]; | |
44 | my $pid = open2(\*Reader, \*Writer, "perl $c_compress 'C'"); | |
45 | print Writer $source; | |
46 | close Writer; | |
47 | ||
48 | local $/ = undef; # slurp | |
49 | my $got = <Reader>; | |
50 | ||
51 | if ($got ne $expected) { | |
52 | print "MISMATCH:\n", diff \$expected, \$got; | |
53 | } | |
54 | } |