tests are expected to fail if dirfd () does not exist
[p5sagit/p5-mst-13.2.git] / t / op / magic.t
index dccb563..134d049 100755 (executable)
@@ -36,7 +36,7 @@ sub skip {
     return 1;
 }
 
-print "1..54\n";
+print "1..58\n";
 
 $Is_MSWin32  = $^O eq 'MSWin32';
 $Is_NetWare  = $^O eq 'NetWare';
@@ -268,6 +268,14 @@ ok $] >= 5.00319, $];
 ok $^O;
 ok $^T > 850000000, $^T;
 
+# Test change 25062 is working
+my $orig_osname = $^O;
+{
+local $^I = '.bak';
+ok($^O eq $orig_osname, 'Assigning $^I does not clobber $^O');
+}
+$^O = $orig_osname;
+
 if ($Is_VMS || $Is_Dos || $Is_MacOS) {
     skip("%ENV manipulations fail or aren't safe on $^O") for 1..4;
 }
@@ -426,3 +434,18 @@ ok "@+" eq "10 1 6 10";
     my @y = f();
     ok( $x eq "@y", "return a magic array ($x) vs (@y)" );
 }
+
+# Test for bug [perl #36434]
+{
+    local @ISA;
+    local %ENV;
+    eval { push @ISA, __PACKAGE__ };
+    ok( $@ eq '', 'Push a constant on a magic array');
+    $@ and print "# $@";
+    eval { %ENV = (PATH => __PACKAGE__) };
+    ok( $@ eq '', 'Assign a constant to a magic hash');
+    $@ and print "# $@";
+    eval { my %h = qw(A B); %ENV = (PATH => (keys %h)[0]) };
+    ok( $@ eq '', 'Assign a shared key to a magic hash');
+    $@ and print "# $@";
+}