c_argv.t 1.2 KB

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