This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
(perl #132533) add missing generated file updates
authorTony Cook <tony@develop-help.com>
Mon, 15 Jan 2018 23:18:51 +0000 (10:18 +1100)
committerTony Cook <tony@develop-help.com>
Mon, 15 Jan 2018 23:27:00 +0000 (10:27 +1100)
MANIFEST
dist/Devel-PPPort/t/HvNAME.t
dist/Devel-PPPort/t/mess.t [new file with mode: 0644]
dist/Devel-PPPort/t/ppphtest.t

index 80ba6ef..1f2bf30 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3353,6 +3353,7 @@ dist/Devel-PPPort/t/HvNAME.t              Devel::PPPort test file
 dist/Devel-PPPort/t/limits.t           Devel::PPPort test file
 dist/Devel-PPPort/t/magic.t            Devel::PPPort test file
 dist/Devel-PPPort/t/memory.t           Devel::PPPort test file
+dist/Devel-PPPort/t/mess.t             Devel::PPPort test file
 dist/Devel-PPPort/t/misc.t             Devel::PPPort test file
 dist/Devel-PPPort/t/mPUSH.t            Devel::PPPort test file
 dist/Devel-PPPort/t/MY_CXT.t           Devel::PPPort test file
index f54fac2..6bf39f1 100644 (file)
@@ -49,7 +49,7 @@ bootstrap Devel::PPPort;
 package main;
 
 ok(Devel::PPPort::HvNAME_get(\%Devel::PPPort::), 'Devel::PPPort');
-ok(Devel::PPPort::HvNAME_get({}), undef);
+ok(!defined Devel::PPPort::HvNAME_get({}));
 
 ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort'));
 ok(Devel::PPPort::HvNAMELEN_get({}), 0);
diff --git a/dist/Devel-PPPort/t/mess.t b/dist/Devel-PPPort/t/mess.t
new file mode 100644 (file)
index 0000000..cb34788
--- /dev/null
@@ -0,0 +1,282 @@
+################################################################################
+#
+#            !!!!!   Do NOT edit this file directly!   !!!!!
+#
+#            Edit mktests.PL and/or parts/inc/mess instead.
+#
+#  This file was automatically generated from the definition files in the
+#  parts/inc/ subdirectory by mktests.PL. To learn more about how all this
+#  works, please read the F<HACKERS> file that came with this distribution.
+#
+################################################################################
+
+BEGIN {
+  if ($ENV{'PERL_CORE'}) {
+    chdir 't' if -d 't';
+    @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
+    require Config; import Config;
+    use vars '%Config';
+    if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
+      print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
+      exit 0;
+    }
+  }
+  else {
+    unshift @INC, 't';
+  }
+
+  sub load {
+    eval "use Test";
+    require 'testutil.pl' if $@;
+  }
+
+  if (93) {
+    load();
+    plan(tests => 93);
+  }
+}
+
+use Devel::PPPort;
+use strict;
+$^W = 1;
+
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
+BEGIN { if ($] lt '5.006') { $^W = 0; } }
+
+my $warn;
+my $die;
+local $SIG{__WARN__} = sub { $warn = $_[0] };
+local $SIG{__DIE__} = sub { $die = $_[0] };
+
+my $scalar_ref = \do {my $tmp = 10};
+my $array_ref = [];
+my $hash_ref = {};
+my $obj = bless {}, 'Package';
+
+undef $die;
+ok !defined eval { Devel::PPPort::croak_sv("\xE1\n") };
+ok $@, "\xE1\n";
+ok $die, "\xE1\n";
+
+undef $die;
+ok !defined eval { Devel::PPPort::croak_sv(10) };
+ok $@ =~ /^10 at $0 line /;
+ok $die =~ /^10 at $0 line /;
+
+undef $die;
+$@ = 'should not be visible (1)';
+ok !defined eval {
+    $@ = 'should not be visible (2)';
+    Devel::PPPort::croak_sv('');
+};
+ok $@ =~ /^ at $0 line /;
+ok $die =~ /^ at $0 line /;
+
+undef $die;
+$@ = 'should not be visible';
+ok !defined eval {
+    $@ = 'this must be visible';
+    Devel::PPPort::croak_sv($@)
+};
+ok $@ =~ /^this must be visible at $0 line /;
+ok $die =~ /^this must be visible at $0 line /;
+
+undef $die;
+$@ = 'should not be visible';
+ok !defined eval {
+    $@ = "this must be visible\n";
+    Devel::PPPort::croak_sv($@)
+};
+ok $@, "this must be visible\n";
+ok $die, "this must be visible\n";
+
+undef $die;
+ok !defined eval { Devel::PPPort::croak_sv('') };
+ok $@ =~ /^ at $0 line /;
+ok $die =~ /^ at $0 line /;
+
+undef $die;
+ok !defined eval { Devel::PPPort::croak_sv("\xE1") };
+ok $@ =~ /^\xE1 at $0 line /;
+ok $die =~ /^\xE1 at $0 line /;
+
+undef $die;
+ok !defined eval { Devel::PPPort::croak_sv("\xC3\xA1") };
+ok $@ =~ /^\xC3\xA1 at $0 line /;
+ok $die =~ /^\xC3\xA1 at $0 line /;
+
+undef $warn;
+Devel::PPPort::warn_sv("\xE1\n");
+ok $warn, "\xE1\n";
+
+undef $warn;
+Devel::PPPort::warn_sv(10);
+ok $warn =~ /^10 at $0 line /;
+
+undef $warn;
+Devel::PPPort::warn_sv('');
+ok $warn =~ /^ at $0 line /;
+
+undef $warn;
+Devel::PPPort::warn_sv("\xE1");
+ok $warn =~ /^\xE1 at $0 line /;
+
+undef $warn;
+Devel::PPPort::warn_sv("\xC3\xA1");
+ok $warn =~ /^\xC3\xA1 at $0 line /;
+
+ok Devel::PPPort::mess_sv("\xE1\n", 0), "\xE1\n";
+ok Devel::PPPort::mess_sv(do {my $tmp = "\xE1\n"}, 1), "\xE1\n";
+
+ok Devel::PPPort::mess_sv(10, 0) =~ /^10 at $0 line /;
+ok Devel::PPPort::mess_sv(do {my $tmp = 10}, 1) =~ /^10 at $0 line /;
+
+ok Devel::PPPort::mess_sv('', 0) =~ /^ at $0 line /;
+ok Devel::PPPort::mess_sv(do {my $tmp = ''}, 1) =~ /^ at $0 line /;
+
+ok Devel::PPPort::mess_sv("\xE1", 0) =~ /^\xE1 at $0 line /;
+ok Devel::PPPort::mess_sv(do {my $tmp = "\xE1"}, 1) =~ /^\xE1 at $0 line /;
+
+ok Devel::PPPort::mess_sv("\xC3\xA1", 0) =~ /^\xC3\xA1 at $0 line /;
+ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1"}, 1) =~ /^\xC3\xA1 at $0 line /;
+
+if ($] ge '5.006') {
+    BEGIN { if ($] ge '5.006' && $] lt '5.008') { require utf8; utf8->import(); } }
+
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv("\x{100}\n") };
+    ok $@, "\x{100}\n";
+    if ($] ne '5.008') {
+        ok $die, "\x{100}\n";
+    } else {
+        skip 'skip: broken utf8 support in die hook', 0;
+    }
+
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv("\x{100}") };
+    ok $@ =~ /^\x{100} at $0 line /;
+    if ($] ne '5.008') {
+        ok $die =~ /^\x{100} at $0 line /;
+    } else {
+        skip 'skip: broken utf8 support in die hook', 0;
+    }
+
+    if ($] ne '5.008') {
+        undef $warn;
+        Devel::PPPort::warn_sv("\x{100}\n");
+        ok $warn, "\x{100}\n";
+
+        undef $warn;
+        Devel::PPPort::warn_sv("\x{100}");
+        ok (my $tmp = $warn) =~ /^\x{100} at $0 line /;
+    } else {
+        skip 'skip: broken utf8 support in warn hook', 0 for 1..2;
+    }
+
+    ok Devel::PPPort::mess_sv("\x{100}\n", 0), "\x{100}\n";
+    ok Devel::PPPort::mess_sv(do {my $tmp = "\x{100}\n"}, 1), "\x{100}\n";
+
+    ok Devel::PPPort::mess_sv("\x{100}", 0) =~ /^\x{100} at $0 line /;
+    ok Devel::PPPort::mess_sv(do {my $tmp = "\x{100}"}, 1) =~ /^\x{100} at $0 line /;
+} else {
+    skip 'skip: no utf8 support', 0 for 1..12;
+}
+
+if ($] ge '5.008') {
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv(eval '"\N{U+E1}\n"') };
+    ok $@, "\xE1\n";
+    ok $die, "\xE1\n";
+
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv(eval '"\N{U+E1}"') };
+    ok $@ =~ /^\xE1 at $0 line /;
+    ok $die =~ /^\xE1 at $0 line /;
+
+    {
+        undef $die;
+        my $expect = eval '"\N{U+C3}\N{U+A1}\n"';
+        ok !defined eval { Devel::PPPort::croak_sv("\xC3\xA1\n") };
+        ok $@, $expect;
+        ok $die, $expect;
+    }
+
+    {
+        undef $die;
+        my $expect = eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+        ok !defined eval { Devel::PPPort::croak_sv("\xC3\xA1") };
+        ok $@ =~ $expect;
+        ok $die =~ $expect;
+    }
+
+    undef $warn;
+    Devel::PPPort::warn_sv(eval '"\N{U+E1}\n"');
+    ok $warn, "\xE1\n";
+
+    undef $warn;
+    Devel::PPPort::warn_sv(eval '"\N{U+E1}"');
+    ok $warn =~ /^\xE1 at $0 line /;
+
+    undef $warn;
+    Devel::PPPort::warn_sv("\xC3\xA1\n");
+    ok $warn, eval '"\N{U+C3}\N{U+A1}\n"';
+
+    undef $warn;
+    Devel::PPPort::warn_sv("\xC3\xA1");
+    ok $warn =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+
+    ok Devel::PPPort::mess_sv(eval('"\N{U+E1}\n"'), 0), eval '"\N{U+E1}\n"';
+    ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}\n"'}, 1), eval '"\N{U+E1}\n"';
+
+    ok Devel::PPPort::mess_sv(eval('"\N{U+E1}"'), 0) =~ eval 'qr/^\N{U+E1} at $0 line /';
+    ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}"'}, 1) =~ eval 'qr/^\N{U+E1} at $0 line /';
+
+    ok Devel::PPPort::mess_sv("\xC3\xA1\n", 0), eval '"\N{U+C3}\N{U+A1}\n"';
+    ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1\n"}, 1), eval '"\N{U+C3}\N{U+A1}\n"';
+
+    ok Devel::PPPort::mess_sv("\xC3\xA1", 0) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+    ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1"}, 1) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+} else {
+    skip 'skip: no support for \N{U+..} syntax', 0 for 1..24;
+}
+
+if ($] ge '5.007003' or ($] ge '5.006001' and $] lt '5.007')) {
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv($scalar_ref) };
+    ok $@ == $scalar_ref;
+    ok $die == $scalar_ref;
+
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv($array_ref) };
+    ok $@ == $array_ref;
+    ok $die == $array_ref;
+
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv($hash_ref) };
+    ok $@ == $hash_ref;
+    ok $die == $hash_ref;
+
+    undef $die;
+    ok !defined eval { Devel::PPPort::croak_sv($obj) };
+    ok $@ == $obj;
+    ok $die == $obj;
+} else {
+    skip 'skip: no support for exceptions', 0 for 1..12;
+}
+
+ok !defined eval { Devel::PPPort::croak_no_modify() };
+ok $@ =~ /^Modification of a read-only value attempted at $0 line /;
+
+ok !defined eval { Devel::PPPort::croak_memory_wrap() };
+ok $@ =~ /^panic: memory wrap at $0 line /;
+
+ok !defined eval { Devel::PPPort::croak_xs_usage("params") };
+ok $@ =~ /^Usage: Devel::PPPort::croak_xs_usage\(params\) at $0 line /;
+
index 45840f9..90d7d24 100644 (file)
@@ -560,6 +560,7 @@ call_pv();
 #define NEED_eval_pv_GLOBAL
 #define NEED_grok_hex
 #define NEED_newCONSTSUB_GLOBAL
+#define NEED_sv_2pv_flags_GLOBAL
 #include "ppport.h"
 
 newCONSTSUB();