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