mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-11 14:28:08 +01:00
55 lines
1.0 KiB
Perl
Executable File
55 lines
1.0 KiB
Perl
Executable File
#! /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;
|
|
}
|
|
}
|