[Bps-public-commit] Test-Chimps-Client branch, master, updated. d1d84d617d5b7df7cbdda8e4de01c4e4bb756417

Ruslan Zakirov ruz at bestpractical.com
Thu May 28 08:33:46 EDT 2009


The branch, master has been updated
       via  d1d84d617d5b7df7cbdda8e4de01c4e4bb756417 (commit)
       via  7787595af2713ded61a9ce0ff36dcea989beed21 (commit)
       via  dd8f232f11f6ad5fe21ee208e31a6b5c758a20cc (commit)
       via  3559cf97ea99d17dea365063999cc961f4377b22 (commit)
       via  71b4626e0293121c30142860ddfdf50994c9d9e9 (commit)
       via  d3710c55d677179f5f94d985591eec3b2187c2cc (commit)
       via  c7be2cdcc58783d5b11e75d77ed550b52b1b082f (commit)
       via  43f86961e1d036e62a490db3ae899c01075ff4ad (commit)
       via  9e46f9e0fef765ca8ebcc415b9c9833812390159 (commit)
       via  13ad745ab62b811bc1f20928887b8795cf4ec1e0 (commit)
       via  251771bc413a173b5d7108dd21f8c4fa35ae580c (commit)
       via  7e0a83febef06ec0ef939d8c2adb8d17ac42279f (commit)
       via  47549af4ade2ae3c9f2abd063ec5ad55f73d68e0 (commit)
      from  c727bb535680146219cacba302855c3307a3c496 (commit)

Summary of changes:
 Changes                             |    9 +++-
 Makefile.PL                         |    6 ++-
 examples/pg_dbs_cleaner.pl          |   31 +++++++++++
 lib/Test/Chimps/Smoker.pm           |   83 +++++++++++++++++------------
 t/lib/Test/Chimps/TestSVN.pm        |   98 +++++++++++++++++++++++++++++++++++
 t/lib/Test/Chimps/TestUtils.pm      |   29 ++++++++++
 t/smoker/external_cleaner.t         |   84 ++++++++++++++++++++++++++++++
 t/smoker/svn-basic.t                |   91 ++++++++++++++++++++++++++++++++
 {t => xt/release}/00-dependencies.t |    0 
 {t => xt/release}/pod-coverage.t    |    0 
 {t => xt/release}/pod.t             |    0 
 11 files changed, 393 insertions(+), 38 deletions(-)
 create mode 100644 examples/pg_dbs_cleaner.pl
 create mode 100644 t/lib/Test/Chimps/TestSVN.pm
 create mode 100644 t/lib/Test/Chimps/TestUtils.pm
 create mode 100644 t/smoker/external_cleaner.t
 create mode 100644 t/smoker/svn-basic.t
 rename {t => xt/release}/00-dependencies.t (100%)
 rename {t => xt/release}/pod-coverage.t (100%)
 rename {t => xt/release}/pod.t (100%)

- Log -----------------------------------------------------------------
commit 47549af4ade2ae3c9f2abd063ec5ad55f73d68e0
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 01:33:24 2009 +0400

    * add tests globs and extra tests to makefile

diff --git a/Makefile.PL b/Makefile.PL
index bb6fbcd..40c91c2 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -16,6 +16,9 @@ requires('Params::Validate');
 requires('TAP::Harness::Archive');
 requires('YAML::Syck');
 
+tests('t/*.t t/*/*.t');
+extra_tests;
+
 build_requires('Test::Dependencies');
 build_requires('Test::HTTP::Server::Simple');
 build_requires('HTTP::Server::Simple::CGI');

commit 7e0a83febef06ec0ef939d8c2adb8d17ac42279f
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 01:36:52 2009 +0400

    * wrap call to smoke_once in eval to avoid stopping

diff --git a/lib/Test/Chimps/Smoker.pm b/lib/Test/Chimps/Smoker.pm
index b032a7b..2b11252 100644
--- a/lib/Test/Chimps/Smoker.pm
+++ b/lib/Test/Chimps/Smoker.pm
@@ -244,7 +244,10 @@ sub _smoke_projects {
     my $projects = shift;
 
     foreach my $project (@$projects) {
-        $self->_smoke_once($project);
+        local $@;
+        eval { $self->_smoke_once($project) };
+        warn "Couldn't smoke project '$project': $@"
+            if $@;
     }
 }
 
@@ -287,7 +290,6 @@ sub _smoke_once {
             lib => \@libs,
         } );
     {
-
         # Runtests apparently grows PERL5LIB -- local it so it doesn't
         # grow without bound
         local $ENV{PERL5LIB} = $ENV{PERL5LIB};

commit 251771bc413a173b5d7108dd21f8c4fa35ae580c
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 01:38:14 2009 +0400

    * move some tests into xt/release/

diff --git a/t/00-dependencies.t b/xt/release/00-dependencies.t
similarity index 100%
rename from t/00-dependencies.t
rename to xt/release/00-dependencies.t
diff --git a/t/pod-coverage.t b/xt/release/pod-coverage.t
similarity index 100%
rename from t/pod-coverage.t
rename to xt/release/pod-coverage.t
diff --git a/t/pod.t b/xt/release/pod.t
similarity index 100%
rename from t/pod.t
rename to xt/release/pod.t

commit 13ad745ab62b811bc1f20928887b8795cf4ec1e0
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:01:47 2009 +0400

    * utils for tests

diff --git a/t/lib/Test/Chimps/TestUtils.pm b/t/lib/Test/Chimps/TestUtils.pm
new file mode 100644
index 0000000..595f365
--- /dev/null
+++ b/t/lib/Test/Chimps/TestUtils.pm
@@ -0,0 +1,29 @@
+package Test::Chimps::TestUtils;
+
+use strict;
+use warnings;
+use base qw(Exporter);
+our @EXPORT_OK = qw(write_file run_cmd);
+
+use File::Path qw(make_path);
+
+sub write_file {
+    my ($dir, $name, $content) = @_;
+
+    make_path($dir);
+
+    my $fn = File::Spec->catfile( $dir, $name );
+    open my $fh, '>', $fn
+        or die "Couldn't open $fn: $!";
+    print $fh $content;
+    close $fh;
+}
+
+sub run_cmd {
+    my @args = @_;
+    system(@args) == 0
+        or die "Couldn't run `". join(' ', @args ) ."`: $!";
+    return 1;
+}
+
+1;

commit 9e46f9e0fef765ca8ebcc415b9c9833812390159
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:02:07 2009 +0400

    * basic svn repository management class for tests

diff --git a/t/lib/Test/Chimps/TestSVN.pm b/t/lib/Test/Chimps/TestSVN.pm
new file mode 100644
index 0000000..20e1606
--- /dev/null
+++ b/t/lib/Test/Chimps/TestSVN.pm
@@ -0,0 +1,98 @@
+package Test::Chimps::TestSVN;
+
+use strict;
+use warnings;
+
+use base qw(Class::Accessor);
+__PACKAGE__->mk_accessors(qw(directory));
+
+use File::Spec;
+use File::Temp qw(tempdir);
+use Test::Chimps::TestUtils qw(write_file run_cmd);
+
+
+sub new {
+    my $proto = shift;
+    my $self = bless { @_ }, ref($proto) || $proto;
+    return $self->init;
+}
+
+sub init {
+    my $self = shift;
+
+    my $dir = tempdir(CLEANUP => 1)
+        or die "Couldn't create a temp directory";
+
+    system('svnadmin', 'create', $dir) == 0
+        or die "couldn't create a svn reposiotry";
+
+    $self->directory( $dir );
+
+    return $self;
+}
+
+sub uri { return "file://". $_[0]->directory }
+
+sub checkout {
+    my $self = shift;
+
+    my $uri = $self->uri;
+
+    my $co_dir = File::Temp->newdir;
+    Test::More::diag("Created a dir for checkout: $co_dir");
+    system('svn', 'checkout', $uri, $co_dir) == 0
+        or die "couldn't checkout repository '$uri' into '$co_dir': $!";
+
+    return $co_dir;
+}
+
+sub create {
+    my $self = shift;
+    my $package = shift || 'T';
+
+    my $co_dir = $self->checkout;
+
+    write_file( $co_dir, 'Makefile.PL', <<END
+use ExtUtils::MakeMaker;
+WriteMakefile(
+    NAME            => '$package',
+    VERSION_FROM    => '$package.pm',
+);
+END
+    );
+
+    write_file( $co_dir, $package .'.pm', <<END
+package $package;
+our \$VERSION = '0.01';
+1;
+END
+    );
+
+    write_file( File::Spec->catdir($co_dir, 't'), 'basic.t', <<END
+use Test::More tests => 1;
+ok 1, "basic test";
+END
+    );
+
+    run_cmd('svn', 'add', File::Spec->catfile($co_dir, 'Makefile.PL'));
+    run_cmd('svn', 'add', File::Spec->catfile($co_dir, $package .'.pm'));
+    run_cmd('svn', 'add', File::Spec->catdir($co_dir, 't'));
+    run_cmd('svn', 'commit', '-m', 'first commit', $co_dir);
+
+    return 1;
+}
+
+sub update {
+    my $self = shift;
+
+    my ($fdir, $fname, $content) = @_;
+
+    my $co_dir = $self->checkout;
+
+    write_file( File::Spec->catdir($co_dir, $fdir), $fname, $content );
+    run_cmd('svn', 'add', File::Spec->catfile($co_dir, $fdir, $fname));
+    run_cmd('svn', 'commit', '-m', 'a commit', $co_dir);
+    return 1;
+}
+
+1;

commit 43f86961e1d036e62a490db3ae899c01075ff4ad
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:02:52 2009 +0400

    * add tests for smoker

diff --git a/t/smoker/external_cleaner.t b/t/smoker/external_cleaner.t
new file mode 100644
index 0000000..0c7c380
--- /dev/null
+++ b/t/smoker/external_cleaner.t
@@ -0,0 +1,84 @@
+use strict;
+use warnings;
+use lib 't/lib/';
+
+use Test::More tests => 2;
+
+use YAML::Syck;
+
+use Test::Chimps::Smoker;
+use Test::Chimps::TestServer;
+use Test::Chimps::TestSVN;
+
+use Cwd qw(abs_path);
+
+my $repo = new Test::Chimps::TestSVN; 
+ok $repo, "created a svn repository";
+
+$repo->create;
+
+{
+    my $test_file = new File::Temp;
+    my $clean_cmd_text = <<END;
+use strict;
+use warnings;
+
+open my \$fh, '>>', '$test_file'
+    or die "Couldn't open file $test_file: \$!";
+
+my \@args = splice \@ARGV;
+
+if ( grep \$_ eq '--clean', \@args ) {
+    my \@input = <>;
+    print \$fh join "\n", \@args;
+    print \$fh "\n";
+    print \$fh join "", \@input;
+} else {
+    print \$fh join "\n", \@args;
+    print \$fh "\n";
+    print "woot\n";
+    print \$fh "---\n";
+}
+END
+
+    my $clean_cmd = new File::Temp;
+    print $clean_cmd $clean_cmd_text;
+    $clean_cmd->flush;
+
+    my $config = {
+        'test-project' => {
+            configure_cmd => 'perl Makefile.PL --defaultdeps && make',
+            clean_cmd  => 'perl '. $clean_cmd,
+            repository => {
+                type => 'SVN',
+                uri  => $repo->uri,
+            },
+            revision => 0,
+        }
+    };
+
+    my $config_file = new File::Temp;
+    DumpFile("$config_file", $config);
+    my $smoker = Test::Chimps::Smoker->new(
+        config_file => "$config_file",
+    );
+    $smoker->smoke(iterations => 1);
+
+    $test_file->seek(0, 0);
+    my $got = do { local $/; <$test_file> };
+    my $abs_config_file = abs_path($config_file);
+    is $got, <<END, "got correct data in cleaner command";
+--project
+test-project
+--config
+$abs_config_file
+---
+--project
+test-project
+--config
+$abs_config_file
+--clean
+woot
+END
+
+}
diff --git a/t/smoker/svn-basic.t b/t/smoker/svn-basic.t
new file mode 100644
index 0000000..6bb7b14
--- /dev/null
+++ b/t/smoker/svn-basic.t
@@ -0,0 +1,91 @@
+use strict;
+use warnings;
+use lib 't/lib/';
+
+use Test::More tests => 14;
+
+use Test::Chimps::Smoker;
+use Test::Chimps::TestServer;
+use Test::Chimps::TestSVN;
+
+use File::Temp qw(tempdir);
+use YAML::Syck;
+
+my $server = new Test::Chimps::TestServer;
+my $url = $server->started_ok("start up my web server");
+
+my $repo = new Test::Chimps::TestSVN; 
+ok $repo, "created a svn repository";
+
+$repo->create;
+$repo->update( 't', 'basic.t', <<END
+use Test::More tests => 2;
+ok 1, "basic test";
+ok 1, "another test";
+END
+);
+
+{
+    $server->flush_reports;
+    my $config = {
+        'test-project' => {
+            configure_cmd => 'perl Makefile.PL --defaultdeps && make',
+            repository => {
+                type => 'SVN',
+                uri  => $repo->uri,
+            },
+            revision => 0,
+            root_dir => '.',
+        }
+    };
+
+    my $config_file = new File::Temp;
+    DumpFile("$config_file", $config);
+    my $smoker = Test::Chimps::Smoker->new(
+        server      => $url,
+        config_file => $config_file,
+        sleep       => 0,
+    );
+    $smoker->smoke(iterations => 1);
+
+    my @reports = $server->reports;
+    is scalar @reports, 1, "only iteration";
+    is $reports[0]{'meta'}{'extra_properties'}{'revision'}, 1, "smoked first revision";
+    ok $reports[0]{'meta'}{'extra_properties'}{'committer'}, "has some committer";
+    is $reports[0]{'TAP'}, "1..1\nok 1 - basic test\n", "correct tap";
+}
+
+{
+    $server->flush_reports;
+    my $config = {
+        'test-project' => {
+            configure_cmd => 'perl Makefile.PL --defaultdeps && make',
+            repository => {
+                type => 'SVN',
+                uri  => $repo->uri,
+            },
+            revision => 0,
+            root_dir => '.',
+        }
+    };
+
+    my $config_file = new File::Temp;
+    DumpFile("$config_file", $config);
+    my $smoker = Test::Chimps::Smoker->new(
+        server      => $url,
+        config_file => $config_file,
+        sleep       => 0,
+    );
+    $smoker->smoke(iterations => 2);
+
+    my @reports = $server->reports;
+    is scalar @reports, 2, "two iterations";
+    is $reports[0]{'meta'}{'extra_properties'}{'revision'}, 1, "smoked first revision";
+    ok $reports[0]{'meta'}{'extra_properties'}{'committer'}, "has some committer";
+    is $reports[0]{'TAP'}, "1..1\nok 1 - basic test\n", "correct tap";
+
+    is $reports[1]{'meta'}{'extra_properties'}{'revision'}, 2, "smoked second revision";
+    ok $reports[1]{'meta'}{'extra_properties'}{'committer'}, "has some committer";
+    is $reports[1]{'TAP'}, "1..2\nok 1 - basic test\nok 2 - another test\n", "correct tap";
+}
+

commit c7be2cdcc58783d5b11e75d77ed550b52b1b082f
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:04:21 2009 +0400

    * minor: server is no required option, pod fix

diff --git a/lib/Test/Chimps/Smoker.pm b/lib/Test/Chimps/Smoker.pm
index 2b11252..5de44b3 100644
--- a/lib/Test/Chimps/Smoker.pm
+++ b/lib/Test/Chimps/Smoker.pm
@@ -106,8 +106,8 @@ sub _init {
     my %args = validate_with(
         params => \@_,
         spec   => {
-            server      => 1,
             config_file => 1,
+            server      => 0,
             simulate    => 0,
             iterations  => {
                 optional => 1,
@@ -267,7 +267,7 @@ sub _smoke_once {
 
     my @libs = $self->_checkout_project($config, $revision);
     unless (@libs) {
-        print "Skipping report report for $project revision $revision due to build failure\n";
+        print "Skipping report for $project revision $revision due to build failure\n";
         $self->update_revision_in_config( $project => $revision );
         return 0;
     }

commit d3710c55d677179f5f94d985591eec3b2187c2cc
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:05:45 2009 +0400

    * get rid of code that drops databases in Pg

diff --git a/Makefile.PL b/Makefile.PL
index 40c91c2..dff52f6 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -4,7 +4,6 @@ readme_from     'lib/Test/Chimps/Client.pm';
 
 # Specific dependencies
 requires('Class::Accessor');
-requires('DBI');
 requires('Cwd');
 requires('File::Spec');
 requires('File::Path');
diff --git a/lib/Test/Chimps/Smoker.pm b/lib/Test/Chimps/Smoker.pm
index 5de44b3..b1171bd 100644
--- a/lib/Test/Chimps/Smoker.pm
+++ b/lib/Test/Chimps/Smoker.pm
@@ -13,8 +13,6 @@ use Test::Chimps::Client;
 use TAP::Harness::Archive;
 use YAML::Syck;
 
-use DBI;
-
 =head1 NAME
 
 Test::Chimps::Smoker - Poll a set of repositories and run tests when they change
@@ -271,7 +269,6 @@ sub _smoke_once {
         $self->update_revision_in_config( $project => $revision );
         return 0;
     }
-    my @dbs = $self->_list_dbs;
 
     print "running tests for $project\n";
     my $test_glob = $config->{test_glob} || 't/*.t t/*/t/*.t';
@@ -296,11 +293,9 @@ sub _smoke_once {
         $harness->runtests(glob($test_glob));
     }
 
-    $self->_unroll_env_stack;
-
     $self->_clean_project( $config );
 
-    $self->_clean_dbs(@dbs);
+    $self->_unroll_env_stack;
 
     if ( my $server = $self->server ) {
         my $client = Test::Chimps::Client->new(
@@ -435,15 +430,26 @@ sub _checkout_project {
 
     local $ENV{PERL5LIB} = join(":", at libs,$ENV{PERL5LIB});
 
-    if (defined $project->{configure_cmd}) {
-        my $ret = system($project->{configure_cmd});
+    if (defined( my $cmd = $project->{'configure_cmd'} )) {
+        my $ret = system($cmd);
         if ($ret) {
-            print "Return value of @{[$project->{configure_cmd}]} from $projectdir = $ret\n"
-              if $ret;
+            print STDERR "Return value of $cmd from $projectdir = $ret\n"
+                if $ret;
             return ();
         }
     }
 
+    if (defined( my $cmd = $project->{'clean_cmd'} )) {
+        print "Going to run project cleaner '$cmd'\n";
+        my @args = (
+            '--project', $project->{'name'},
+            '--config', $self->config_file,
+        );
+        open my $fh, '-|', join(' ', $cmd, @args)
+            or die "Couldn't run `". join(' ', $cmd, @args) ."`: $!";
+        $self->meta->{ $project->{'name'} }->{'cleaner'} = do { local $/; <$fh> };
+        close $fh;
+    }
     return @libs;
 }
 
@@ -451,6 +457,18 @@ sub _clean_project {
     my $self = shift;
     my $project = shift;
 
+    if (defined( my $cmd = $project->{'clean_cmd'} )) {
+        my @args = (
+            '--project', $project->{'name'},
+            '--config', $self->config_file,
+            '--clean',
+        );
+        open my $fh, '|-', join(' ', $cmd, @args)
+            or die "Couldn't run `". join(' ', $cmd, @args) ."`: $!";
+        print $fh $self->meta->{ $project->{'name'} }->{'cleaner'};
+        close $fh;
+    }
+
     $self->source( $project->{'name'} )->clean;
 
     if (defined $project->{dependencies}) {
@@ -460,25 +478,6 @@ sub _clean_project {
     }
 }
 
-sub _list_dbs {
-    local $ENV{DBI_USER} = "postgres";
-    local $@;
-    return map {s/.*dbname=(.*)/$1/ ? $_ : () } grep defined && length,
-      eval { DBI->data_sources("Pg") };
-}
-
-sub _clean_dbs {
-    my %skip = map {($_ => 1)} @_;
-
-    local $ENV{DBI_USER} = "postgres";
-    my @dbs = grep {not $skip{$_}}
-      _list_dbs();
-    return unless @dbs;
-
-    my $dbh = DBI->connect("dbi:Pg:dbname=template1","postgres","",{RaiseError => 1});
-    $dbh->do("DROP DATABASE $_") for @dbs;
-}
-
 sub _push_onto_env_stack {
     my $self = shift;
     my $vars = shift;

commit 71b4626e0293121c30142860ddfdf50994c9d9e9
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:18:56 2009 +0400

    * add an example of using clean_cmd

diff --git a/examples/pg_dbs_cleaner.pl b/examples/pg_dbs_cleaner.pl
new file mode 100644
index 0000000..b8ee364
--- /dev/null
+++ b/examples/pg_dbs_cleaner.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/env perl
+
+use warnings;
+use strict;
+use DBI;
+
+# --config <path to the file>, --project <project name>, [--clean]
+my @args = splice @ARGV;
+
+local $ENV{DBI_USER} = "postgres";
+
+unless ( grep $_ eq '--clean', @args ) {
+    # can collect state before smoking and print it to stdout
+    print join "\n", list_dbs(), '';
+} else {
+    # read collected info from stdin
+    my %skip = map { chomp; $_ => 1 } <>;
+
+    my @dbs = grep !$skip{ $_ }, list_dbs();
+    return unless @dbs;
+
+    my $dbh = DBI->connect("dbi:Pg:dbname=template1","postgres","",{RaiseError => 1});
+    $dbh->do("DROP DATABASE $_") for @dbs;
+}
+
+sub list_dbs {
+    local $@;
+    return map {s/.*dbname=(.*)/$1/ ? $_ : () } grep defined,
+        eval { DBI->data_sources("Pg") };
+}
+

commit 3559cf97ea99d17dea365063999cc961f4377b22
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:19:41 2009 +0400

    * describe clean_cmd in the pod

diff --git a/lib/Test/Chimps/Smoker.pm b/lib/Test/Chimps/Smoker.pm
index b1171bd..03e435d 100644
--- a/lib/Test/Chimps/Smoker.pm
+++ b/lib/Test/Chimps/Smoker.pm
@@ -614,8 +614,8 @@ testing commands should be run.
 
 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.
+Git. Particular source class may have more options, but at this
+moment Git and SVN have only 'uri' option.
 
 =item * env
 
@@ -653,6 +653,18 @@ A list of paths, relative to the project root, which should be added
 to @INC.  C<blib/lib> is automatically added, but you may need to
 include C<lib> here, for instance.
 
+=item * clean_cmd
+
+The command to clean before or after each iteration of the project testing.
+Called B<twice> before running tests and after with --config, --project
+arguments and --clean argument when called for the second time after testing.
+
+When called before testing (without --clean), state information can be printed
+to STDOUT. Later when called after testing (with --clean), the state info can
+be read from STDIN.
+
+An example you can find in a tarball of this distribution - F<examples/pg_dbs_cleaner.pl>.
+
 =back
 
 =head1 REPORT VARIABLES

commit dd8f232f11f6ad5fe21ee208e31a6b5c758a20cc
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:20:20 2009 +0400

    * we have limit on version of the File::Path module

diff --git a/Makefile.PL b/Makefile.PL
index dff52f6..37fccd8 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -6,7 +6,7 @@ readme_from     'lib/Test/Chimps/Client.pm';
 requires('Class::Accessor');
 requires('Cwd');
 requires('File::Spec');
-requires('File::Path');
+requires('File::Path' => '2.0'); # new style calling conventions
 requires('File::Temp');
 requires('Scalar::Util');
 requires('LWP::UserAgent');

commit 7787595af2713ded61a9ce0ff36dcea989beed21
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:31:14 2009 +0400

    * update changelog

diff --git a/Changes b/Changes
index 127a023..1320501 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,12 @@
 Revision history for Test-Chimps-Client
 
+0.12
+        * git support
+        * suport for one checkout/clone per smoking session
+          to save bandwith
+        * clean_cmd config option
+        * updated docs and tests
+
 0.05    Sun Aug 13 14:43:14 EDT 2006
         * added information about the mailing list
         * documented chimps-smoker.pl
@@ -18,4 +25,4 @@ Revision history for Test-Chimps-Client
         release.
 
 0.01    Fri Jun 16 13:21:11 EDT 2006
-        First revision.  
\ No newline at end of file
+        First revision.  

commit d1d84d617d5b7df7cbdda8e4de01c4e4bb756417
Author: Ruslan Zakirov <Ruslan.Zakirov at gmail.com>
Date:   Thu May 28 16:32:45 2009 +0400

    * update tests plan according to the latest changes

diff --git a/t/smoker/svn-basic.t b/t/smoker/svn-basic.t
index 6bb7b14..ac47d79 100644
--- a/t/smoker/svn-basic.t
+++ b/t/smoker/svn-basic.t
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 use lib 't/lib/';
 
-use Test::More tests => 14;
+use Test::More tests => 13;
 
 use Test::Chimps::Smoker;
 use Test::Chimps::TestServer;

-----------------------------------------------------------------------



More information about the Bps-public-commit mailing list