Ukigumo-Server [master](8b413eefb1) SUCCESS

Compare: https://github.com/ukigumo/Ukigumo-Server/compare/f72042709391...8b413eefb105

Elapsed Time: 19 sec

  • 8b413ee moznion: Add test for api to add report with file uploading

_ [2014-04-29 15:52] [master] ukigumo-client 0.30
_ [2014-04-29 15:52] [master] start testing : https://github.com/ukigumo/Ukigumo-Server master
_ [2014-04-29 15:52] [master] working directory : /tmp/Ukigumo-Server/master
_ [2014-04-29 15:52] [master] run vc : Ukigumo::Client::VC::Git
_ [2014-04-29 15:52] [master] workdir is /tmp/Ukigumo-Server/master
_ [2014-04-29 15:52] [master] command: git pull -f origin master
_ From https://github.com/ukigumo/Ukigumo-Server
_  * branch            master     -> FETCH_HEAD
_    f720427..8b413ee  master     -> origin/master
_ Updating f720427..8b413ee
_ Fast-forward
_  t/api-post.t           | 158 +++++++++++++++++++++++++++++++------------------
_  t/resources/report.log |   1 +
_  2 files changed, 103 insertions(+), 56 deletions(-)
_  create mode 100644 t/resources/report.log
_ [2014-04-29 15:52] [master] command: git submodule init
_ [2014-04-29 15:52] [master] command: git submodule update
_ [2014-04-29 15:52] [master] command: git clean -dxf
_ Removing extlib
_ [2014-04-29 15:52] [master] command: git status
_ # On branch master
_ nothing to commit, working directory clean
_ [2014-04-29 15:52] [master] [before_install] cpanm -L $HOME/.ukigumo/ukigumo-server/extlib --installdeps --with-develop -n .
_ [2014-04-29 15:52] [master] [install] ln -s $HOME/.ukigumo/ukigumo-server/extlib ./extlib
_ [2014-04-29 15:52] [master] run executor : Ukigumo::Client::Executor::Command
_ [2014-04-29 15:52] [master] command: prove -lrv -Iextlib/lib/perl5 t
_ 
_ [15:52:09] ==> t/00_compile.t <======
_ 
_   use Ukigumo::Server;
_   use Ukigumo::Server::Web;
_   use Ukigumo::Server::Web::Dispatcher;
_   use Ukigumo::Server::Command::Docs;
_ 
_ ok
_ ok     1448 ms
_ 
_ [15:52:11] ==> t/01_root.t <=========
_ 
_     L15: is $res->code, 200;
_ 
_ ok
_ ok      716 ms
_ 
_ [15:52:12] ==> t/02_mech.t <=========
_ 
_   GET /
_ 
_ ok
_ ok      425 ms
_ 
_ [15:52:12] ==> t/03-branch.t <=======
_ 
_   exist
_         L25: is($res->code, 200);
_   not found
_         L30: is($res->code, 404);
_ 
_ ok
_ ok      481 ms
_ 
_ [15:52:13] ==> 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      348 ms
_ 
_ [15:52:13] ==> 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      402 ms
_ 
_ [15:52:13] ==> 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      402 ms
_ 
_ [15:52:14] ==> 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      361 ms
_ 
_ [15:52:14] ==> 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     6693 ms
_ 
_ [15:52:21] ==> 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      455 ms
_ 
_ [15:52:21] ==> t/Util.t <============
_ 
_     L18: like(Ukigumo::Server::Util::make_line_link($code), qr{$re});
_ 
_ ok
_ ok       73 ms
_ 
_ [15:52:21] ==> 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":1398754342,"status":1,"report_id":3},{"ctime":1398754342,"status":2,"report_id":2},{"ctime":1398754342,"status":1,"report_id":1}]}
_         L123: is_deeply $dat,
_   api branch list
_         L146: is $res->code, 200;
_     # {"branches":[{"ctime":1398754342,"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      499 ms
_ 
_ [15:52:22] ==> 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      177 ms
_ 
_ [15:52:22] ==> 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
_ 
_ [15:52:22] ==> t/rss.t <=============
_ 
_     L15: is $res->code, 200;
_   RSS
_ 
_ ok
_ ok      334 ms
_ 
_ [15:52:22] ==> 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      317 ms
_ [15:52:23]
_ All tests successful.
_ Files=16, Tests=15, 14 wallclock secs ( 0.10 usr  0.03 sys +  4.08 cusr  0.77 csys =  4.98 CPU)
_ Result: PASS
_ [2014-04-29 15:52] [master] finished testing : 1