Ukigumo-Server [master](47ad16a069) SUCCESS

Compare: https://github.com/ukigumo/Ukigumo-Server/compare/75e64837829e...47ad16a069fb

Elapsed Time: 16 sec

  • 47ad16a moznion: Fix deps

_ [2014-05-02 12:58] [master] ukigumo-client 0.30
_ [2014-05-02 12:58] [master] start testing : https://github.com/ukigumo/Ukigumo-Server master
_ [2014-05-02 12:58] [master] working directory : /tmp/Ukigumo-Server/master
_ [2014-05-02 12:58] [master] run vc : Ukigumo::Client::VC::Git
_ [2014-05-02 12:58] [master] workdir is /tmp/Ukigumo-Server/master
_ [2014-05-02 12:58] [master] command: git pull -f origin master
_ From https://github.com/ukigumo/Ukigumo-Server
_  * branch            master     -> FETCH_HEAD
_    75e6483..47ad16a  master     -> origin/master
_ Updating 75e6483..47ad16a
_ Fast-forward
_  cpanfile | 4 +++-
_  1 file changed, 3 insertions(+), 1 deletion(-)
_ [2014-05-02 12:58] [master] command: git submodule init
_ [2014-05-02 12:58] [master] command: git submodule update
_ [2014-05-02 12:58] [master] command: git clean -dxf
_ Removing extlib
_ [2014-05-02 12:58] [master] command: git status
_ # On branch master
_ nothing to commit, working directory clean
_ [2014-05-02 12:58] [master] [before_install] cpanm -L $HOME/.ukigumo/ukigumo-server/extlib --installdeps --with-develop -n .
_ [2014-05-02 12:58] [master] [install] ln -s $HOME/.ukigumo/ukigumo-server/extlib ./extlib
_ [2014-05-02 12:58] [master] run executor : Ukigumo::Client::Executor::Command
_ [2014-05-02 12:58] [master] command: prove -lrv -Iextlib/lib/perl5 t
_ 
_ [12:58:58] ==> t/00_compile.t <======
_ 
_ ✓  use Ukigumo::Server;
_ ✓  use Ukigumo::Server::Web;
_ ✓  use Ukigumo::Server::Web::Dispatcher;
_ ✓  use Ukigumo::Server::Command::Docs;
_ 
_ ok
_ ok      993 ms
_ 
_ [12:58:59] ==> t/01_root.t <=========
_ 
_ ✓    L15: is $res->code, 200;
_ 
_ ok
_ ok      787 ms
_ 
_ [12:59:00] ==> t/02_mech.t <=========
_ 
_ ✓  GET /
_ 
_ ok
_ ok      461 ms
_ 
_ [12:59:01] ==> t/03-branch.t <=======
_ 
_   exist
_     ✓    L25: is($res->code, 200);
_   not found
_     ✓    L30: is($res->code, 404);
_ 
_ ok
_ ok      450 ms
_ 
_ [12:59:01] ==> t/03-compression.t <==
_ 
_   compress large data
_     ✓    L27: isnt $row->{body}, 'body' x 100;
_     ✓    L28: isnt $row->{vc_log}, 'vc_log' x 100;
_     ✓    L31: is $report->{body}, 'body' x 100;
_     ✓    L32: is $report->{vc_log}, 'vc_log' x 100;
_     ✓    L33: ok utf8::is_utf8($report->{body});
_     ✓    L34: ok utf8::is_utf8($report->{vc_log});
_   not compress small data
_     ✓    L49: is $row->{body}, 'body あいやー';
_     ✓    L50: is $row->{vc_log}, 'vc_log そいやー';
_     ✓    L53: is $report->{body}, 'body あいやー';
_     ✓    L54: is $report->{vc_log}, 'vc_log そいやー';
_     ✓    L55: ok utf8::is_utf8($report->{body});
_     ✓    L56: ok utf8::is_utf8($report->{vc_log});
_   enable_compression option is false
_     ✓    L71: is $row->{body}, 'body' x 100;
_     ✓    L72: is $row->{vc_log}, 'vc_log' x 100;
_     ✓    L75: is $report->{body}, 'body' x 100;
_     ✓    L76: is $report->{vc_log}, 'vc_log' x 100;
_     ✓    L77: ok utf8::is_utf8($report->{body});
_     ✓    L78: ok utf8::is_utf8($report->{vc_log});
_   multibytes
_     ✓    L93: isnt $row->{body}, 'あいやー' x 100;
_     ✓    L94: isnt $row->{vc_log}, 'そいやー' x 100;
_     ✓    L97: is $report->{body}, 'あいやー' x 100;
_     ✓    L98: is $report->{vc_log}, 'そいやー' x 100;
_     ✓    L99: ok utf8::is_utf8($report->{body});
_     ✓    L100: ok utf8::is_utf8($report->{vc_log});
_   with no warnings of Encode.pm
_     ✓    L119: ok !$warned;
_ 
_ ok
_ ok      351 ms
_ 
_ [12:59:01] ==> t/04-report.t <=======
_ 
_   raw
_       exist
_         ✓    L27: is($res->code, 200);
_       not found
_         ✓    L32: is($res->code, 404);
_   compressed
_       exist
_         ✓    L50: is($res->code, 200);
_       not found
_         ✓    L55: is($res->code, 404);
_ 
_ ok
_ ok      401 ms
_ 
_ [12:59:02] ==> t/05-api-post.t <=====
_ 
_   no body
_     ✓    L33: ok($res->is_success) or die $res->status_line;
_   on body
_     ✓    L49: ok($res->is_success) or die $res->status_line;
_ ✓    L52: is($c->dbh->selectrow_array(q{SELECT COUNT(*) FROM report WHERE body="OKXXX"}), 1);
_ 
_ ok
_ ok      379 ms
_ 
_ [12:59:02] ==> t/06-api-search.t <===
_ 
_   zero report
_     ✓    L27: ok($res->is_success) or die $res->status_line;
_     ✓    L29: is_deeply($dat, { reports => [] }) or diag(Dumper $dat);
_   one report
_     ✓    L44: ok($res->is_success) or die $res->status_line;
_     ✓    L46: is(ref $dat->{reports}, 'ARRAY') or BAIL_OUT;
_     ✓    L47: is(0+@{$dat->{reports}}, 1) or BAIL_OUT;
_     ✓    L48: is(join(',', sort keys(%{$dat->{reports}->[0]})), 'ctime,report_id,status') or BAIL_OUT;
_     ✓    L49: like($dat->{reports}->[0]->{ctime}, qr/^[0-9]+$/) or BAIL_OUT;
_ 
_ ok
_ ok      349 ms
_ 
_ [12:59:03] ==> t/07-mysqld.t <=======
_ 
_ ✓    L33: is($branch_num, 1);
_ ✓    L35: is($report_num, 1);
_ ✓    L40: is($dat->{body}, 'いやいや');
_ ✓    L42: ok($branch_id);
_ ✓    L49: is($branch_num, 0);
_ ✓  report was deleted
_ 
_ ok
_ ok     6435 ms
_ 
_ [12:59:09] ==> t/Command/Report.t <==
_ 
_   remove old report
_     ✓  deleted by max_num_of_reports_by_branch
_     ✓    L31: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[1]);
_     ✓    L32: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[2]);
_     ✓    L33: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[3]);
_     ✓  deleted by max_num_of_reports_by_branch
_     ✓    L46: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_2->[1]);
_     ✓    L47: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_2->[2]);
_     ✓    L48: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_2->[3]);
_     ✓  deleted by max_num_of_reports
_     ✓    L51: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[2]);
_     ✓    L52: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[3]);
_ 
_ ok
_ ok      368 ms
_ 
_ [12:59:09] ==> t/Util.t <============
_ 
_ ✓    L18: like(Ukigumo::Server::Util::make_line_link($code), qr{$re});
_ 
_ ok
_ ok       73 ms
_ 
_ [12:59:10] ==> t/api-post.t <========
_ 
_   add report
_       basic
_         ✓    L31: is $res->code, 200;
_         # {"report":{"url":"http://localhost/report/1","report_id":1,"last_status":null}}
_         ✓    L35: like $report_id, qr{^[0-9]+$};
_         ✓    L36: like $dat->{report}->{url}, qr{^http://};
_         ✓    L37: is $dat->{report}->{last_status}, undef;
_         ✓    L40: is $got->body, '....';
_           get ok
_             ✓  http://localhost/report/1
_           not found
_             ✓  http://localhost/report/9999999999
_           got last status successfully
_             ✓    L65: is $res->code, 200;
_             # {"report":{"url":"http://localhost/report/2","report_id":2,"last_status":1}}
_             ✓    L68: is $dat->{report}->{last_status}, 1;
_       with uploaded body
_         ✓    L87: is $res->code, 200;
_         # {"report":{"url":"http://localhost/report/3","report_id":3,"last_status":2}}
_         ✓    L96: is $got->body, $expected_body;
_       validation error
_         ✓    L108: is $res->code, 400;
_         # {"error":{"message":"Missing parameter: 'project'"}}
_         ✓    L111: like $dat->{error}->{message}, qr{Missing parameter: 'project'};
_   api list
_     ✓    L119: is $res->code, 200;
_     # {"reports":[{"ctime":1399003150,"status":1,"report_id":3},{"ctime":1399003150,"status":2,"report_id":2},{"ctime":1399003150,"status":1,"report_id":1}]}
_     ✓    L123: is_deeply $dat,
_   api branch list
_     ✓    L146: is $res->code, 200;
_     # {"branches":[{"ctime":1399003150,"elapsed_time_sec":null,"revision":"3","project":"TestingProject","status":1,"branch":"master","report_id":3}]}
_     ✓    L149: is ref($dat->{branches}), 'ARRAY';
_     ✓    L150: is 0+@{$dat->{branches}}, 1;
_     ✓    L151: is $dat->{branches}->[0]->{branch}, 'master';
_   api branch delete
_     ✓    L158: is $res->code, 200;
_     # {}
_     ✓    L161: is_deeply $dat, +{ };
_   api branch list
_     ✓    L168: is $res->code, 200;
_     # {"branches":[]}
_     ✓    L171: is ref($dat->{branches}), 'ARRAY';
_     ✓  removed
_ 
_ ok
_ ok      511 ms
_ 
_ [12:59:10] ==> t/docs.t <============
_ 
_ ✓    L11: like $html, qr{<h1>};
_ ✓    L12: like $html, qr{<pre class="prettyprint">};
_ # <h1>About Ukigumo server</h1>
_ # 
_ # <p>Ukigumo server is a yet another minimalistic "Continious testing server".</p>
_ # 
_ # <p>Ukigumo server is a:</p>
_ # 
_ # <ul>
_ # <li>storage of the continious testing result</li>
_ # <li>provides JSON APIs</li>
_ # <li>beautifule views</li>
_ # <li>simply setup</li>
_ # <li>supports dotcloud</li>
_ # </ul>
_ # 
_ # <p>Ukigumo server is <em>not</em> a:</p>
_ # 
_ # <ul>
_ # <li>test runner</li>
_ # <li>beautiful views</li>
_ # </ul>
_ # 
_ # <p>You can send a test results to Ukigumo server. Ukigumo server stores the result, and display it.
_ # (Ukigumo server find_or_create's 'project', 'branch' automatically.)</p>
_ # 
_ # <h2>Client code</h2>
_ # 
_ # <p>This is a example code of Ukigumo client code. You can run the code by cron(1). The client code have few deps. very easy.</p>
_ # 
_ # <p>You can add a notification on the bottom of client code. I notify to Ikachan server on working.</p>
_ # 
_ # <pre class="prettyprint"><code>#!/usr/bin/perl
_ # use strict;
_ # use warnings;
_ # use utf8;
_ # use Capture::Tiny qw(tee_merged);
_ # use LWP::UserAgent;
_ # 
_ # my $UKIGUMO_SERVER = 'http://localhost:9052';
_ # 
_ # my $failed = 0;
_ # sub run {
_ #     system(@_)==0 or die "FAIL: @_";
_ # }
_ # 
_ # my $body = tee_merged {
_ #     eval {
_ #         run("git pull");
_ #         run("git status");
_ #         run("perl Makefile.PL");
_ #         run("make test");
_ #     };
_ #     if ($@) {
_ #         $failed++;
_ #         warn $@;
_ #     }
_ # };
_ # 
_ # my $revision = substr( `git rev-parse HEAD`, 0, 10 ) || 'Unknown';
_ # my $branch   = `git branch|grep '^*'`;
_ #    $branch =~ s/^\* //;
_ #    $branch =~ s/\s*$//;
_ # my $repository = `git remote -v | head -1| awk '{print \$2}'`;
_ #    $repository =~ s/\n//;
_ # 
_ # print "'$revision', '$repository', '$branch'\n";
_ # 
_ # my $ua = LWP::UserAgent-&gt;new();
_ # my $res = $ua-&gt;post(
_ #     "$UKIGUMO_SERVER/api/v1/report/add",
_ #     [
_ #         status   =&gt; $failed ? 2 : 1,             # status code: SUCCESS:1, FAIL:2, N/A:3
_ #         project  =&gt; 'MyProj',      # project name
_ #         branch   =&gt; $branch,       # branch name
_ #         revision =&gt; $revision,
_ #         repo     =&gt; $repository,
_ #     ]
_ # );
_ # $res-&gt;is_success or die $res-&gt;as_string;
_ # 
_ # # and you can send a report to the developers.
_ # #  by ikachan, im.kayac.com, mail, etc.
_ # </code></pre>
_ 
_ ok
_ ok      201 ms
_ 
_ [12:59:10] ==> t/jshint.t <==========
_ 
_ 1..0 # SKIP Test requires module 'Text::SimpleTable' but it's not found
_ skipped: Test requires module 'Text::SimpleTable' but it's not found
_ 
_ [12:59:10] ==> t/rss.t <=============
_ 
_ ✓    L15: is $res->code, 200;
_ ✓  RSS
_ 
_ ok
_ ok      343 ms
_ 
_ [12:59:11] ==> t/sqlite.t <==========
_ 
_ ✓    L22: is($branch_num, 1);
_ ✓    L24: is($report_num, 1);
_ ✓    L29: is($dat->{body}, 'いやいや');
_ ✓    L31: ok($branch_id);
_ ✓    L38: is($branch_num, 0);
_ ✓  report was deleted
_ 
_ ok
_ ok      312 ms
_ [12:59:11]
_ All tests successful.
_ Files=16, Tests=15, 13 wallclock secs ( 0.11 usr  0.03 sys +  4.18 cusr  0.71 csys =  5.03 CPU)
_ Result: PASS
_ [2014-05-02 12:59] [master] finished testing : 1