bump DDS prereq (see RT#105466)
[p5sagit/Devel-REPL.git] / t / load_plugins.t
old mode 100755 (executable)
new mode 100644 (file)
index e8b26df..40b11c7
@@ -1,9 +1,9 @@
-#!/usr/bin/env perl
 
-use FindBin qw($Bin);
-use lib "$Bin/../t/lib";
+use strict;
+use warnings;
 
-use Test::More 'no_plan';
+use Test::More;
+use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';
 
 use_ok('Devel::REPL');
 
@@ -39,23 +39,29 @@ Timing
 Turtles
 /;
 
+# one $repl is shared:
+# "Looks like the problem is that you can't open multiple instances of
+# Term::ReadLine:Perl from the same object.  I was able to correct this by
+# changing the test to reuse the same Devel::REPL instance each time.  This
+# prevents the warning that causes the test to fail.  I don't think this
+# changes the spirit of the test, it's just a byproduct of how
+# Term::ReadLine::Perl works." -- RT#84246
+my $repl = Devel::REPL->new;
 for my $plugin_name (@plugins) {
     test_load_plugin($plugin_name);
 }
 
 sub test_load_plugin {
     my ($plugin_name) = @_;
-    my $repl = Devel::REPL->new;
     my $test_name = "plugin $plugin_name loaded";
-    eval "use Devel::REPL::Plugin::$plugin_name";
-    unless($@) {
-        eval { $repl->load_plugin($plugin_name) };
-        ok(!$@, $test_name);
-    } else {
-        SKIP: {
-                skip "could not eval plugin $plugin_name", 1;
-        }
+
+    SKIP: {
+        eval "use Devel::REPL::Plugin::$plugin_name; 1"
+            or skip "could not eval plugin $plugin_name", 1;
+
+        ok(eval { $repl->load_plugin($plugin_name); 1 }, $test_name)
+            or diag $@;
     }
 }
 
-1;
+done_testing;