X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=t%2Fload_core.t;h=1cd69a2cacf42d6ff19bfaaacbc1332d99e25278;hp=cab5a073c40150dff580555b55edb8cf76874cb2;hb=f85a85b0ba6ea4eca7346b4bb0d7b3ce960b8e92;hpb=59500b7eafe06b09cccd3b4d4b80b0728698d034 diff --git a/t/load_core.t b/t/load_core.t old mode 100755 new mode 100644 index cab5a07..1cd69a2 --- a/t/load_core.t +++ b/t/load_core.t @@ -2,65 +2,76 @@ use strict; use warnings; use Test::More; -use Test::Warnings; +use if $ENV{AUTHOR_TESTING}, 'Test::Warnings'; +use Module::Runtime 'use_module'; +use Test::Fatal; -use_ok('Devel::REPL'); -use_ok('Devel::REPL::Script'); -use_ok('Devel::REPL::Plugin::Colors'); -use_ok('Devel::REPL::Plugin::Commands'); +_use_ok('Devel::REPL'); +_use_ok('Devel::REPL::Script'); +_use_ok('Devel::REPL::Plugin::Colors'); +_use_ok('Devel::REPL::Plugin::Commands'); -eval 'use PPI; 1' - and use_ok('Devel::REPL::Plugin::Completion'); +SKIP: { + eval 'use PPI; 1' or skip 'PPI not installed: skipping completion plugins', 6; -eval 'use File::Next; 1' - and use_ok('Devel::REPL::Plugin::CompletionDriver::INC'); + _use_ok('Devel::REPL::Plugin::Completion'); + _use_ok('Devel::REPL::Plugin::CompletionDriver::Globals'); + _use_ok('Devel::REPL::Plugin::CompletionDriver::Methods'); + _use_ok('Devel::REPL::Plugin::CompletionDriver::Turtles'); -eval 'use B::Keywords; 1' - and use_ok('Devel::REPL::Plugin::CompletionDriver::Keywords'); + test_plugin('File::Next', 'CompletionDriver::INC'); + test_plugin('B::Keywords', 'CompletionDriver::Keywords'); + test_plugin('Lexical::Persistence', 'CompletionDriver::LexEnv'); +}; -eval 'use Lexical::Persistence; 1' - and use_ok('Devel::REPL::Plugin::CompletionDriver::LexEnv') - and use_ok('Devel::REPL::Plugin::LexEnv'); +test_plugin('Lexical::Persistence', 'LexEnv'); -use_ok('Devel::REPL::Plugin::CompletionDriver::Globals'); -use_ok('Devel::REPL::Plugin::CompletionDriver::Methods'); +test_plugin('Data::Dumper::Concise', 'DDC'); -eval 'use Data::Dump::Concise; 1' - and use_ok('Devel::REPL::Plugin::DDC'); +test_plugin('Data::Dump::Streamer', 'DDS'); -eval 'use Data::Dump::Streamer; 1' - and use_ok('Devel::REPL::Plugin::DDS'); +_use_ok('Devel::REPL::Plugin::DumpHistory'); +_use_ok('Devel::REPL::Plugin::FancyPrompt'); +_use_ok('Devel::REPL::Plugin::FindVariable'); +_use_ok('Devel::REPL::Plugin::History'); -use_ok('Devel::REPL::Plugin::DumpHistory'); -use_ok('Devel::REPL::Plugin::FancyPrompt'); -use_ok('Devel::REPL::Plugin::FindVariable'); -use_ok('Devel::REPL::Plugin::History'); +test_plugin('Sys::SigAction', 'Interrupt'); -eval 'use Sys::SigAction; 1' - and use_ok('Devel::REPL::Plugin::Interrupt'); +# _use_ok('Devel::REPL::Plugin::Interrupt') unless $^O eq 'MSWin32'; -# use_ok('Devel::REPL::Plugin::Interrupt') unless $^O eq 'MSWin32'; +test_plugin('PPI', 'MultiLine::PPI'); -eval 'use PPI; 1' - and use_ok('Devel::REPL::Plugin::MultiLine::PPI'); +test_plugin('App::Nopaste', 'Nopaste'); -eval 'use App::Nopaste; 1' - and use_ok('Devel::REPL::Plugin::Nopaste'); +_use_ok('Devel::REPL::Plugin::OutputCache'); +_use_ok('Devel::REPL::Plugin::Packages'); +_use_ok('Devel::REPL::Plugin::Peek'); -use_ok('Devel::REPL::Plugin::OutputCache'); -use_ok('Devel::REPL::Plugin::Packages'); -use_ok('Devel::REPL::Plugin::Peek'); +test_plugin('PPI' ,'PPI'); -eval 'use PPI; 1' - and use_ok('Devel::REPL::Plugin::PPI'); +_use_ok('Devel::REPL::Plugin::ReadLineHistory'); -use_ok('Devel::REPL::Plugin::ReadLineHistory'); +test_plugin('Module::Refresh', 'Refresh'); -eval 'use Module::Refresh; 1' - and use_ok('Devel::REPL::Plugin::Refresh'); +_use_ok('Devel::REPL::Plugin::ShowClass'); +_use_ok('Devel::REPL::Plugin::Timing'); +_use_ok('Devel::REPL::Plugin::Turtles'); -use_ok('Devel::REPL::Plugin::ShowClass'); -use_ok('Devel::REPL::Plugin::Timing'); -use_ok('Devel::REPL::Plugin::Turtles'); +sub _use_ok { + my $module = shift; + is(exception { use_module $module }, undef, $module . ' ok'); +} + +sub test_plugin +{ + my ($prereq, $plugin) = @_; + + SKIP: { + eval "use $prereq; 1" + or skip "$prereq not installed: skipping $plugin", 1; + + _use_ok("Devel::REPL::Plugin::$plugin"); + } +} done_testing;