Updated t/quote.t to quash warnings and use cross-platform /dev/null
Florian Ragwitz [Fri, 10 Apr 2009 00:03:12 +0000 (00:03 +0000)]
t/quote.t

index 2a8c101..4104515 100644 (file)
--- a/t/quote.t
+++ b/t/quote.t
@@ -3,25 +3,38 @@ use warnings;
 use Test::More tests => 14;
 
 use Devel::Declare 'method' => sub {};
+use File::Spec;
 
 sub test_eval;
 
-test_eval 'qq/method/';
-test_eval '`method`';
-test_eval 'qx/method/';
-test_eval 'qr/method/';
-test_eval '/method/';
-test_eval 's/method//';
-test_eval 'tr/method/METHOD/';
-test_eval 'q/method/';
-test_eval "'method'";
-test_eval '"method"';
-test_eval 'qw/method/';
-test_eval '<<method;
+QUOTE: {
+    test_eval 'qq/method/';
+    test_eval 'q/method/';
+    test_eval "'method'";
+    test_eval '"method"';
+    test_eval 'qw/method/';
+    test_eval '<<method;
 tum ti tum
 method';
-test_eval 'no warnings "reserved"; open method, "</dev/null"';
-test_eval '<method>';
+}
+
+SYSTEM: {
+    test_eval 'sub {`method`}'; # compiled to prevent calling arbitrary exe!
+    test_eval 'sub { qx{method} }';
+}
+
+REGEX: {
+    local $_=''; # the passing results will act on $_
+    test_eval 'qr/method/';
+    test_eval '/method/';
+    test_eval 's/method//';
+    test_eval 'tr/method/METHOD/';
+}
+
+FILE: {
+    test_eval q{ no warnings 'reserved'; open method, '<', File::Spec->devnull };
+    test_eval '<method>';
+}
 
 sub test_eval {
     my $what = shift;