[Bps-public-commit] r15729 - in Test-Chimps-Client/trunk: lib/Test/Chimps

alexmv at bestpractical.com alexmv at bestpractical.com
Wed Sep 3 16:51:07 EDT 2008


Author: alexmv
Date: Wed Sep  3 16:51:06 2008
New Revision: 15729

Modified:
   Test-Chimps-Client/trunk/   (props changed)
   Test-Chimps-Client/trunk/lib/Test/Chimps/Client.pm
   Test-Chimps-Client/trunk/lib/Test/Chimps/Smoker.pm

Log:


Modified: Test-Chimps-Client/trunk/lib/Test/Chimps/Client.pm
==============================================================================
--- Test-Chimps-Client/trunk/lib/Test/Chimps/Client.pm	(original)
+++ Test-Chimps-Client/trunk/lib/Test/Chimps/Client.pm	Wed Sep  3 16:51:06 2008
@@ -5,10 +5,11 @@
 
 use Carp;
 use Params::Validate qw/:all/;
+use HTTP::Request::Common;
 use LWP::UserAgent;
 use Storable qw/nfreeze/;
 
-use constant PROTO_VERSION => 0.2;
+use constant PROTO_VERSION => 1.0;
 
 =head1 NAME
 
@@ -20,7 +21,7 @@
 
 =cut
 
-our $VERSION = '0.05';
+our $VERSION = '0.10';
 
 =head1 SYNOPSIS
 
@@ -55,11 +56,7 @@
 
 =over 4
 
-=item * compress
-
-Optional.  Does not currently work
-
-=item * model
+=item * file
 
 Mandatory.  The value must be a C<Test::TAP::Model>.  These are the
 test results that will be submitted to the server.
@@ -79,7 +76,7 @@
 
 use base qw/Class::Accessor/;
 
-__PACKAGE__->mk_ro_accessors(qw/model server compress report_variables/);
+__PACKAGE__->mk_ro_accessors(qw/archive server/);
 
 sub new {
   my $class = shift;
@@ -94,9 +91,8 @@
     params => \@_,
     called => 'The Test::Chimps::Client constructor',
     spec   => {
-      model            => { isa => 'Test::TAP::Model' },
+      archive          => { isa => 'File::Temp' },
       server           => 1,
-      compress         => 0,
       report_variables => {
         optional => 1,
         type     => HASHREF,
@@ -120,32 +116,36 @@
 =cut
 
 sub send {
-  my $self = shift;
-  
-  my $ua = LWP::UserAgent->new;
-  $ua->agent("Test-Chimps-Client/" . PROTO_VERSION);
-  $ua->env_proxy;
-
-  my %request = (upload => 1, version => PROTO_VERSION,
-                 model_structure => nfreeze($self->model->structure),
-                 report_variables => nfreeze($self->report_variables));
-
-  my $resp = $ua->post($self->server => \%request);
-  if($resp->is_success) {
-    if($resp->content =~ /^ok/) {
-      return (1, '');
+    my $self = shift;
+
+    my $ua = LWP::UserAgent->new;
+    $ua->agent( "Test-Chimps-Client/" . PROTO_VERSION );
+    $ua->env_proxy;
+
+    my $resp = $ua->post(
+        $self->server,
+        Content_Type => 'form-data',
+        Content      => [
+            upload  => 1,
+            archive => [ "$self->{archive}" ],
+            version => PROTO_VERSION
+        ],
+    );
+
+    if ( $resp->is_success ) {
+        if ( $resp->content =~ /^ok/ ) {
+            return ( 1, '' );
+        } else {
+            return ( 0, $resp->content );
+        }
     } else {
-      return (0, $resp->content);
+        return ( 0, $resp->status_line );
     }
-  } else {
-    return (0, $resp->status_line);
-  }
 }
 
 =head1 ACCESSORS
 
-There are read-only accessors for compress, model,
-report_variables, and server.
+There are read-only accessors for model, report_variables, and server.
 
 =head1 AUTHOR
 

Modified: Test-Chimps-Client/trunk/lib/Test/Chimps/Smoker.pm
==============================================================================
--- Test-Chimps-Client/trunk/lib/Test/Chimps/Smoker.pm	(original)
+++ Test-Chimps-Client/trunk/lib/Test/Chimps/Smoker.pm	Wed Sep  3 16:51:06 2008
@@ -9,7 +9,7 @@
 use File::Temp qw/tempdir/;
 use Params::Validate qw/:all/;
 use Test::Chimps::Client;
-use Test::TAP::Model::Visual;
+use TAP::Harness::Archive;
 use YAML::Syck;
 
 use DBI;
@@ -145,22 +145,23 @@
   $info_out =~ m/^Last Changed Author: (\w+)/m;
   my $committer = $1;
 
-  $config->{$project}->{revision} = $revision;
-
   $self->_checkout_project($config->{$project}, $revision);
 
-  my $model;
   print "running tests for $project\n";
   my $test_glob = $config->{$project}->{test_glob} || 't/*.t t/*/t/*.t';
-  eval {
-    $model = Test::TAP::Model::Visual->new_with_tests(glob($test_glob));
-  };
-
-  if ($@) {
-    print "Tests aborted: $@\n";
-  }
-
-  my $duration = $model->structure->{end_time} - $model->structure->{start_time};
+  my $tmpfile = File::Temp->new( SUFFIX => ".tar.gz" );
+  my $harness = TAP::Harness::Archive->new( {
+      archive          => $tmpfile,
+      extra_properties => {
+          project   => $project,
+          revision  => $revision,
+          committer => $committer,
+          osname    => $Config{osname},
+          osvers    => $Config{osvers},
+          archname  => $Config{archname},
+      }
+  } );
+  $harness->runtests(glob($test_glob));
 
   $self->_unroll_env_stack;
 
@@ -180,16 +181,7 @@
   $self->_clean_dbs;
 
   my $client = Test::Chimps::Client->new(
-    model            => $model,
-    report_variables => {
-      project   => $project,
-      revision  => $revision,
-      committer => $committer,
-      duration  => $duration,
-      osname    => $Config{osname},
-      osvers    => $Config{osvers},
-      archname  => $Config{archname}
-    },
+    archive => $tmpfile,
     server => $self->server
   );
 
@@ -203,7 +195,9 @@
 
   if ($status) {
     print "Sumbitted smoke report for $project revision $revision\n";
-    DumpFile($self->config_file, $config);
+    $self->_config(LoadFile($self->config_file));
+    $self->_config->{$project}->{revision} = $revision;
+    DumpFile($self->config_file, $self->_config);
     return 1;
   } else {
     print "Error: the server responded: $msg\n";



More information about the Bps-public-commit mailing list