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