From: Abigail Date: Thu, 28 Jan 2010 20:16:33 +0000 (+0100) Subject: Add a few regression tests, making sure ... is parsed as a range operator X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=29e8de644e207ef3b137f2f7fe42ee1297ced166;p=p5sagit%2Fp5-mst-13.2.git Add a few regression tests, making sure ... is parsed as a range operator --- diff --git a/t/op/yadayada.t b/t/op/yadayada.t index f82aa72..770a51e 100644 --- a/t/op/yadayada.t +++ b/t/op/yadayada.t @@ -8,10 +8,43 @@ BEGIN { use strict; -plan 1; +plan 5; my $err = "Unimplemented at $0 line " . ( __LINE__ + 2 ) . ".\n"; eval { ... }; is $@, $err; + + +# +# Regression tests, making sure ... is still parsable as an operator. +# +my @lines = split /\n/ => <<'--'; + +# Check simple range operator. +my @arr = 'A' ... 'D'; + +# Range operator with print. +print 'D' ... 'A'; + +# Without quotes, 'D' could be a file handle. +print D ... A ; + +# Another possible interaction with a file handle. +print ${\"D"} ... A ; +-- + +foreach my $line (@lines) { + next if $line =~ /^\s*#/ || $line !~ /\S/; + my $mess = qq {Parsing '...' in "$line" as a range operator}; + eval qq { + {local *STDOUT; no strict "subs"; $line;} + pass \$mess; + 1; + } or do { + my $err = $@; + $err =~ s/\n//g; + fail "$mess ($err)"; + } +}