Ukigumo-Server [master](0767294297) SUCCESS
Compare: https://github.com/ukigumo/Ukigumo-Server/compare/bf3efbab1225...076729429729
Elapsed Time: 22 sec
_ 2015-01-23T21:06:45 [INFO] [master] ukigumo-client 0.36 _ 2015-01-23T21:06:45 [INFO] [master] start testing : https://github.com/ukigumo/Ukigumo-Server master _ 2015-01-23T21:06:45 [INFO] [master] working directory : /tmp/Ukigumo-Server/master _ 2015-01-23T21:06:45 [INFO] [master] run vc : Ukigumo::Client::VC::Git _ 2015-01-23T21:06:45 [INFO] [master] workdir is /tmp/Ukigumo-Server/master _ 2015-01-23T21:06:45 [INFO] [master] command: git clone --branch master https://github.com/ukigumo/Ukigumo-Server ./ _ Cloning into '.'... _ 2015-01-23T21:06:49 [INFO] [master] command: git pull -f origin master _ From https://github.com/ukigumo/Ukigumo-Server _ * branch master -> FETCH_HEAD _ Already up-to-date. _ 2015-01-23T21:06:50 [INFO] [master] command: git submodule init _ 2015-01-23T21:06:50 [INFO] [master] command: git submodule update _ 2015-01-23T21:06:50 [INFO] [master] command: git clean -dxf _ 2015-01-23T21:06:50 [INFO] [master] command: git status _ # On branch master _ nothing to commit, working directory clean _ 2015-01-23T21:06:50 [INFO] [master] [before_install] cpanm -L $HOME/.ukigumo/ukigumo-server/extlib --installdeps --with-develop -n . _ 2015-01-23T21:06:54 [INFO] [master] [install] ln -s $HOME/.ukigumo/ukigumo-server/extlib ./extlib _ 2015-01-23T21:06:54 [INFO] [master] run executor : Ukigumo::Client::Executor::Command _ 2015-01-23T21:06:54 [INFO] [master] command: prove -lrv -Iextlib/lib/perl5 t _ _ [21:06:55] ==> t/00_compile.t <====== _ _ o use Ukigumo::Server; _ o use Ukigumo::Server::Web; _ o use Ukigumo::Server::Web::Dispatcher; _ o use Ukigumo::Server::Command::Docs; _ _ ok _ ok 1012 ms _ _ [21:06:56] ==> t/01_root.t <========= _ _ o L15: is $res->code, 200; _ _ ok _ ok 726 ms _ _ [21:06:56] ==> t/02_mech.t <========= _ _ o GET / _ _ ok _ ok 509 ms _ _ [21:06:57] ==> t/03-branch.t <======= _ _ exist _ o L25: is($res->code, 200); _ not found _ o L30: is($res->code, 404); _ _ ok _ ok 492 ms _ _ [21:06:57] ==> t/03-compression.t <== _ _ compress large data _ o L27: isnt $row->{body}, 'body' x 100; _ o L28: isnt $row->{vc_log}, 'vc_log' x 100; _ o L31: is $report->{body}, 'body' x 100; _ o L32: is $report->{vc_log}, 'vc_log' x 100; _ o L33: ok utf8::is_utf8($report->{body}); _ o L34: ok utf8::is_utf8($report->{vc_log}); _ not compress small data _ "\x{3042}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L49: is $row->{body}, 'body \x{3042}\x{3044}\x{3084}\x{30fc}'; _ "\x{305d}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L50: is $row->{vc_log}, 'vc_log \x{305d}\x{3044}\x{3084}\x{30fc}'; _ "\x{3042}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L53: is $report->{body}, 'body \x{3042}\x{3044}\x{3084}\x{30fc}'; _ "\x{305d}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L54: is $report->{vc_log}, 'vc_log \x{305d}\x{3044}\x{3084}\x{30fc}'; _ o L55: ok utf8::is_utf8($report->{body}); _ o L56: ok utf8::is_utf8($report->{vc_log}); _ enable_compression option is false _ o L71: is $row->{body}, 'body' x 100; _ o L72: is $row->{vc_log}, 'vc_log' x 100; _ o L75: is $report->{body}, 'body' x 100; _ o L76: is $report->{vc_log}, 'vc_log' x 100; _ o L77: ok utf8::is_utf8($report->{body}); _ o L78: ok utf8::is_utf8($report->{vc_log}); _ multibytes _ "\x{3042}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L93: isnt $row->{body}, '\x{3042}\x{3044}\x{3084}\x{30fc}' x 100; _ "\x{305d}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L94: isnt $row->{vc_log}, '\x{305d}\x{3044}\x{3084}\x{30fc}' x 100; _ "\x{3042}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L97: is $report->{body}, '\x{3042}\x{3044}\x{3084}\x{30fc}' x 100; _ "\x{305d}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{30fc}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L98: is $report->{vc_log}, '\x{305d}\x{3044}\x{3084}\x{30fc}' x 100; _ o L99: ok utf8::is_utf8($report->{body}); _ o L100: ok utf8::is_utf8($report->{vc_log}); _ with no warnings of Encode.pm _ o L119: ok !$warned; _ _ ok _ ok 382 ms _ _ [21:06:58] ==> t/04-report.t <======= _ _ raw _ exist _ o L27: is($res->code, 200); _ not found _ o L32: is($res->code, 404); _ compressed _ exist _ o L50: is($res->code, 200); _ not found _ o L55: is($res->code, 404); _ _ ok _ ok 454 ms _ _ [21:06:58] ==> t/05-api-post.t <===== _ _ no body _ o L33: ok($res->is_success) or die $res->status_line; _ on body _ o L49: ok($res->is_success) or die $res->status_line; _ o L52: is($c->dbh->selectrow_array(q{SELECT COUNT(*) FROM report WHERE body="OKXXX"}), 1); _ _ ok _ ok 374 ms _ _ [21:06:59] ==> t/06-api-search.t <=== _ _ zero report _ o L27: ok($res->is_success) or die $res->status_line; _ o L29: is_deeply($dat, { reports => [] }) or diag(Dumper $dat); _ one report _ o L44: ok($res->is_success) or die $res->status_line; _ o L46: is(ref $dat->{reports}, 'ARRAY') or BAIL_OUT; _ o L47: is(0+@{$dat->{reports}}, 1) or BAIL_OUT; _ o L48: is(join(',', sort keys(%{$dat->{reports}->[0]})), 'ctime,report_id,status') or BAIL_OUT; _ o L49: like($dat->{reports}->[0]->{ctime}, qr/^[0-9]+$/) or BAIL_OUT; _ _ ok _ ok 376 ms _ _ [21:06:59] ==> t/07-mysqld.t <======= _ _ o L33: is($branch_num, 1); _ o L35: is($report_num, 1); _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L40: is($dat->{body}, '\x{3044}\x{3084}\x{3044}\x{3084}'); _ o L42: ok($branch_id); _ o L49: is($branch_num, 0); _ o report was deleted _ _ ok _ ok 6629 ms _ _ [21:07:06] ==> t/Command/Report.t <== _ _ remove old report _ o deleted by max_num_of_reports_by_branch _ o L31: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[1]); _ o L32: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[2]); _ o L33: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[3]); _ o deleted by max_num_of_reports_by_branch _ o L46: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_2->[1]); _ o L47: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_2->[2]); _ o L48: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_2->[3]); _ o deleted by max_num_of_reports _ o L51: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[2]); _ o L52: ok +Ukigumo::Server::Command::Report->find(report_id => $reports_1->[3]); _ remove the branch when it has no reports _ o L85: ok !Ukigumo::Server::Command::Report->find(report_id => $reports[0]); _ o L86: ok +Ukigumo::Server::Command::Report->find(report_id => $reports[1]); _ o L87: ok +Ukigumo::Server::Command::Report->find(report_id => $reports[2]); _ o L89: ok !Ukigumo::Server::Command::Branch->find( _ o L94: ok +Ukigumo::Server::Command::Branch->find( _ _ ok _ ok 381 ms _ _ [21:07:06] ==> t/Util.t <============ _ _ o L18: like(Ukigumo::Server::Util::make_line_link($code), qr{$re}); _ _ ok _ ok 74 ms _ _ [21:07:06] ==> t/api-post.t <======== _ _ add report _ basic _ o L31: is $res->code, 200; _ # {"report":{"url":"http://localhost/report/1","report_id":1,"last_status":null}} _ o L35: like $report_id, qr{^[0-9]+$}; _ o L36: like $dat->{report}->{url}, qr{^http://}; _ o L37: is $dat->{report}->{last_status}, undef; _ o L40: is $got->body, '....'; _ get ok _ o http://localhost/report/1 _ not found _ o http://localhost/report/9999999999 _ got last status successfully _ o L65: is $res->code, 200; _ # {"report":{"url":"http://localhost/report/2","report_id":2,"last_status":1}} _ o L68: is $dat->{report}->{last_status}, 1; _ with uploaded body _ o L87: is $res->code, 200; _ # {"report":{"url":"http://localhost/report/3","report_id":3,"last_status":2}} _ o L96: is $got->body, $expected_body; _ validation error _ o L108: is $res->code, 400; _ # {"error":{"message":"Missing parameter: 'project'"}} _ o L111: like $dat->{error}->{message}, qr{Missing parameter: 'project'}; _ api list _ o L119: is $res->code, 200; _ # {"reports":[{"ctime":1422014827,"status":1,"report_id":3},{"ctime":1422014826,"status":2,"report_id":2},{"ctime":1422014826,"status":1,"report_id":1}]} _ o L123: is_deeply $dat, _ api branch list _ o L146: is $res->code, 200; _ # {"branches":[{"ctime":1422014827,"elapsed_time_sec":null,"revision":"3","project":"TestingProject","status":1,"branch":"master","report_id":3}]} _ o L149: is ref($dat->{branches}), 'ARRAY'; _ o L150: is 0+@{$dat->{branches}}, 1; _ o L151: is $dat->{branches}->[0]->{branch}, 'master'; _ api branch delete _ o L158: is $res->code, 200; _ # {} _ o L161: is_deeply $dat, +{ }; _ api branch list _ o L168: is $res->code, 200; _ # {"branches":[]} _ o L171: is ref($dat->{branches}), 'ARRAY'; _ o removed _ _ ok _ ok 512 ms _ _ [21:07:07] ==> t/docs.t <============ _ _ o L11: like $html, qr{<h1>}; _ o 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->new(); _ # my $res = $ua->post( _ # "$UKIGUMO_SERVER/api/v1/report/add", _ # [ _ # status => $failed ? 2 : 1, # status code: SUCCESS:1, FAIL:2, N/A:3 _ # project => 'MyProj', # project name _ # branch => $branch, # branch name _ # revision => $revision, _ # repo => $repository, _ # ] _ # ); _ # $res->is_success or die $res->as_string; _ # _ # # and you can send a report to the developers. _ # # by ikachan, im.kayac.com, mail, etc. _ # </code></pre> _ _ ok _ ok 151 ms _ _ [21:07:07] ==> 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 _ _ [21:07:07] ==> t/rss.t <============= _ _ o L15: is $res->code, 200; _ o RSS _ _ ok _ ok 365 ms _ _ [21:07:07] ==> t/sqlite.t <========== _ _ o L22: is($branch_num, 1); _ o L24: is($report_num, 1); _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3044}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ "\x{3084}" does not map to ascii at /home/moznion/.plenv/versions/5.16.3/lib/perl5/5.16.3/Test/Builder.pm line 1759. _ o L29: is($dat->{body}, '\x{3044}\x{3084}\x{3044}\x{3084}'); _ o L31: ok($branch_id); _ o L38: is($branch_num, 0); _ o report was deleted _ _ ok _ ok 324 ms _ [21:07:07] _ All tests successful. _ Files=16, Tests=15, 13 wallclock secs ( 0.13 usr 0.04 sys + 4.44 cusr 0.85 csys = 5.46 CPU) _ Result: PASS _ 2015-01-23T21:07:07 [INFO] [master] finished testing : 1 _ 2015-01-23T21:07:07 [INFO] [master] sending result to server at http://127.0.0.1:15000 (status: 1)