issue256.t 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #! /usr/bin/env perl
  2. # http://code.google.com/p/perl-compiler/issues/detail?id=256
  3. # initialize all global vars
  4. use strict;
  5. BEGIN {
  6. unshift @INC, 't';
  7. require "test.pl";
  8. }
  9. my $pv_vars = {';' => "\34",
  10. '"' => " ",
  11. #"\\" => undef,
  12. #',' => undef,
  13. '/' => "/n",
  14. '^A' => undef,
  15. '^L' => "\f",
  16. ':' => " \n-",
  17. '^' => "STDOUT_TOP",
  18. '~' => "STDOUT"};
  19. my $iv_vars = {'^H' => 0,
  20. '|' => 0,
  21. '%' => 0,
  22. '-' => 60,
  23. '=' => 60,
  24. #'{^UNICODE}' => 0,
  25. #'{^UTF8LOCALE}' => 1
  26. };
  27. use Test::More tests => 4;
  28. my $script = '';
  29. $script .= sprintf('BEGIN{ $%s = "a"} $%s = "a"; print qq{not ok - \$%s = $%s\n} if $%s ne "a";'."\n",
  30. $_, $_, $_, $_, $_) for keys %$pv_vars;
  31. $script .= sprintf('BEGIN{ $%s = 1} $%s = 1; print qq{not ok - \$%s = $%s\n} if $%s != 1;'."\n",
  32. $_, $_, $_, $_, $_) for keys %$iv_vars;
  33. $script .= 'BEGIN{ $\\ = "\n"; } $\\ = "\n"; print qq{not ok - \$\\ = $\\\n} if $\\ ne "\n";'."\n";
  34. $script .= qq(print "ok\\n";);
  35. ctestok(1,'C,-O3','ccode256i',$script,'#256 initialize most global vars');
  36. ctestok(2,'C,-O3','ccode256i',
  37. 'BEGIN{$, = " "; } $, = " "; print $, eq " " ? "ok\n" : qq{not ok - \$, = $,\n}',
  38. '#256 initialize $,');
  39. # need -C -CL switches to set UNICODE
  40. if ($] >= 5.010001) {
  41. ctestok(3,'C,-O3 -C','ccode231i',
  42. 'print ${^UNICODE} ? "ok" : "not ok", " - \${^UNICODE} = ${^UNICODE}\n";',
  43. '#231 initialize ${^UNICODE}');
  44. ctestok(4,'C,-O3 -CL','ccode231i',
  45. 'print ${^UTF8LOCALE} == 1 ? "ok\n" : qq{not ok - \${^UTF8LOCALE} = ${^UTF8LOCALE}\n};',
  46. '#231 initialize ${^UTF8LOCALE}');
  47. } else {
  48. print "ok 3 - skip -C with <5.10.1\n";
  49. print "ok 4 - skip -CL with <5.10.1\n";
  50. }