This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
test for various fatal messages from op.c
authorTony Cook <tony@develop-help.com>
Mon, 28 Nov 2011 11:57:34 +0000 (22:57 +1100)
committerTony Cook <tony@develop-help.com>
Sat, 10 Dec 2011 02:02:43 +0000 (13:02 +1100)
MANIFEST
t/lib/croak/op [new file with mode: 0644]

index 4d5fcf4..303ca28 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -4974,6 +4974,7 @@ t/lib/common.pl                   Helper for lib/{warnings,feature}.t
 t/lib/commonsense.t            See if configuration meets basic needs
 t/lib/compmod.pl               Helper for 1_compile.t
 t/lib/croak/mg                 Test croak calls from mg.c
+t/lib/croak/op                 Test croak calls from op.c
 t/lib/croak.t                  Test calls to Perl_croak() in the C source.
 t/lib/cygwin.t                 Builtin cygwin function tests
 t/lib/dbmt_common.pl           Common functionality for ?DBM_File tests
diff --git a/t/lib/croak/op b/t/lib/croak/op
new file mode 100644 (file)
index 0000000..d47e828
--- /dev/null
@@ -0,0 +1,44 @@
+__END__
+# NAME OP_HELEM fields
+package Foo;
+use fields qw(a b);
+sub new {
+    my $class = shift;
+    return fields::new($class);
+}
+my Foo $f = Foo->new;
+$f->{c} = 1;
+EXPECT
+No such class field "c" in variable $f of type Foo at - line 8.
+########
+# NAME OP_HSLICE fields
+package Foo;
+use fields qw(a b);
+sub new {
+    my $class = shift;
+    return fields::new($class);
+}
+my Foo $f = Foo->new;
+@$f{"a", "c"} = ( 1, 2 );
+EXPECT
+No such class field "c" in variable $f of type Foo at - line 8.
+########
+# NAME my sub
+my sub foo { }
+EXPECT
+"my sub" not yet implemented at - line 1.
+########
+# NAME delete BAD
+delete $x;
+EXPECT
+delete argument is not a HASH or ARRAY element or slice at - line 1.
+########
+# NAME exists BAD
+exists $x;
+EXPECT
+exists argument is not a HASH or ARRAY element or a subroutine at - line 1.
+########
+# NAME exists non-sub
+exists &foo()
+EXPECT
+exists argument is not a subroutine name at - line 1.