c_allow_opts.t 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #! /usr/bin/env perl
  2. # test -DALLOW_PERL_OPTIONS
  3. BEGIN {
  4. print "1..4\n";
  5. }
  6. use strict;
  7. my $pl = "t/allow.pl";
  8. my $d = <DATA>;
  9. open F, ">", $pl;
  10. print F $d;
  11. close F;
  12. my $exe = $^O eq 'MSWin32' ? 'ccallow.exe' : './ccallow';
  13. my $C = $] > 5.007 ? "-qq,C" : "C";
  14. my $X = $^X =~ m/\s/ ? qq{"$^X" -Iblib/arch -Iblib/lib} : "$^X -Iblib/arch -Iblib/lib";
  15. system "$X -MO=$C,-O3,-occallow.c $pl";
  16. # see if the ldopts libs are picked up correctly. This really depends on your perl package.
  17. system "$X script/cc_harness -q -DALLOW_PERL_OPTIONS ccallow.c -o $exe";
  18. unless (-e $exe) {
  19. print "ok 1 #skip wrong ldopts for cc_harness. Try -Bdynamic or -Bstatic or fix your ldopts.\n";
  20. print "ok 2 #skip ditto\n";
  21. print "ok 3 #skip\n";
  22. print "ok 4 #skip\n";
  23. exit;
  24. }
  25. my $ok = `$exe -s -abc=2 -def 2>&1`;
  26. chomp $ok;
  27. print "not " if $ok !~ /Unrecognized switch: -bc=2/;
  28. print "ok 1\n";
  29. $ok = `$exe -s -- -abc=2 -def`;
  30. chomp $ok;
  31. my $exp = "21-";
  32. print $ok ne $exp ? "not " : "", "ok 2",
  33. $ok ne $exp ? "# want: $exp got: $ok\n" : "\n";
  34. system "$X script/cc_harness -q ccallow.c -o $exe";
  35. $ok = `$exe -s -- -abc=2 -def`;
  36. $exp = "---";
  37. chomp $ok;
  38. print $ok ne $exp ? "not " : "", "ok 3", $ok ne $exp ? " # want: $exp got: $ok\n" : "\n";
  39. $ok = `$exe -s -abc=2 -def 2>&1`;
  40. chomp $ok;
  41. print $ok ne $exp ? "not " : "", "ok 4", $ok ne $exp ? " # want: $exp got: $ok\n" : "\n";
  42. END {
  43. unlink($exe, "ccallow.c", $pl);
  44. }
  45. __DATA__
  46. for (qw/abc def ghi/) {print defined $$_ ? $$_ : q(-)};