summaryrefslogtreecommitdiff
path: root/t/op/method.t
diff options
context:
space:
mode:
Diffstat (limited to 't/op/method.t')
-rwxr-xr-xt/op/method.t13
1 files changed, 12 insertions, 1 deletions
diff --git a/t/op/method.t b/t/op/method.t
index 21d7c8f397..d955705d1a 100755
--- a/t/op/method.t
+++ b/t/op/method.t
@@ -4,7 +4,7 @@
# test method calls and autoloading.
#
-print "1..20\n";
+print "1..24\n";
@A::ISA = 'B';
@B::ISA = 'C';
@@ -25,6 +25,14 @@ test( A->d, "C::d"); # Update hash table;
test (A->d, "D::d"); # Update hash table;
{
+ local @A::ISA = qw(C); # Update hash table with split() assignment
+ test (A->d, "C::d");
+ $#A::ISA = -1;
+ test (eval { A->d } || "fail", "fail");
+}
+test (A->d, "D::d");
+
+{
local *B::d;
eval 'sub B::d {"B::d1"}'; # Import now.
test (A->d, "B::d1"); # Update hash table;
@@ -109,3 +117,6 @@ test(Y->f(), "B: In Y::f, 3"); # Which sticks
test(A->eee(), "new B: In A::eee, 4"); # We get a correct $autoload
test(A->eee(), "new B: In A::eee, 4"); # Which sticks
+
+# this test added due to bug discovery
+test(defined(@{"unknown_package::ISA"}) ? "defined" : "undefined", "undefined");