issue105.t 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #! /usr/bin/env perl
  2. # http://code.google.com/p/perl-compiler/issues/detail?id=105
  3. # v5.16 Missing bc imports
  4. use strict;
  5. my $name = "ccode105i";
  6. use Test::More tests => 1;
  7. use Config ();
  8. my $ITHREADS = $Config::Config{useithreads};
  9. my $source = 'package A;
  10. use Storable qw/dclone/;
  11. my $a = \"";
  12. dclone $a;
  13. print q(ok)';
  14. open F, ">", "$name.pl";
  15. print F $source;
  16. close F;
  17. my $expected = "ok";
  18. my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
  19. my $Mblib = "-Iblib/arch -Iblib/lib";
  20. if ($] < 5.008) {
  21. system "$runperl -MO=Bytecode,-o$name.plc $name.pl";
  22. } else {
  23. system "$runperl $Mblib -MO=-qq,Bytecode,-H,-o$name.plc $name.pl";
  24. }
  25. unless (-e "$name.plc") {
  26. print "not ok 1 #B::Bytecode failed.\n";
  27. exit;
  28. }
  29. my $runexe = $] < 5.008
  30. ? "$runperl -MByteLoader $name.plc"
  31. : "$runperl $Mblib $name.plc";
  32. my $result = `$runexe`;
  33. $result =~ s/\n$//;
  34. TODO: {
  35. local $TODO = "BC dclone missing import 5.16thr" if $] > 5.015 and $ITHREADS;
  36. # $TODO = "BC 5.18thr" if $] >= 5.018 and $] < 5.019005 and $ITHREADS;
  37. ok($result eq $expected, "issue105 - 5.16 BC missing import");
  38. }
  39. END {
  40. unlink($name, "$name.plc", "$name.pl")
  41. if $result eq $expected;
  42. }