@@ -, +, @@ --- test_getplugins.pl | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 test_getplugins.pl --- a/test_getplugins.pl +++ a/test_getplugins.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +use Modern::Perl; + +use Koha::Plugins; +use Time::HiRes qw(gettimeofday tv_interval); +use Data::Dumper; + +my $plugins = Koha::Plugins->new; + +sub test { + my ($description, $sub) = @_; + my $t0 = [gettimeofday]; + $sub->(); + my $elapsed = tv_interval($t0); + say sprintf('%s: %.3fs', $description, $elapsed); +} + +test('First 2 calls to GetPlugins', sub { + my @all_plugins = $plugins->GetPlugins({ all => 1 }); + my @enabled_plugins = $plugins->GetPlugins(); + say sprintf('%d plugins detected, %d enabled', scalar @all_plugins, scalar @enabled_plugins); +}); + +test('1000 calls to GetPlugins', sub { + for (1..1000) { + my @plugins = $plugins->GetPlugins({ method => 'get_metadata' }); + } +}); + +test('1000 calls to GetPlugins with method = "unknown_method"', sub { + for (1..1000) { + my @plugins = $plugins->GetPlugins({ method => 'unknown_method' }); + } +}); + +test('1000 calls to GetPlugins with all = 1', sub { + for (1..1000) { + my @plugins = $plugins->GetPlugins({ all => 1 }); + } +}); --