[Bps-public-commit] Test-Chimps-Client branch, master, updated. 3a2ea9e44a73a11896b144f2d1ff62eaa5e7329b
Ruslan Zakirov
ruz at bestpractical.com
Sat May 23 05:34:21 EDT 2009
The branch, master has been updated
via 3a2ea9e44a73a11896b144f2d1ff62eaa5e7329b (commit)
via f53b2cef9ae12ed38d78f9e92bed2b7ba206daaf (commit)
via b885a43c4615c0097cac91a1ce2c10064cff7978 (commit)
via 6fa766b4c4b19bb50abb4ee9cc8bb3c3982ec113 (commit)
via e3dbb01424819d346b2955aabbe0dba2a73c72d3 (commit)
from 46dde7bdc08c1264b5e6ecad878c7bc8f509a16d (commit)
Summary of changes:
Makefile.PL | 6 +-
README | 127 ++++++++++++----
lib/Test/Chimps/Client.pm | 35 +++--
lib/Test/Chimps/Smoker.pm | 336 ++++++++++++++++++++++-------------------
lib/Test/Chimps/Smoker/SVN.pm | 2 +-
t/05-client-basic.t | 16 +-
6 files changed, 316 insertions(+), 206 deletions(-)
- Log -----------------------------------------------------------------
commit e3dbb01424819d346b2955aabbe0dba2a73c72d3
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date: Fri May 22 05:42:33 2009 +0400
* bump version
* use M::I::ReadmeFrom, define perl version, pod updates
diff --git a/Makefile.PL b/Makefile.PL
index 46a5689..54dcc4b 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,12 +1,12 @@
use inc::Module::Install;
-
-# Define metadata
-name 'Test-Chimps-Client';
all_from 'lib/Test/Chimps/Client.pm';
+readme_from 'lib/Test/Chimps/Client.pm';
# Specific dependencies
requires('Class::Accessor');
requires('DBI');
+requires('Cwd');
+requires('Scalar::Util');
requires('LWP::UserAgent');
requires('HTTP::Request::Common');
requires('Params::Validate');
diff --git a/README b/README
index 7bcc3b7..a618d4b 100644
--- a/README
+++ b/README
@@ -1,44 +1,116 @@
-Test-Chimps-Client
+NAME
+ Test::Chimps::Client - Send smoke test results to a server
-Chimps is the Collaborative Heterogeneous Infinite Monkey
-Perfectionification Service. It is a framework for storing,
-viewing, generating, and uploading smoke reports. This
-distribution provides client-side modules and binaries for Chimps.
+SYNOPSIS
+ This module simplifies the process of sending smoke test results (in the
+ form of "Test::TAP::Model"s) to a smoke server.
+
+ use Test::Chimps::Client;
+ use Test::TAP::Model::Visual;
+
+ chdir "some/module/directory";
+
+ my $model = Test::TAP::Model::Visual->new_with_tests(glob("t/*.t"));
+
+ my $client = Test::Chimps::Client->new(
+ server => 'http://www.example.com/cgi-bin/smoke-server.pl',
+ model => $model
+ );
+
+ my ($status, $msg) = $client->send;
+
+ if (! $status) {
+ print "Error: $msg\n";
+ exit(1);
+ }
INSTALLATION
+ To install this module, run the following commands:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+DESCRIPTION
+ Chimps is the Collaborative Heterogeneous Infinite Monkey
+ Perfectionification Service. It is a framework for storing, viewing,
+ generating, and uploading smoke reports. This distribution provides
+ client-side modules and binaries for Chimps.
+
+METHODS
+ new ARGS
+ Creates a new Client object. ARGS is a hash whose valid keys are:
+
+ * file
+
+ Mandatory. The value must be a "Test::TAP::Model". These are the
+ test results that will be submitted to the server.
+
+ * report_variables
+
+ Optional. A hashref of report variables and values to send to the
+ server.
+
+ * server
+
+ Mandatory. The URI of the server script to upload the model to.
+
+ send
+ Submit the specified model to the server. This function's return value
+ is a list, the first of which indicates success or failure, and the
+ second of which is an error string.
+
+ACCESSORS
+ There are read-only accessors for model, report_variables, and server.
+
+AUTHOR
+ Zev Benjamin, "<zev at cpan.org>"
+
+BUGS
+ Please report any bugs or feature requests to "bug-test-chimps at
+ rt.cpan.org", or through the web interface at
+ <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Chimps-Client>. I
+ will be notified, and then you'll automatically be notified of progress
+ on your bug as I make changes.
+
+SUPPORT
+ You can find documentation for this module with the perldoc command.
+
+ perldoc Test::Chimps::Client
+
+ You can also look for information at:
-To install this module, run the following commands:
+ * Mailing list
- perl Makefile.PL
- make
- make test
- make install
+ Chimps has a mailman mailing list at chimps at bestpractical.com. You
+ can subscribe via the web interface at
+ <http://lists.bestpractical.com/cgi-bin/mailman/listinfo/chimps>.
+ * AnnoCPAN: Annotated CPAN documentation
-SUPPORT AND DOCUMENTATION
+ <http://annocpan.org/dist/Test-Chimps-Client>
-After installing, you can find documentation for this module with the perldoc command.
+ * CPAN Ratings
- perldoc Test::Chimps::Client
+ <http://cpanratings.perl.org/d/Test-Chimps-Client>
-You can also look for information at:
+ * RT: CPAN's request tracker
- Search CPAN
- http://search.cpan.org/dist/Test-Chimps-Client
+ <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Chimps-Client>
- CPAN Request Tracker:
- http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Chimps-Client
+ * Search CPAN
- AnnoCPAN, annotated CPAN documentation:
- http://annocpan.org/dist/Test-Chimps-Client
+ <http://search.cpan.org/dist/Test-Chimps-Client>
- CPAN Ratings:
- http://cpanratings.perl.org/d/Test-Chimps-Client
+ACKNOWLEDGEMENTS
+ Some code in this module is based on smokeserv-client.pl from the Pugs
+ distribution.
-COPYRIGHT AND LICENCE
+COPYRIGHT & LICENSE
+ Copyright 2006 Best Practical Solutions. Portions copyright 2005-2006
+ the Pugs project.
-Copyright 2006 Best Practical Solutions.
-Portions copyright 2005-2006 the Pugs project.
+ This program is free software; you can redistribute it and/or modify it
+ under the same terms as Perl itself.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
diff --git a/lib/Test/Chimps/Client.pm b/lib/Test/Chimps/Client.pm
index 89e8178..ecab014 100644
--- a/lib/Test/Chimps/Client.pm
+++ b/lib/Test/Chimps/Client.pm
@@ -1,13 +1,15 @@
package Test::Chimps::Client;
+use 5.008;
use warnings;
use strict;
+our $VERSION = '0.11';
+
use Carp;
use Params::Validate qw/:all/;
use HTTP::Request::Common;
use LWP::UserAgent;
-use Storable qw/nfreeze/;
use constant PROTO_VERSION => 1.0;
@@ -15,14 +17,6 @@ use constant PROTO_VERSION => 1.0;
Test::Chimps::Client - Send smoke test results to a server
-=head1 VERSION
-
-Version 0.05
-
-=cut
-
-our $VERSION = '0.10';
-
=head1 SYNOPSIS
This module simplifies the process of sending smoke test results
@@ -39,14 +33,29 @@ This module simplifies the process of sending smoke test results
server => 'http://www.example.com/cgi-bin/smoke-server.pl',
model => $model
);
-
+
my ($status, $msg) = $client->send;
-
+
if (! $status) {
print "Error: $msg\n";
exit(1);
}
+=head1 INSTALLATION
+
+To install this module, run the following commands:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+=head1 DESCRIPTION
+
+Chimps is the Collaborative Heterogeneous Infinite Monkey
+Perfectionification Service. It is a framework for storing,
+viewing, generating, and uploading smoke reports. This
+distribution provides client-side modules and binaries for Chimps.
=head1 METHODS
commit 6fa766b4c4b19bb50abb4ee9cc8bb3c3982ec113
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date: Fri May 22 06:27:13 2009 +0400
* update tests according to the latest API
diff --git a/t/05-client-basic.t b/t/05-client-basic.t
index b164e4c..9a4ca48 100644
--- a/t/05-client-basic.t
+++ b/t/05-client-basic.t
@@ -1,21 +1,21 @@
#!perl
-use Test::More tests => 6;
+use Test::More tests => 5;
BEGIN {
use_ok( 'Test::Chimps::Client' );
use_ok( 'Test::TAP::Model::Visual' );
}
-my $m = Test::TAP::Model::Visual->new_with_tests('t-data/bogus-tests/00-basic.t');
+use File::Temp;
-my $c = Test::Chimps::Client->new(model => $m,
- server => 'bogus',
- compress => 1);
+my $tmp = File::Temp->new;
+
+my $c = Test::Chimps::Client->new(
+ archive => $tmp,
+ server => 'bogus',
+);
ok($c, "the client object is defined");
isa_ok($c, 'Test::Chimps::Client', "and it's of the correct type");
-
-is($c->model, $m, "the reports accessor works");
is($c->server, "bogus", "the server accessor works");
-is($c->compress, 1, "the compress accessor works");
commit b885a43c4615c0097cac91a1ce2c10064cff7978
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date: Fri May 22 06:27:45 2009 +0400
* shuffle methods around, update pod
diff --git a/lib/Test/Chimps/Smoker.pm b/lib/Test/Chimps/Smoker.pm
index cc265bb..2d45418 100644
--- a/lib/Test/Chimps/Smoker.pm
+++ b/lib/Test/Chimps/Smoker.pm
@@ -17,30 +17,43 @@ use DBI;
=head1 NAME
-Test::Chimps::Smoker - Poll a set of SVN repositories and run tests when they change
+Test::Chimps::Smoker - Poll a set of repositories and run tests when they change
=head1 SYNOPSIS
-This module gives you everything you need to make your own build
-slave. You give it a configuration file describing all of your
-projects and how to test them, and it will monitor the SVN
-repositories, check the projects out (and their dependencies), test
-them, and submit the report to a server.
+ # command line tool
+ chimps-smoker.pl \
+ -c /path/to/configfile.yml \
+ -s http://www.example.com/cgi-bin/chimps-server.pl
+ # API
use Test::Chimps::Smoker;
my $poller = Test::Chimps::Smoker->new(
- server => 'http://www.example.com/cgi-bin/chimps-server.pl',
- config_file => '/path/to/configfile.yml'
+ server => 'http://www.example.com/cgi-bin/chimps-server.pl',
+ config_file => '/path/to/configfile.yml',
+ );
+
+ $poller->smoke;
+=head1 DESCRIPTION
- $poller->poll();
+Chimps is the Collaborative Heterogeneous Infinite Monkey
+Perfectionification Service. It is a framework for storing,
+viewing, generating, and uploading smoke reports. This
+distribution provides client-side modules and binaries for Chimps.
+
+This module gives you everything you need to make your own build
+slave. You give it a configuration file describing all of your
+projects and how to test them, and it will monitor the repositories,
+check the projects out (and their dependencies), test them, and submit
+the report to a server.
=head1 METHODS
=head2 new ARGS
-Creates a new Client object. ARGS is a hash whose valid keys are:
+Creates a new smoker object. ARGS is a hash whose valid keys are:
=over 4
@@ -48,15 +61,21 @@ Creates a new Client object. ARGS is a hash whose valid keys are:
Mandatory. The configuration file describing which repositories to
monitor. The format of the configuration is described in
-L</"CONFIGURATION FILE">.
+L</"CONFIGURATION FILE">. File is update after each run.
=item * server
-Mandatory. The URI of the server script to upload the reports to.
+Optional. The URI of the server script to upload the reports to.
+Defaults to simulation mode when reports are sent.
+
+=item * sleep
+
+Optional. Number of seconds to sleep between repository checks.
+Defaults to 60 seconds.
=item * simulate [DEPRECATED]
-[DEPRECATED] Just don't provide server to send files to.
+[DEPRECATED] Just don't provide server option to enable simulation.
Don't actually submit the smoke reports, just run the tests. This
I<does>, however, increment the revision numbers in the config
@@ -130,52 +149,103 @@ sub _init {
$self->load_config;
}
-sub load_config {
+=head2 smoke PARAMS
+
+Calling smoke will cause the C<Smoker> object to continually poll
+repositories for changes in revision numbers. If an (actual)
+change is detected, the repository will be checked out (with
+dependencies), built, and tested, and the resulting report will be
+submitted to the server. This method may not return. Valid
+options to smoke are:
+
+=over 4
+
+=item * iterations
+
+Specifies the number of iterations to run. This is the number of
+smoke reports to generate per project. A value of 'inf' means to
+continue smoking forever. Defaults to 'inf'.
+
+=item * projects
+
+An array reference specifying which projects to smoke. If the
+string 'all' is provided instead of an array reference, all
+projects will be smoked. Defaults to 'all'.
+
+=back
+
+=cut
+
+sub smoke {
my $self = shift;
+ my $config = $self->config;
- my $cfg = $self->config(LoadFile($self->config_file));
+ my %args = validate_with(
+ params => \@_,
+ spec => {
+ iterations => {
+ optional => 1,
+ type => SCALAR,
+ regex => qr/^(inf|\d+)$/,
+ default => 'inf'
+ },
+ projects => {
+ optional => 1,
+ type => ARRAYREF | SCALAR,
+ default => 'all'
+ }
+ },
+ called => 'Test::Chimps::Smoker->smoke'
+ );
- # update old style config file
- {
- my $found_old_style = 0;
- foreach ( grep $_->{svn_uri}, values %$cfg ) {
- $found_old_style = 1;
+ my $projects = $args{projects};
+ my $iterations = $args{iterations};
+ $self->_validate_projects_opt($projects);
- $_->{'repository'} = {
- type => 'SVN',
- uri => delete $_->{svn_uri},
- };
- }
- DumpFile($self->config_file, $cfg) if $found_old_style;
+ if ($projects eq 'all') {
+ $projects = [keys %$config];
}
-
- # store project name in its hash
- $cfg->{$_}->{'name'} = $_ foreach keys %$cfg;
+
+ $self->_smoke_n_times($iterations, $projects);
}
-sub update_revision_in_config {
- my $self = shift;
- my ($project, $revision) = @_;
+sub _validate_projects_opt {
+ my ($self, $projects) = @_;
+ return if $projects eq 'all';
- my $tmp = LoadFile($self->config_file);
- $tmp->{$project}->{revision} = $self->config->{$project}->{revision} = $revision;
- DumpFile($self->config_file, $tmp);
+ foreach my $project (@$projects) {
+ die "no such project: '$project'"
+ unless exists $self->config->{$project};
+ }
}
-sub DESTROY {
+sub _smoke_n_times {
my $self = shift;
- $self->remove_checkouts;
+ my $n = shift;
+ my $projects = shift;
+
+ if ($n <= 0) {
+ die "Can not smoke projects a negative number of times";
+ } elsif ($n eq 'inf') {
+ while (1) {
+ $self->_smoke_projects($projects);
+ CORE::sleep $self->sleep if $self->sleep;
+ }
+ } else {
+ for (my $i = 0; $i < $n;) {
+ $i++ if $self->_smoke_projects($projects);
+ CORE::sleep $self->sleep if $self->sleep;
+ }
+ }
}
-sub source {
+sub _smoke_projects {
my $self = shift;
- my $project = shift;
- $self->meta->{$project}{'source'} ||= Test::Chimps::Smoker::Source->new(
- %{ $self->config->{$project}{'repository'} },
- config => $self->config->{$project},
- smoker => $self,
- );
- return $self->meta->{$project}{'source'};
+ my $projects = shift;
+
+ foreach my $project (@$projects) {
+ $self->_smoke_once($project);
+ }
}
sub _smoke_once {
@@ -251,116 +321,47 @@ sub _smoke_once {
return 1;
}
-sub remove_checkouts {
+sub load_config {
my $self = shift;
- my $meta = $self->meta;
- foreach my $source ( grep $_, map $_->{'source'}, values %$meta ) {
- next unless my $dir = $source->directory;
-
- _remove_tmpdir($dir);
- $source->directory(undef);
- $source->cloned(0);
- }
-}
+ my $cfg = $self->config(LoadFile($self->config_file));
-sub _smoke_n_times {
- my $self = shift;
- my $n = shift;
- my $projects = shift;
+ # update old style config file
+ {
+ my $found_old_style = 0;
+ foreach ( grep $_->{svn_uri}, values %$cfg ) {
+ $found_old_style = 1;
- if ($n <= 0) {
- die "Can not smoke projects a negative number of times";
- } elsif ($n eq 'inf') {
- while (1) {
- $self->_smoke_projects($projects);
- CORE::sleep $self->sleep if $self->sleep;
- }
- } else {
- for (my $i = 0; $i < $n;) {
- $i++ if $self->_smoke_projects($projects);
- CORE::sleep $self->sleep if $self->sleep;
+ $_->{'repository'} = {
+ type => 'SVN',
+ uri => delete $_->{svn_uri},
+ };
}
+ DumpFile($self->config_file, $cfg) if $found_old_style;
}
+
+ # store project name in its hash
+ $cfg->{$_}->{'name'} = $_ foreach keys %$cfg;
}
-sub _smoke_projects {
+sub update_revision_in_config {
my $self = shift;
- my $projects = shift;
+ my ($project, $revision) = @_;
- foreach my $project (@$projects) {
- $self->_smoke_once($project);
- }
+ my $tmp = LoadFile($self->config_file);
+ $tmp->{$project}->{revision} = $self->config->{$project}->{revision} = $revision;
+ DumpFile($self->config_file, $tmp);
}
-=head2 smoke PARAMS
-
-Calling smoke will cause the C<Smoker> object to continually poll
-repositories for changes in revision numbers. If an (actual)
-change is detected, the repository will be checked out (with
-dependencies), built, and tested, and the resulting report will be
-submitted to the server. This method may not return. Valid
-options to smoke are:
-
-=over 4
-
-=item * iterations
-
-Specifies the number of iterations to run. This is the number of
-smoke reports to generate per project. A value of 'inf' means to
-continue smoking forever. Defaults to 'inf'.
-
-=item * projects
-
-An array reference specifying which projects to smoke. If the
-string 'all' is provided instead of an array reference, all
-projects will be smoked. Defaults to 'all'.
-
-=back
-
-=cut
-
-sub smoke {
+sub source {
my $self = shift;
- my $config = $self->config;
-
- my %args = validate_with(
- params => \@_,
- spec => {
- iterations => {
- optional => 1,
- type => SCALAR,
- regex => qr/^(inf|\d+)$/,
- default => 'inf'
- },
- projects => {
- optional => 1,
- type => ARRAYREF | SCALAR,
- default => 'all'
- }
- },
- called => 'Test::Chimps::Smoker->smoke'
- );
-
- my $projects = $args{projects};
- my $iterations = $args{iterations};
- $self->_validate_projects_opt($projects);
-
- if ($projects eq 'all') {
- $projects = [keys %$config];
- }
-
- $self->_smoke_n_times($iterations, $projects);
-}
-
-sub _validate_projects_opt {
- my ($self, $projects) = @_;
- return if $projects eq 'all';
-
- foreach my $project (@$projects) {
- die "no such project: '$project'"
- unless exists $self->config->{$project};
- }
+ my $project = shift;
+ $self->meta->{$project}{'source'} ||= Test::Chimps::Smoker::Source->new(
+ %{ $self->config->{$project}{'repository'} },
+ config => $self->config->{$project},
+ smoker => $self,
+ );
+ return $self->meta->{$project}{'source'};
}
sub _clone_project {
@@ -476,12 +477,6 @@ sub _clean_dbs {
$dbh->do("DROP DATABASE $_") for @dbs;
}
-sub _remove_tmpdir {
- my $tmpdir = shift;
- print "removing temporary directory $tmpdir\n";
- rmtree($tmpdir, 0, 0);
-}
-
sub _push_onto_env_stack {
my $self = shift;
my $vars = shift;
@@ -521,9 +516,33 @@ sub _unroll_env_stack {
}
}
+sub DESTROY {
+ my $self = shift;
+ $self->remove_checkouts;
+}
+
+sub remove_checkouts {
+ my $self = shift;
+
+ my $meta = $self->meta;
+ foreach my $source ( grep $_, map $_->{'source'}, values %$meta ) {
+ next unless my $dir = $source->directory;
+
+ _remove_tmpdir($dir);
+ $source->directory(undef);
+ $source->cloned(0);
+ }
+}
+
+sub _remove_tmpdir {
+ my $tmpdir = shift;
+ print "removing temporary directory $tmpdir\n";
+ rmtree($tmpdir, 0, 0);
+}
+
=head1 ACCESSORS
-There are read-only accessors for server, config_file, and simulate.
+There are read-only accessors for server and config_file.
=head1 CONFIGURATION FILE
@@ -542,7 +561,7 @@ look like this:
revision: 555
root_dir: trunk/foo
repository:
- type: svn
+ type: SVN
uri: svn+ssh://svn.example.com/svn/foo
test_glob: t/*.t t/*/*.t
Jifty:
@@ -552,7 +571,7 @@ look like this:
revision: 1332
root_dir: trunk
repository:
- type: svn
+ type: SVN
uri: svn+ssh://svn.jifty.org/svn/jifty.org/jifty
Jifty-DBI:
configure_cmd: perl Makefile.PL --skipdeps && make
@@ -565,7 +584,7 @@ look like this:
revision: 1358
root_dir: trunk
repository:
- type: svn
+ type: SVN
uri: svn+ssh://svn.jifty.org/svn/jifty.org/Jifty-DBI
The supported project options are as follows:
@@ -590,9 +609,12 @@ number is updated and the configuration file is re-written.
The subdirectory inside the repository where configuration and
testing commands should be run.
-=item * svn_uri
+=item * repository
-The subversion URI of the project.
+A hash describing repository of the project. Mandatory key is
+type which must match a source class name, for example SVN or
+Git. Another things is uri option, but a particular class
+may have more options.
=item * env
@@ -602,6 +624,10 @@ tests have been run. In addition, if environment variable FOO's
new value contains the string "$FOO", then the old value of FOO
will be substituted in when setting the environment variable.
+Special environment variables are set in addition to described
+above. For each project CHIMPS_<project name>_ROOT is set pointing
+to the current checkout of the project.
+
=item * dependencies
A list of project names that are dependencies for the given
@@ -689,7 +715,7 @@ L<http://search.cpan.org/dist/Test-Chimps-Client>
=head1 COPYRIGHT & LICENSE
-Copyright 2006 Best Practical Solutions.
+Copyright 2006-2009 Best Practical Solutions.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
commit f53b2cef9ae12ed38d78f9e92bed2b7ba206daaf
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date: Fri May 22 06:28:25 2009 +0400
* update docs
diff --git a/README b/README
index a618d4b..4c9fdf0 100644
--- a/README
+++ b/README
@@ -35,8 +35,9 @@ INSTALLATION
DESCRIPTION
Chimps is the Collaborative Heterogeneous Infinite Monkey
Perfectionification Service. It is a framework for storing, viewing,
- generating, and uploading smoke reports. This distribution provides
- client-side modules and binaries for Chimps.
+ generating, and uploading smoke reports.
+
+ This distribution provides client-side modules and binaries for Chimps.
METHODS
new ARGS
@@ -108,8 +109,8 @@ ACKNOWLEDGEMENTS
distribution.
COPYRIGHT & LICENSE
- Copyright 2006 Best Practical Solutions. Portions copyright 2005-2006
- the Pugs project.
+ Copyright 2006-2009 Best Practical Solutions. Portions copyright
+ 2005-2006 the Pugs project.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/lib/Test/Chimps/Client.pm b/lib/Test/Chimps/Client.pm
index ecab014..e38c394 100644
--- a/lib/Test/Chimps/Client.pm
+++ b/lib/Test/Chimps/Client.pm
@@ -54,8 +54,10 @@ To install this module, run the following commands:
Chimps is the Collaborative Heterogeneous Infinite Monkey
Perfectionification Service. It is a framework for storing,
-viewing, generating, and uploading smoke reports. This
-distribution provides client-side modules and binaries for Chimps.
+viewing, generating, and uploading smoke reports.
+
+This distribution provides client-side modules and binaries
+for Chimps.
=head1 METHODS
@@ -210,7 +212,7 @@ Pugs distribution.
=head1 COPYRIGHT & LICENSE
-Copyright 2006 Best Practical Solutions.
+Copyright 2006-2009 Best Practical Solutions.
Portions copyright 2005-2006 the Pugs project.
This program is free software; you can redistribute it and/or modify it
commit 3a2ea9e44a73a11896b144f2d1ff62eaa5e7329b
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date: Sat May 23 13:33:51 2009 +0400
* -l is new enough, use --limit
diff --git a/lib/Test/Chimps/Smoker/SVN.pm b/lib/Test/Chimps/Smoker/SVN.pm
index 8e0f963..f118831 100644
--- a/lib/Test/Chimps/Smoker/SVN.pm
+++ b/lib/Test/Chimps/Smoker/SVN.pm
@@ -40,7 +40,7 @@ sub next {
my $self = shift;
my $revision = $self->config->{revision};
- my $cmd = "svn log -l1 -q -r $revision:HEAD ". $self->uri;
+ my $cmd = "svn log --limit 1 -q -r $revision:HEAD ". $self->uri;
my ($next, $committer) = (`$cmd` =~ m/^r([0-9]+)\s+\|\s*.*?\s*\|/m);
return () unless $next;
-----------------------------------------------------------------------
More information about the Bps-public-commit
mailing list