summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--t/op/filetest_stack_ok.t29
1 files changed, 28 insertions, 1 deletions
diff --git a/t/op/filetest_stack_ok.t b/t/op/filetest_stack_ok.t
index 91e31e0a27..3c212b16fa 100644
--- a/t/op/filetest_stack_ok.t
+++ b/t/op/filetest_stack_ok.t
@@ -12,8 +12,35 @@ BEGIN {
my @ops = split //, 'rwxoRWXOezsfdlpSbctugkTMBAC';
-plan( tests => @ops * 1 );
+plan( tests => @ops * 3 );
for my $op (@ops) {
ok( 1 == @{ [ eval "-$op 'TEST'" ] }, "-$op returns single value" );
+
+ my $count = 0;
+ my $t;
+ for my $m ("a", "b") {
+ if ($count == 0) {
+ $t = eval "-$op _" ? 0 : "foo";
+ }
+ elsif ($count == 1) {
+ is($m, "b", "-$op did not remove too many values from the stack");
+ }
+ $count++;
+ }
+
+ $count = 0;
+ for my $m ("c", "d") {
+ if ($count == 0) {
+ $t = eval "-$op -e \$^X" ? 0 : "bar";
+ }
+ elsif ($count == 1) {
+ local $TODO;
+ if ($op eq 'T' or $op eq 't' or $op eq 'B') {
+ $TODO = "[perl #77388] stacked file test does not work with -$op";
+ }
+ is($m, "d", "-$op -e \$^X did not remove too many values from the stack");
+ }
+ $count++;
+ }
}