issue59.t 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #! /usr/bin/env perl
  2. # http://code.google.com/p/perl-compiler/issues/detail?id=59
  3. # Problems compiling scripts that use IO::Socket
  4. use Test::More tests => 3;
  5. use strict;
  6. BEGIN {
  7. unshift @INC, 't';
  8. require "test.pl";
  9. }
  10. use Config;
  11. my $name = "ccode59i";
  12. my $script = <<'EOF';
  13. use strict;
  14. use warnings;
  15. use IO::Socket;
  16. my $remote = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "perl.org", PeerPort => "80" );
  17. print $remote "GET / HTTP/1.0" . "\r\n\r\n";
  18. my $result = <$remote>;
  19. $result =~ m|HTTP/1.1 200 OK| ? print "ok" : print $result;
  20. close $remote;
  21. EOF
  22. open F, "> $name.pl";
  23. print F $script;
  24. close F;
  25. my $expected = "ok";
  26. my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
  27. my $q = $] < 5.008001 ? "" : "-qq,";
  28. my $result = qx($runperl $name.pl);
  29. my $canconnect = $result eq $expected ? 1 : 0;
  30. my $cmt = ($canconnect ? "" : "TODO ") ."connect to http://perl.org:80 via IO::Socket";
  31. plctestok(1, $name, $script, $cmt);
  32. SKIP: {
  33. skip "eats memory on 5.6", 2 if $] <= 5.008001;
  34. skip "fails 5.14 threaded", 2
  35. if $] > 5.014 and $] < 5.015 and $Config{'useithreads'} and ! -d ".git";
  36. $cmt = "TODO 5.14thr" if $] > 5.014 and $] < 5.015 and $Config{'useithreads'};
  37. $cmt = "TODO 5.6.2" if $] < 5.007;
  38. ctestok(2, "C", $name, $script, "C $name $cmt");
  39. ctestok(3, "CC", $name, $script, "TODO CC $name $cmt");
  40. }