c_argv.t 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #! /usr/bin/env perl
  2. use strict;
  3. use Test::More tests => 4;
  4. my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
  5. my $Mblib = $^O eq 'MSWin32' ? '-Iblib\arch -Iblib\lib' : "-Iblib/arch -Iblib/lib";
  6. my $a = $^O eq 'MSWin32' ? 'a' : './a';
  7. my $pl = "ccode00.pl";
  8. my $plc = $pl . "c";
  9. my $d = <DATA>;
  10. open F, ">", $pl;
  11. print F $d;
  12. close F;
  13. is(`$runperl $Mblib blib/script/perlcc -O3 -r $pl ok 1`, "ok 1\n",
  14. "perlcc -r file args");
  15. unlink("a", "a.out");
  16. open F, ">", $pl;
  17. my $d2 = $d;
  18. $d2 =~ s/ ok 1/ ok 2/;
  19. print F $d2;
  20. close F;
  21. is(`$runperl $Mblib blib/script/perlcc -O -r $pl ok 2`, "ok 2\n",
  22. "perlcc -O -r file args");
  23. unlink("a", "a.out");
  24. open F, ">", $pl;
  25. my $d3 = $d;
  26. $d3 =~ s/ ok 1/ ok 3/;
  27. print F $d3;
  28. close F;
  29. is(`$runperl $Mblib blib/script/perlcc -B -r $pl ok 3`, "ok 3\n",
  30. "perlcc -B -r file args");
  31. # issue 30
  32. $d = '
  33. sub f1 {
  34. my($self) = @_;
  35. $self->f2;
  36. }
  37. sub f2 {}
  38. sub new {}
  39. print "@ARGV\n";';
  40. open F, ">", $pl;
  41. print F $d;
  42. close F;
  43. `$runperl $Mblib blib/script/perlcc -o a $pl`;
  44. is (`$a a b c`, "a b c\n",
  45. "issue 30: perlcc -o a; ./a args");
  46. END {
  47. unlink("a", "a.out", $pl, $plc);
  48. }
  49. __DATA__
  50. print @ARGV?join(" ",@ARGV):"not ok 1 # empty \@ARGV","\n";