123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #! /usr/bin/env perl
- #
- # TEST c-compress-pl with a number of examples and what should happen to them
- use strict;
- use warnings;
- use File::Basename;
- my @pairs =
- (
- [ <<'_____'
- /* A hell of a program */
- #def\
- ine foo/* bar */ 3
- #define bar /* haha "A /* comment */ that should /* remain" */
- #define haha /* hoho */ "A /* comment */ that should /* remain" */
- int main() {
- int x;
- /* one lonely comment */
- }
- _____
- , <<'_____'
- #define foo 3
- #define bar that should
- #define haha "A /* comment */ that should /* remain" */
- int main() {
- int x;
- }
- _____
- ]
- );
- my $here = dirname $0;
- my $c_compress = "$here/lang-compress.pl";
- use FileHandle;
- use IPC::Open2;
- use Text::Diff;
- foreach (@pairs) {
- my $source = $_->[0];
- my $expected = $_->[1];
- my $pid = open2(\*Reader, \*Writer, "perl $c_compress 'C'");
- print Writer $source;
- close Writer;
- local $/ = undef; # slurp
- my $got = <Reader>;
- if ($got ne $expected) {
- print "MISMATCH:\n", diff \$expected, \$got;
- }
- }
|