mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
	
	
		
			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; | ||
|  |     } | ||
|  | } |