Changeset 346
- Timestamp:
- 01/08/07 00:55:49 (2 years ago)
- Files:
-
- library/perl/trunk/Assurer/examples/config.yaml (modified) (1 diff)
- library/perl/trunk/Assurer/lib/Assurer.pm (modified) (2 diffs)
- library/perl/trunk/Assurer/lib/Assurer/Plugin.pm (modified) (2 diffs)
- library/perl/trunk/Assurer/lib/Assurer/Plugin/HTTP.pm (deleted)
- library/perl/trunk/Assurer/lib/Assurer/Plugin/Test (added)
- library/perl/trunk/Assurer/lib/Assurer/Plugin/Test.pm (added)
- library/perl/trunk/Assurer/lib/Assurer/Plugin/Test/HTTP.pm (added)
- library/perl/trunk/Assurer/lib/Assurer/Results.pm (added)
- library/perl/trunk/Assurer/lib/Assurer/Test.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
library/perl/trunk/Assurer/examples/config.yaml
r345 r346 1 1 global: 2 2 config: 3 no_diag: 13 no_diag: 0 4 4 5 plugins:5 test: 6 6 - module: HTTP 7 7 name: http://svn.mizzy.org/ #0 library/perl/trunk/Assurer/lib/Assurer.pm
r345 r346 43 43 $args ||= {}; 44 44 45 for my $plugin ( @{ $self->{config}->{plugins} } ) { 46 my $class = "Assurer::Plugin::$plugin->{module}"; 47 $class->use or die $@; 48 49 $class->new({ 50 config => $plugin->{config}, 51 name => $plugin->{name}, 52 })->run; 45 $self->load_plugins; 46 47 $self->run_hook('test'); 48 $self->run_hook('format'); 49 $self->run_hook('publish'); 50 } 51 52 sub run_hook { 53 my ( $self, $hook, $args ) = @_; 54 $args ||= {}; 55 56 for my $plugin ( @{ $self->{hooks}->{$hook} || [] } ) { 57 if ( $hook eq 'test' ) { 58 $args = { 59 %$args, 60 test => Assurer::Test->new($plugin), 61 }; 62 } 63 64 $plugin->run($context, $args); 65 $plugin->finalize if $plugin->can('finalize'); 66 } 67 } 68 69 sub load_plugins { 70 my $self = shift; 71 72 for my $hook ( qw/test format publish/ ) { 73 for my $plugin ( @{ $self->{config}->{$hook} || [] } ) { 74 my $class = "Assurer::Plugin::" . ucfirst $hook . "::$plugin->{module}"; 75 $class->use or die $@; 76 push @{ $self->{hooks}->{$hook} }, $class->new($plugin); 77 } 53 78 } 54 79 } … … 59 84 } 60 85 86 sub add_result { 87 my $self = shift; 88 push @{ $self->{results} }, shift; 89 } 90 91 sub results { 92 return shift->{results}; 93 } 61 94 1; # Magic true value required at end of module 62 95 __END__ library/perl/trunk/Assurer/lib/Assurer/Plugin.pm
r345 r346 4 4 use warnings; 5 5 use UNIVERSAL::require; 6 use Assurer::Results; 6 7 7 8 sub new { … … 12 13 bless $self, $class; 13 14 14 my $name = $self->{name} || 'no name';15 $self->log('info', "Testing $name"); 15 $self->init; 16 16 17 return $self; 18 } 19 20 sub init { 21 17 22 } 18 23 library/perl/trunk/Assurer/lib/Assurer/Test.pm
r345 r346 31 31 my $diag; 32 32 33 sub new { 34 my $class = shift; 35 my $self = { plugin => shift }; 36 bless $self, $class; 37 return $self; 38 } 39 33 40 sub AUTOLOAD { 34 my ($self) = @_;35 41 my $func = $AUTOLOAD; 36 42 return if $func =~ /::DESTROY$/; … … 39 45 40 46 my $code = sub { 41 my $memfile; 42 open my $out, '>', \$memfile; 47 my $self = shift; 48 49 my $result; 50 open my $out, '>', \$result; 43 51 $test->output($out); 44 45 52 $test->$method(@_); 46 53 47 if ( $ memfile=~ /^ok/ ) {54 if ( $result =~ /^ok/ ) { 48 55 print color 'blue'; 49 56 } … … 52 59 } 53 60 54 print "$ memfile";61 print "$result"; 55 62 56 63 print color 'reset'; 57 64 print $diag if $diag; 65 66 $self->{plugin}->{results}->add({ 67 result => $result, 68 diag => $diag, 69 }); 58 70 59 71 $diag = '';
