mirror of
https://github.com/openssl/openssl.git
synced 2024-12-15 06:01:37 +08:00
55 lines
1.0 KiB
Perl
55 lines
1.0 KiB
Perl
|
#! /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;
|
||
|
}
|
||
|
}
|