1de8cc8edSafresh1Test specifically for things that cop_features broke 2de8cc8edSafresh1 3de8cc8edSafresh1__END__ 4de8cc8edSafresh1# NAME check clearing $^H clears the bits 5de8cc8edSafresh1use feature 'say'; 6de8cc8edSafresh1BEGIN { %^H = () } 7de8cc8edSafresh1say "Fail"; 8de8cc8edSafresh1EXPECT 9*f2a19305Safresh1String found where operator expected (Do you need to predeclare "say"?) at - line 3, near "say "Fail"" 10de8cc8edSafresh1syntax error at - line 3, near "say "Fail"" 11de8cc8edSafresh1Execution of - aborted due to compilation errors. 12de8cc8edSafresh1######## 13de8cc8edSafresh1# NAME check copying $^H restores the bits 14de8cc8edSafresh1use feature 'say'; 15de8cc8edSafresh1say "Hello"; 16de8cc8edSafresh1BEGIN { our %work = %^H; } 17de8cc8edSafresh1no feature 'say'; 18de8cc8edSafresh1BEGIN { %^H = our %work } 19de8cc8edSafresh1say "Goodbye"; 20de8cc8edSafresh1EXPECT 21de8cc8edSafresh1Hello 22de8cc8edSafresh1Goodbye 23de8cc8edSafresh1######## 24de8cc8edSafresh1# NAME check deleting entries (via feature.pm) clears the bits 25de8cc8edSafresh1use feature 'say'; 26de8cc8edSafresh1say "Hello"; 27de8cc8edSafresh1no feature 'say'; 28de8cc8edSafresh1say "Goodbye"; 29de8cc8edSafresh1EXPECT 30*f2a19305Safresh1String found where operator expected (Do you need to predeclare "say"?) at - line 4, near "say "Goodbye"" 31de8cc8edSafresh1syntax error at - line 4, near "say "Goodbye"" 32de8cc8edSafresh1Execution of - aborted due to compilation errors. 33de8cc8edSafresh1######## 34de8cc8edSafresh1# NAME check deleting entries (bypass feature.pm) clears the bits 35de8cc8edSafresh1use feature 'say'; 36de8cc8edSafresh1say "Hello"; 37de8cc8edSafresh1BEGIN { delete $^H{feature_say}; } 38de8cc8edSafresh1say "Goodbye"; 39de8cc8edSafresh1EXPECT 40*f2a19305Safresh1String found where operator expected (Do you need to predeclare "say"?) at - line 4, near "say "Goodbye"" 41de8cc8edSafresh1syntax error at - line 4, near "say "Goodbye"" 42de8cc8edSafresh1Execution of - aborted due to compilation errors. 43