12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #! /usr/bin/env perl
- # http://code.google.com/p/perl-compiler/issues/detail?id=34
- # B::C -O4 ignores $/ = undef
- use Test::More tests => 2;
- use strict;
- my $base = "ccode34i";
- sub test {
- my ($num, $script, $expected, $todo) = @_;
- my $name = $base."_$num";
- unlink($name, "$name.c", "$name.pl", "$name.exe");
- open F, ">", "$name.pl";
- print F $script;
- close F;
- my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
- $runperl .= " -Iblib/arch -Iblib/lib";
- my $b = $] > 5.008 ? "-qq,CC" : "CC";
- system "$runperl -MO=$b,-o$name.c $name.pl";
- unless (-e "$name.c") {
- print "not ok 1 #B::CC failed\n";
- exit;
- }
- system "$runperl blib/script/cc_harness -q -o $name $name.c";
- my $runexe = $^O eq 'MSWin32' ? "$name.exe" : "./$name";
- ok(-e $runexe, "$runexe exists");
- my $result = `$runexe`;
- my $ok = $result eq $expected;
- if ($todo) {
- TODO: {
- local $TODO = $todo;
- ok($ok);
- }
- } else {
- ok($ok);
- }
- if ($ok) {
- unlink($runexe, "$name.c", "$name.pl", "$name.dat");
- }
- }
- my $script = <<'EOF';
- $/ = undef;
- open FILE, 'ccode34i.dat';
- my $first = <FILE>;
- my $rest = <FILE>;
- print "1:\n$first";
- print "2:\n$rest";
- EOF
- open F, ">", "ccode34i.dat";
- print F "line1\n";
- print F "line2\n";
- close F;
- my $expected = <<'EOF1';
- 1:
- line1
- line2
- 2:
- EOF1
- test(1, $script, $expected, 'B::CC issue 34 $/=undef ignored');
|