PATH=/usr/bin:/bin:/Users/fly2200/cpanfly-5.22/var/megalib/bin
Start 2017-01-25T00:48:48
ActivePerl-2200 CPAN-2.10
Reading '/Users/fly2200/cpanfly-5.22/var/cpan/Metadata'
Database was generated on Tue, 24 Jan 2017 05:29:02 GMT
Checksum for /Users/fly2200/cpanfly-5.22/var/cpan/sources/authors/id/T/TI/TIMB/WebAPI-DBIC-0.004002.tar.gz ok
WebAPI-DBIC-0.004002
WebAPI-DBIC-0.004002/README
WebAPI-DBIC-0.004002/Changes
WebAPI-DBIC-0.004002/LICENSE
WebAPI-DBIC-0.004002/cpanfile
WebAPI-DBIC-0.004002/dist.ini
WebAPI-DBIC-0.004002/META.yml
WebAPI-DBIC-0.004002/MANIFEST
WebAPI-DBIC-0.004002/NOTES.pod
WebAPI-DBIC-0.004002/plackonce
WebAPI-DBIC-0.004002/README.md
WebAPI-DBIC-0.004002/META.json
WebAPI-DBIC-0.004002/testonereq
WebAPI-DBIC-0.004002/Makefile.PL
WebAPI-DBIC-0.004002/CONTRIBUTING
WebAPI-DBIC-0.004002/MANIFEST.SKIP
WebAPI-DBIC-0.004002/t
WebAPI-DBIC-0.004002/t/00-compile.t
WebAPI-DBIC-0.004002/t/90-root-req.t
WebAPI-DBIC-0.004002/t/etc
WebAPI-DBIC-0.004002/t/etc/schema.pl
WebAPI-DBIC-0.004002/t/lib
WebAPI-DBIC-0.004002/t/lib/TestDS.pm
WebAPI-DBIC-0.004002/t/lib/TestKit.pm
WebAPI-DBIC-0.004002/t/10-basics-req.t
WebAPI-DBIC-0.004002/t/11-paging-req.t
WebAPI-DBIC-0.004002/t/13-fields-req.t
WebAPI-DBIC-0.004002/t/50-modify-req.t
WebAPI-DBIC-0.004002/t/60-invoke-req.t
WebAPI-DBIC-0.004002/t/90-root-req.exp
WebAPI-DBIC-0.004002/lib/WebAPI
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC.pm
WebAPI-DBIC-0.004002/t/53-put_rel-req.t
WebAPI-DBIC-0.004002/run-chinook-demo.sh
WebAPI-DBIC-0.004002/t/10-basics-req.exp
WebAPI-DBIC-0.004002/t/11-paging-req.exp
WebAPI-DBIC-0.004002/t/14-distinct-req.t
WebAPI-DBIC-0.004002/t/30-ordering-req.t
WebAPI-DBIC-0.004002/t/60-invoke-req.exp
WebAPI-DBIC-0.004002/t/lib/TestDS_HAL.pm
WebAPI-DBIC-0.004002/t/lib/TestSchema.pm
WebAPI-DBIC-0.004002/t/lib/TestWebApp.pm
WebAPI-DBIC-0.004002/data_service_api.pod
WebAPI-DBIC-0.004002/webapi-dbic-any.psgi
WebAPI-DBIC-0.004002/t/12-searching-req.t
WebAPI-DBIC-0.004002/t/53-put_rel-req.exp
WebAPI-DBIC-0.004002/webapi-dbic-demo.psgi
WebAPI-DBIC-0.004002/t/30-ordering-req.exp
WebAPI-DBIC-0.004002/run-testschema-demo.sh
WebAPI-DBIC-0.004002/t/12-searching-req.exp
WebAPI-DBIC-0.004002/t/release-pod-syntax.t
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Util.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Route.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Router.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/WebApp.pm
WebAPI-DBIC-0.004002/t/media-hal
WebAPI-DBIC-0.004002/t/media-hal/90-root-req.t
WebAPI-DBIC-0.004002/t/lib/DummyLoadedSchema.pm
WebAPI-DBIC-0.004002/t/media-hal/10-basics-req.t
WebAPI-DBIC-0.004002/t/media-hal/11-paging-req.t
WebAPI-DBIC-0.004002/t/media-hal/13-fields-req.t
WebAPI-DBIC-0.004002/t/media-hal/50-modify-req.t
WebAPI-DBIC-0.004002/t/media-hal/90-root-req.exp
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/TypeNamer.pm
WebAPI-DBIC-0.004002/t/media-hal/53-put_rel-req.t
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/RouteMaker.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/CD
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/CD/1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/CD/2.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/CD/3.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/CD/4.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/CD/5.fix
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/CD.pm
WebAPI-DBIC-0.004002/t/media-hal/10-basics-req.exp
WebAPI-DBIC-0.004002/t/media-hal/11-paging-req.exp
WebAPI-DBIC-0.004002/t/media-hal/14-distinct-req.t
WebAPI-DBIC-0.004002/t/media-hal/30-ordering-req.t
WebAPI-DBIC-0.004002/t/media-hal/40-prefetch-req.t
WebAPI-DBIC-0.004002/t/media-hal/52-post_rel-req.t
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/Gig.pm
WebAPI-DBIC-0.004002/t/media-hal/12-searching-req.t
WebAPI-DBIC-0.004002/t/media-hal/53-put_rel-req.exp
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/city
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/city/1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/city/2.fix
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/City.pm
WebAPI-DBIC-0.004002/t/media-hal/30-ordering-req.exp
WebAPI-DBIC-0.004002/t/media-hal/40-prefetch-req.exp
WebAPI-DBIC-0.004002/t/media-jsonapi
WebAPI-DBIC-0.004002/t/media-jsonapi/10-basics-req.t
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Base.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/_config_set
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/genre
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/genre/1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/genre/2.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/genre/3.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/genre/4.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/4.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/5.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/6.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/7.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/8.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/9.fix
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/Genre.pm
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/Track.pm
WebAPI-DBIC-0.004002/t/media-hal/12-searching-req.exp
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist/1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist/2.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist/3.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist/4.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist/5.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/artist/6.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/10.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/11.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/12.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/13.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/14.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/15.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/16.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/17.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/track/18.fix
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/Artist.pm
WebAPI-DBIC-0.004002/t/media-jsonapi/10-basics-req.exp
WebAPI-DBIC-0.004002/t/media-jsonapi/40-prefetch-req.t
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Role
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Role/JsonParams.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/country
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/country/1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/country/2.fix
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/Country.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Role/JsonEncoder.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/producer
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/producer/1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/producer/2.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/producer/3.fix
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/Producer.pm
WebAPI-DBIC-0.004002/t/media-jsonapi/40-prefetch-req.exp
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/Set.pm
WebAPI-DBIC-0.004002/lib/WebAPI/HTTP/Throwable
WebAPI-DBIC-0.004002/lib/WebAPI/HTTP/Throwable/Factory.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/_dumper_version
WebAPI-DBIC-0.004002/t/media-active-model
WebAPI-DBIC-0.004002/t/media-active-model/10-basics-req.t
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/DBIC.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/Item.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/Root.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/GenericSet.pm
WebAPI-DBIC-0.004002/t/media-active-model/10-basics-req.exp
WebAPI-DBIC-0.004002/t/media-active-model/40-prefetch-req.t
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/GenericCore.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/GenericItem.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/GenericRoot.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/Router.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role/Set.pm
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/ClassicAlbums.pm
WebAPI-DBIC-0.004002/t/media-active-model/40-prefetch-req.exp
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role/DBIC.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role/Item.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role/Root.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/DBICAuth.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/Identity.pm
WebAPI-DBIC-0.004002/t/lib/TestSchema/Result/CD_to_Producer.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/SetInvoke.pm
WebAPI-DBIC-0.004002/lib/WebAPI/HTTP/Throwable/Role
WebAPI-DBIC-0.004002/lib/WebAPI/HTTP/Throwable/Role/JSONBody.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/DBICParams.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/cd_to_producer
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/cd_to_producer/1-1.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/cd_to_producer/1-2.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/cd_to_producer/1-3.fix
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/GenericSetInvoke.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI/Role
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Set.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/SetWritable.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/GenericItemInvoke.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI/Role/DBIC.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Item.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/ItemWritable.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/Relationship.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/Role/DBICException.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel/Role
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Set.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role/SetWritable.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel/Role/DBIC.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Item.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/HAL/Role/ItemWritable.pm
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/gig
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/gig/1-2014-01-01T01_01_01Z.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/gig/2-2014-06-30T19_00_00Z.fix
WebAPI-DBIC-0.004002/t/etc/fixtures/basic/gig/3-2014-06-30T13_00_00Z.fix
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI/Role/SetWritable.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/JSONAPI/Role/ItemWritable.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel/Role/SetWritable.pm
WebAPI-DBIC-0.004002/lib/WebAPI/DBIC/Resource/ActiveModel/Role/ItemWritable.pm
WebAPI-DBIC-0.004002/t/lib/Test/DBIx/Class/FixtureCommand
WebAPI-DBIC-0.004002/t/lib/Test/DBIx/Class/FixtureCommand/TestFixtureCommand.pm
Configuring T/TI/TIMB/WebAPI-DBIC-0.004002.tar.gz with Makefile.PL
>>> /Users/fly2200/ap2200-299195/bin/perl-dynamic Makefile.PL
Unparsable version '>= 3.0110, != 3.0112' for prerequisite Cpanel::JSON::XS at Makefile.PL line 134.
Warning: prerequisite Plack::App::Path::Router 0.08 not found.
Warning: prerequisite Sub::Quote 0 not found.
Checking if your kit is complete...
Looks good
Have /Users/fly2200/cpanfly-5.22/var/megalib
Want /Users/fly2200/ap2200-299195/lib
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [megalib]
Config says: [darwin-thread-multi-2level]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Generating a Unix-style Makefile
Writing Makefile for WebAPI::DBIC
Writing MYMETA.yml and MYMETA.json
TIMB/WebAPI-DBIC-0.004002.tar.gz
/Users/fly2200/ap2200-299195/bin/perl-dynamic Makefile.PL -- OK
Running make for T/TI/TIMB/WebAPI-DBIC-0.004002.tar.gz
---- Unsatisfied dependencies detected during ----
---- TIMB/WebAPI-DBIC-0.004002.tar.gz ----
Sub::Quote [requires]
Plack::App::Path::Router [requires]
Running test for module 'Sub::Quote'
Checksum for /Users/fly2200/cpanfly-5.22/var/cpan/sources/authors/id/H/HA/HAARG/Sub-Quote-2.003001.tar.gz ok
Sub-Quote-2.003001/
Sub-Quote-2.003001/Changes
Sub-Quote-2.003001/lib/
Sub-Quote-2.003001/maint/
Sub-Quote-2.003001/Makefile.PL
Sub-Quote-2.003001/MANIFEST
Sub-Quote-2.003001/META.json
Sub-Quote-2.003001/META.yml
Sub-Quote-2.003001/README
Sub-Quote-2.003001/t/
Sub-Quote-2.003001/xt/
Sub-Quote-2.003001/xt/release/
Sub-Quote-2.003001/xt/release/kwalitee.t
Sub-Quote-2.003001/t/croak-locations.t
Sub-Quote-2.003001/t/lib/
Sub-Quote-2.003001/t/sub-defer-no-subname.t
Sub-Quote-2.003001/t/sub-defer-threads.t
Sub-Quote-2.003001/t/sub-defer.t
Sub-Quote-2.003001/t/sub-quote-threads.t
Sub-Quote-2.003001/t/sub-quote.t
Sub-Quote-2.003001/t/lib/ErrorLocation.pm
Sub-Quote-2.003001/t/lib/InlineModule.pm
Sub-Quote-2.003001/maint/Makefile.PL.include
Sub-Quote-2.003001/lib/Sub/
Sub-Quote-2.003001/lib/Sub/Defer.pm
Sub-Quote-2.003001/lib/Sub/Quote.pm
Configuring H/HA/HAARG/Sub-Quote-2.003001.tar.gz with Makefile.PL
>>> /Users/fly2200/ap2200-299195/bin/perl-dynamic Makefile.PL
Checking if your kit is complete...
Looks good
Have /Users/fly2200/cpanfly-5.22/var/megalib
Want /Users/fly2200/ap2200-299195/lib
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [megalib]
Config says: [darwin-thread-multi-2level]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Generating a Unix-style Makefile
Writing Makefile for Sub::Quote
Writing MYMETA.yml and MYMETA.json
HAARG/Sub-Quote-2.003001.tar.gz
/Users/fly2200/ap2200-299195/bin/perl-dynamic Makefile.PL -- OK
Running make for H/HA/HAARG/Sub-Quote-2.003001.tar.gz
>>> make
cp lib/Sub/Quote.pm blib/lib/Sub/Quote.pm
cp lib/Sub/Defer.pm blib/lib/Sub/Defer.pm
Manifying 2 pod documents
HAARG/Sub-Quote-2.003001.tar.gz
make -- OK
Running make test
>>> make test TEST_VERBOSE=1
PERL_DL_NONLAZY=1 "/Users/fly2200/ap2200-299195/bin/perl-dynamic" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
t/croak-locations.t .......
ok 1 - Sub::Defer::defer_sub - unqualified name
ok 2 - Sub::Quote::quote_sub - long package
ok 3 - Sub::Quote::unquote_sub - bad captures
ok 4 - Sub::Quote::unquote_sub - compile error
1..4
ok
t/sub-defer-no-subname.t ..
ok 1 - one defer installed
ok 2 - two defer installed
ok 3 - one defer runs
ok 4 - one made
ok 5 - two not made
ok 6 - one (deferred) still runs
ok 7 - one (undeferred) runs
ok 8 - correct error for defer_sub with unqualified name
ok 9 - make two
ok 10 - repeated undefer doesn't regenerate
ok 11 - two installed
ok 12 - two (deferred) still runs
ok 13 - two (undeferred) runs
ok 14 - undefer non-deferred is a no-op
ok 15 - four defer installed
ok 16 - around works
ok 17 - around has not been destroyed by first invocation
ok 18 - one_all not made
ok 19 - two_all not made
ok 20 - one_all made by undefer_all
ok 21 - two_all made by undefer_all
ok 22 - one made by undefer_package
ok 23 - two made by undefer_package
ok 24 - sub-package not undefered by undefer_package
ok 25 - deferred subs don't leak
ok 26 - CLONE cleans out expired entries
ok 27 - CLONE doesn't strengthen refs
ok 28 - CLONE works when quoted info saved externally
ok 29 - CLONE keeps entries that had info saved externally
ok 30 - CLONE works when quoted info kept alive externally
ok 31 - CLONE removes expired entries that were kept alive externally
ok 32 - undeferring expired sub (or reused refaddr) after undefer_package lives
ok 33 - attributes are applied to deferred subs
1..33
ok
t/sub-defer-threads.t .....
ok 1 - able to retrieve info in thread
ok 2 - able to undefer in thread
1..2
ok
t/sub-defer.t .............
ok 1 - one defer installed
ok 2 - two defer installed
ok 3 - one defer runs
ok 4 - one made
ok 5 - two not made
ok 6 - one (deferred) still runs
ok 7 - one (undeferred) runs
ok 8 - correct error for defer_sub with unqualified name
ok 9 - make two
ok 10 - repeated undefer doesn't regenerate
ok 11 - two installed
ok 12 - two (deferred) still runs
ok 13 - two (undeferred) runs
ok 14 - undefer non-deferred is a no-op
ok 15 - four defer installed
ok 16 - around works
ok 17 - around has not been destroyed by first invocation
ok 18 - one_all not made
ok 19 - two_all not made
ok 20 - one_all made by undefer_all
ok 21 - two_all made by undefer_all
ok 22 - one made by undefer_package
ok 23 - two made by undefer_package
ok 24 - sub-package not undefered by undefer_package
ok 25 - deferred subs don't leak
ok 26 - CLONE cleans out expired entries
ok 27 - CLONE doesn't strengthen refs
ok 28 - CLONE works when quoted info saved externally
ok 29 - CLONE keeps entries that had info saved externally
ok 30 - CLONE works when quoted info kept alive externally
ok 31 - CLONE removes expired entries that were kept alive externally
ok 32 - undeferring expired sub (or reused refaddr) after undefer_package lives
ok 33 - attributes are applied to deferred subs
1..33
ok
t/sub-quote-threads.t .....
ok 1 - able to retrieve quoted sub in thread
ok 2 - One (quoted version)
ok 3 - One (unquoted version)
ok 4 - Two in thread (quoted version)
ok 5 - Two in thread (unquoted version)
ok 6 - Two in thread (quoted version again)
1..6
ok
t/sub-quote.t .............
ok 1 - Nothing evaled yet
ok 2 - unquote_sub returns undef for unknown subs
ok 3 - subs one evaled
ok 4 - One (quoted version)
ok 5 - One (unquoted version)
ok 6 - Two (quoted version)
ok 7 - Two (unquoted version)
ok 8 - Two (quoted version again)
ok 9 - get ok (named method)
ok 10 - set ok (named method)
ok 11 - re-get ok (named method)
ok 12 - exception contains correct name
ok 13 - can get quoted from installed sub
ok 14 - can still get quoted from installed sub after undefer
ok 15 - bare sub name installed in current package
ok 16 - long names work if package and sub are short enough
ok 17 - over long package names error
ok 18 - over long sub names error
ok 19 - packages with spaces are invalid
ok 20 - sub names with spaces are invalid
ok 21 - package names starting with numbers are not valid
ok 22 - sub names starting with numbers are not valid
ok 23 - quoted sub with syntax error dies when called
ok 24 - package preserved from context
ok 25 - package used from options
ok 26 - hints preserved from context
ok 27 - hints used from options
ok 28 - "no warnings" preserved from context
ok 29 - "use warnings" preserved from context
ok 30 - warnings used from options
ok 31 - hints hash preserved from context
ok 32 - hints hash used from options
ok 33 - empty hints maintained when inlined
ok 34 - integer overload is working
not ok 35 # TODO & SKIP refs in hints hash not yet implemented
not ok 36 # TODO & SKIP refs in hints hash not yet implemented
not ok 37 # TODO & SKIP refs in hints hash not yet implemented
not ok 38 # TODO & SKIP refs in hints hash not yet implemented
ok 39 - closure integer overload is working
not ok 40 # TODO & SKIP refs in hints hash not yet implemented
not ok 41 # TODO & SKIP refs in hints hash not yet implemented
not ok 42 # TODO & SKIP refs in hints hash not yet implemented
not ok 43 # TODO & SKIP refs in hints hash not yet implemented
ok 44 - quoted subs don't leak
ok 45 - CLONE cleans out expired entries
ok 46 - CLONE doesn't strengthen refs
ok 47 - CLONE works when quoted info saved externally
ok 48 - CLONE keeps entries that had info saved
ok 49 - CLONE works when quoted info kept alive externally
ok 50 - CLONE removes expired entries that were kept alive externally
ok 51 - CLONE maintains entries referenced by unquoted sub
ok 52 - unquoted sub still available if quoted sub exists
ok 53 - quoted data not maintained for quoted sub deleted after being unquoted
ok 54 - unquoted sub still included in quote info
ok 55 - evaling quotify returns same value for all strings
ok 56 - evaling quotify under utf8 returns same value for all strings
ok 57 - quotify preserves 0 as number
ok 58 - quotify preserves 1 as number
ok 59 - quotify preserves 1.5 as number
ok 60 - quotify preserves 0.5 as number
ok 61 - quotify preserves -10 as number
ok 62 - qsub only accepts a single parameter
ok 63 - capture_unroll produces valid code
ok 64 - unrolled variables get correct values
ok 65 - capture_unroll rejects vars other than scalar, hash, or array
ok 66 - inlinify produces valid code
ok 67 - inlinified code get correct values
ok 68 - matching variables aren't reassigned
ok 69 - inlinify produces valid code
ok 70 - inlinified code get correct values
ok 71 - matching variables aren't reassigned
ok 72 - inlinify with unmatched params produces valid code
ok 73 - inlinified code get correct values
ok 74 - inlinify with out @_ produces valid code
ok 75 - inlinified code get correct values
ok 76 - got debug info with SUB_QUOTE_DEBUG
ok 77 - evaled immediately with no_defer option
ok 78 - evaled immediately with no_defer option (named)
ok 79 - sub installed with no_defer option
ok 80 - sub not installed with no_install option
ok 81 - sub named properly with no_install option
ok 82 - sub not installed with no_install and no_defer options
ok 83 - sub named properly with no_install and no_defer options
ok 84 - sanitize_identifier gives valid identifier
ok 85 - attributes applied to quoted sub
ok 86 - attributes applied to quoted sub with no_defer
1..86
ok
All tests successful.
Files=6, Tests=164, 1 wallclock secs ( 0.03 usr 0.01 sys + 0.23 cusr 0.04 csys = 0.31 CPU)
Result: PASS
HAARG/Sub-Quote-2.003001.tar.gz
make test TEST_VERBOSE=1 -- OK
PPD for Sub-Quote-2.003001 already made
Running test for module 'Plack::App::Path::Router'
Prepending /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/lib to PERL5LIB for 'get'
Checksum for /Users/fly2200/cpanfly-5.22/var/cpan/sources/authors/id/D/DO/DOY/Plack-App-Path-Router-0.08.tar.gz ok
Plack-App-Path-Router-0.08
Plack-App-Path-Router-0.08/README
Plack-App-Path-Router-0.08/Changes
Plack-App-Path-Router-0.08/LICENSE
Plack-App-Path-Router-0.08/dist.ini
Plack-App-Path-Router-0.08/t
Plack-App-Path-Router-0.08/t/load.t
Plack-App-Path-Router-0.08/META.yml
Plack-App-Path-Router-0.08/MANIFEST
Plack-App-Path-Router-0.08/t/basic.t
Plack-App-Path-Router-0.08/META.json
Plack-App-Path-Router-0.08/Makefile.PL
Plack-App-Path-Router-0.08/t/basic_psgi.t
Plack-App-Path-Router-0.08/t/00-compile.t
Plack-App-Path-Router-0.08/t/basic_custom.t
Plack-App-Path-Router-0.08/xt/release
Plack-App-Path-Router-0.08/xt/release/eol.t
Plack-App-Path-Router-0.08/t/custom_request.t
Plack-App-Path-Router-0.08/t/custom_response.t
Plack-App-Path-Router-0.08/t/basic_psgi_w_obj.t
Plack-App-Path-Router-0.08/xt/release/no-tabs.t
Plack-App-Path-Router-0.08/t/basic_with_urlmap.t
Plack-App-Path-Router-0.08/xt/release/pod-syntax.t
Plack-App-Path-Router-0.08/t/basic_target_objects.t
Plack-App-Path-Router-0.08/t/basic_returning_psgi.t
Plack-App-Path-Router-0.08/xt/release/pod-coverage.t
Plack-App-Path-Router-0.08/lib/Plack/App/Path
Plack-App-Path-Router-0.08/lib/Plack/App/Path/Router.pm
Plack-App-Path-Router-0.08/t/basic_returning_response.t
Plack-App-Path-Router-0.08/lib/Plack/App/Path/Router
Plack-App-Path-Router-0.08/lib/Plack/App/Path/Router/PSGI.pm
Plack-App-Path-Router-0.08/lib/Plack/App/Path/Router/Custom.pm
Prepending /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/lib to PERL5LIB for 'prepare'
Configuring D/DO/DOY/Plack-App-Path-Router-0.08.tar.gz with Makefile.PL
>>> /Users/fly2200/ap2200-299195/bin/perl-dynamic Makefile.PL
Checking if your kit is complete...
Looks good
Have /Users/fly2200/cpanfly-5.22/var/megalib
Want /Users/fly2200/ap2200-299195/lib
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [megalib]
Config says: [darwin-thread-multi-2level]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Generating a Unix-style Makefile
Writing Makefile for Plack::App::Path::Router
Writing MYMETA.yml and MYMETA.json
DOY/Plack-App-Path-Router-0.08.tar.gz
/Users/fly2200/ap2200-299195/bin/perl-dynamic Makefile.PL -- OK
Running make for D/DO/DOY/Plack-App-Path-Router-0.08.tar.gz
Prepending /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/lib to PERL5LIB for 'make'
>>> make
cp lib/Plack/App/Path/Router.pm blib/lib/Plack/App/Path/Router.pm
cp lib/Plack/App/Path/Router/PSGI.pm blib/lib/Plack/App/Path/Router/PSGI.pm
cp lib/Plack/App/Path/Router/Custom.pm blib/lib/Plack/App/Path/Router/Custom.pm
Manifying 3 pod documents
DOY/Plack-App-Path-Router-0.08.tar.gz
make -- OK
Prepending /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/lib to PERL5LIB for 'test'
Running make test
>>> make test TEST_VERBOSE=1
PERL_DL_NONLAZY=1 "/Users/fly2200/ap2200-299195/bin/perl-dynamic" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
t/00-compile.t ................
1..3
ok 1 - Plack/App/Path/Router.pm loaded ok
ok 2 - Plack/App/Path/Router/Custom.pm loaded ok
ok 3 - Plack/App/Path/Router/PSGI.pm loaded ok
ok
t/basic.t .....................
ok 1 - An object of class 'Plack::App::Path::Router' isa 'Plack::App::Path::Router'
ok 2 - An object of class 'Plack::App::Path::Router' isa 'Plack::Component'
ok 3 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 4 - ... got the right value for index
ok 5 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 6 - ... got the right value for /testing
ok 7 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 8 - ... got the right value for /testing/stuff
ok 9 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 10 - ... got the right value for /testing/edit/things
ok 11 - ... got the right value for 404
1..11
ok
t/basic_custom.t ..............
ok 1 - ... got the expected auth fail
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7 - ... got the expected auth fail
ok 8 - ... got the right value for /bar
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14 - ... got the expected auth fail
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20 - ... got the expected auth fail
ok 21 - ... got the right value for /foo
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27 - ... got the expected auth fail
ok 28 - ... got the right value for /bar/baz
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34 - ... got the expected auth fail
ok 35 - ... got the right value for /bar/0
ok 36
ok 37
ok 38
ok 39
ok 40
ok 41 - ... got the expected auth fail
ok 42
ok 43
ok 44
ok 45
ok 46
1..46
ok
t/basic_psgi.t ................
ok 1 - ... got the expected auth fail
ok 2 - ... got the expected auth fail
ok 3 - ... got the right value for /bar
ok 4 - ... got the expected auth fail
ok 5 - ... got the expected auth fail
ok 6 - ... got the right value for /foo
ok 7 - ... got the expected auth fail
ok 8 - ... got the right value for /bar/baz
ok 9 - ... got the expected auth fail
1..9
ok
t/basic_psgi_w_obj.t ..........
ok 1 - ... got the expected auth fail
ok 2 - ... got the expected auth fail
ok 3 - ... got the right value for /bar
ok 4 - ... got the expected auth fail
ok 5 - ... got the expected auth fail
ok 6 - ... got the right value for /foo
ok 7 - ... got the expected auth fail
ok 8 - ... got the right value for /bar/baz
ok 9 - ... got the expected auth fail
1..9
ok
t/basic_returning_psgi.t ......
ok 1 - An object of class 'Plack::App::Path::Router' isa 'Plack::App::Path::Router'
ok 2 - An object of class 'Plack::App::Path::Router' isa 'Plack::Component'
ok 3 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 4 - ... got the right value for index
ok 5 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 6 - ... got the right value for /testing
ok 7 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 8 - ... got the right value for /testing/stuff
ok 9 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 10 - ... got the right value for /testing/edit/things
ok 11 - ... got the right value for 404
1..11
ok
t/basic_returning_response.t ..
ok 1 - An object of class 'Plack::App::Path::Router' isa 'Plack::App::Path::Router'
ok 2 - An object of class 'Plack::App::Path::Router' isa 'Plack::Component'
ok 3 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 4 - ... got the right value for index
ok 5 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 6 - ... got the right value for /testing
ok 7 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 8 - ... got the right value for /testing/stuff
ok 9 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 10 - ... got the right value for /testing/edit/things
ok 11 - ... got the right value for 404
1..11
ok
t/basic_target_objects.t ......
ok 1 - ... got the right value for /foo
ok 2 - ... got the right value for /bar
1..2
ok
t/basic_with_urlmap.t .........
ok 1 - An object of class 'Plack::App::Path::Router' isa 'Plack::App::Path::Router'
ok 2 - An object of class 'Plack::App::Path::Router' isa 'Plack::Component'
ok 3 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 4 - ... got the right value for index
ok 5 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 6 - ... got the right value for index
ok 7 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 8 - ... got the right value for index
ok 9 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 10 - ... got the right value for index
ok 11 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 12 - ... got the right value for index
ok 13 - An object of class 'Plack::Request' isa 'Plack::Request'
ok 14 - ... got the right value for index
1..14
ok
t/custom_request.t ............
ok 1 - An object of class 'Plack::App::Path::Router' isa 'Plack::App::Path::Router'
ok 2 - An object of class 'Plack::App::Path::Router' isa 'Plack::Component'
ok 3 - An object of class 'My::Framework::Request' isa 'My::Framework::Request'
ok 4 - ... got the right value for index
ok 5 - An object of class 'My::Framework::Request' isa 'My::Framework::Request'
ok 6 - ... got the right value for /testing
ok 7 - An object of class 'My::Framework::Request' isa 'My::Framework::Request'
ok 8 - ... got the right value for /testing/stuff
ok 9 - An object of class 'My::Framework::Request' isa 'My::Framework::Request'
ok 10 - ... got the right value for /testing/edit/things
ok 11 - ... got the right value for 404
1..11
ok
t/custom_response.t ...........
ok 1 - ... got the expected match
ok 2 - ... got the expected fail
ok 3 - ... got the expected message
ok 4 - ... got the expected fail
ok 5 - ... got the expected message
ok 6 - ... got the expected changed success
ok 7 - ... got the expected message
1..7
ok
t/load.t ......................
ok 1 - An object of class 'Plack::App::Path::Router' isa 'Plack::App::Path::Router'
ok 2 - An object of class 'Plack::App::Path::Router' isa 'Plack::Component'
ok 3 - ... got the right value for index
ok 4 - ... got the right value for /testing/10
ok 5 - ... got the right value for 404 (validation did not pass)
ok 6 - ... got the right value for /testing/edit/10
ok 7 - ... got the right value for 404
1..7
ok
All tests successful.
Files=12, Tests=141, 9 wallclock secs ( 0.05 usr 0.02 sys + 4.67 cusr 0.46 csys = 5.20 CPU)
Result: PASS
DOY/Plack-App-Path-Router-0.08.tar.gz
make test TEST_VERBOSE=1 -- OK
Jesse Luehrs <doy@cpan.org>
A Plack component for dispatching with Path::Router
>>> (cd /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Plack-App-Path-Router-0.08-jUYFsO && tar cvf - Plack-App-Path-Router-0.08.ppd blib) | gzip -c >/Users/fly2200/cpanfly-5.22/var/REPO/D/DO/DOY/Plack-App-Path-Router-0.08.tar.gz
Plack-App-Path-Router-0.08.ppd
blib/
blib/lib/
blib/lib/Plack/
blib/lib/Plack/App/
blib/lib/Plack/App/Path/
blib/lib/Plack/App/Path/Router/
blib/lib/Plack/App/Path/Router/Custom.pm
blib/lib/Plack/App/Path/Router/PSGI.pm
blib/lib/Plack/App/Path/Router.pm
blib/man3/
blib/man3/Plack::App::Path::Router.3
blib/man3/Plack::App::Path::Router::Custom.3
blib/man3/Plack::App::Path::Router::PSGI.3
TIMB/WebAPI-DBIC-0.004002.tar.gz
Has already been unwrapped into directory /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/WebAPI-DBIC-0.004002-qT3xPz
TIMB/WebAPI-DBIC-0.004002.tar.gz
Has already been prepared
Running make for T/TI/TIMB/WebAPI-DBIC-0.004002.tar.gz
Prepending /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Plack-App-Path-Router-0.08-jUYFsO/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Plack-App-Path-Router-0.08-jUYFsO/blib/lib /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/lib to PERL5LIB for 'make'
>>> make
cp lib/WebAPI/DBIC/Resource/GenericRoot.pm blib/lib/WebAPI/DBIC/Resource/GenericRoot.pm
cp lib/WebAPI/DBIC/Resource/ActiveModel.pm blib/lib/WebAPI/DBIC/Resource/ActiveModel.pm
cp lib/WebAPI/DBIC/Resource/GenericCore.pm blib/lib/WebAPI/DBIC/Resource/GenericCore.pm
cp lib/WebAPI/DBIC/Resource/GenericSetInvoke.pm blib/lib/WebAPI/DBIC/Resource/GenericSetInvoke.pm
cp lib/WebAPI/DBIC/Resource/JSONAPI/Role/ItemWritable.pm blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/ItemWritable.pm
cp lib/WebAPI/DBIC/Role/JsonParams.pm blib/lib/WebAPI/DBIC/Role/JsonParams.pm
cp lib/WebAPI/DBIC/Resource/Role/Identity.pm blib/lib/WebAPI/DBIC/Resource/Role/Identity.pm
cp lib/WebAPI/DBIC/Resource/ActiveModel/Role/Set.pm blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Set.pm
cp lib/WebAPI/DBIC/Resource/JSONAPI/Role/SetWritable.pm blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/SetWritable.pm
cp lib/WebAPI/DBIC/Resource/JSONAPI.pm blib/lib/WebAPI/DBIC/Resource/JSONAPI.pm
cp lib/WebAPI/DBIC.pm blib/lib/WebAPI/DBIC.pm
cp lib/WebAPI/DBIC/Resource/GenericItemInvoke.pm blib/lib/WebAPI/DBIC/Resource/GenericItemInvoke.pm
cp lib/WebAPI/DBIC/Resource/Role/ItemWritable.pm blib/lib/WebAPI/DBIC/Resource/Role/ItemWritable.pm
cp lib/WebAPI/DBIC/Resource/ActiveModel/Role/SetWritable.pm blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/SetWritable.pm
cp lib/WebAPI/DBIC/Resource/Role/DBIC.pm blib/lib/WebAPI/DBIC/Resource/Role/DBIC.pm
cp data_service_api.pod blib/lib/WebAPI/data_service_api.pod
cp lib/WebAPI/DBIC/Router.pm blib/lib/WebAPI/DBIC/Router.pm
cp NOTES.pod blib/lib/WebAPI/NOTES.pod
cp lib/WebAPI/DBIC/Resource/JSONAPI/Role/DBIC.pm blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/DBIC.pm
cp lib/WebAPI/DBIC/Resource/Base.pm blib/lib/WebAPI/DBIC/Resource/Base.pm
cp lib/WebAPI/HTTP/Throwable/Factory.pm blib/lib/WebAPI/HTTP/Throwable/Factory.pm
cp lib/WebAPI/DBIC/Resource/JSONAPI/Role/Set.pm blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Set.pm
cp lib/WebAPI/DBIC/Resource/Role/Root.pm blib/lib/WebAPI/DBIC/Resource/Role/Root.pm
cp lib/WebAPI/DBIC/Resource/Role/SetInvoke.pm blib/lib/WebAPI/DBIC/Resource/Role/SetInvoke.pm
cp lib/WebAPI/DBIC/Resource/GenericSet.pm blib/lib/WebAPI/DBIC/Resource/GenericSet.pm
cp lib/WebAPI/DBIC/Resource/Role/DBICParams.pm blib/lib/WebAPI/DBIC/Resource/Role/DBICParams.pm
cp lib/WebAPI/DBIC/Resource/HAL/Role/Root.pm blib/lib/WebAPI/DBIC/Resource/HAL/Role/Root.pm
cp lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm blib/lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm
cp lib/WebAPI/DBIC/Role/JsonEncoder.pm blib/lib/WebAPI/DBIC/Role/JsonEncoder.pm
cp lib/WebAPI/DBIC/Resource/ActiveModel/Role/Item.pm blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Item.pm
cp lib/WebAPI/DBIC/Resource/HAL/Role/Item.pm blib/lib/WebAPI/DBIC/Resource/HAL/Role/Item.pm
cp lib/WebAPI/DBIC/Resource/Role/DBICAuth.pm blib/lib/WebAPI/DBIC/Resource/Role/DBICAuth.pm
cp lib/WebAPI/DBIC/Resource/Role/Set.pm blib/lib/WebAPI/DBIC/Resource/Role/Set.pm
cp lib/WebAPI/DBIC/Util.pm blib/lib/WebAPI/DBIC/Util.pm
cp lib/WebAPI/DBIC/Resource/ActiveModel/Role/DBIC.pm blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/DBIC.pm
cp lib/WebAPI/DBIC/Resource/Role/DBICException.pm blib/lib/WebAPI/DBIC/Resource/Role/DBICException.pm
cp lib/WebAPI/DBIC/Resource/HAL/Role/DBIC.pm blib/lib/WebAPI/DBIC/Resource/HAL/Role/DBIC.pm
cp lib/WebAPI/DBIC/Resource/ActiveModel/Role/ItemWritable.pm blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/ItemWritable.pm
cp lib/WebAPI/DBIC/Resource/Role/Item.pm blib/lib/WebAPI/DBIC/Resource/Role/Item.pm
cp lib/WebAPI/DBIC/Resource/HAL/Role/ItemWritable.pm blib/lib/WebAPI/DBIC/Resource/HAL/Role/ItemWritable.pm
cp lib/WebAPI/DBIC/Resource/Role/Relationship.pm blib/lib/WebAPI/DBIC/Resource/Role/Relationship.pm
cp lib/WebAPI/DBIC/Resource/Role/SetWritable.pm blib/lib/WebAPI/DBIC/Resource/Role/SetWritable.pm
cp lib/WebAPI/DBIC/Resource/HAL/Role/Set.pm blib/lib/WebAPI/DBIC/Resource/HAL/Role/Set.pm
cp lib/WebAPI/DBIC/Resource/HAL.pm blib/lib/WebAPI/DBIC/Resource/HAL.pm
cp lib/WebAPI/DBIC/Resource/JSONAPI/Role/Item.pm blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Item.pm
cp lib/WebAPI/DBIC/RouteMaker.pm blib/lib/WebAPI/DBIC/RouteMaker.pm
cp lib/WebAPI/DBIC/Resource/Role/Router.pm blib/lib/WebAPI/DBIC/Resource/Role/Router.pm
cp lib/WebAPI/DBIC/Route.pm blib/lib/WebAPI/DBIC/Route.pm
cp lib/WebAPI/DBIC/WebApp.pm blib/lib/WebAPI/DBIC/WebApp.pm
cp lib/WebAPI/DBIC/TypeNamer.pm blib/lib/WebAPI/DBIC/TypeNamer.pm
cp lib/WebAPI/DBIC/Resource/GenericItem.pm blib/lib/WebAPI/DBIC/Resource/GenericItem.pm
cp lib/WebAPI/HTTP/Throwable/Role/JSONBody.pm blib/lib/WebAPI/HTTP/Throwable/Role/JSONBody.pm
cp lib/WebAPI/DBIC/Resource/HAL/Role/SetWritable.pm blib/lib/WebAPI/DBIC/Resource/HAL/Role/SetWritable.pm
Manifying 53 pod documents
TIMB/WebAPI-DBIC-0.004002.tar.gz
make -- OK
Prepending /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Plack-App-Path-Router-0.08-jUYFsO/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Plack-App-Path-Router-0.08-jUYFsO/blib/lib /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/arch /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/Sub-Quote-2.003001-kfbB9i/blib/lib to PERL5LIB for 'test'
Running make test
>>> make test TEST_VERBOSE=1
PERL_DL_NONLAZY=1 "/Users/fly2200/ap2200-299195/bin/perl-dynamic" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/media-active-model/*.t t/media-hal/*.t t/media-jsonapi/*.t
webapi-dbic-any.psgi syntax OK
webapi-dbic-demo.psgi syntax OK
t/00-compile.t ..........................
ok 1 - lib/WebAPI/DBIC.pm compiles
ok 2 - lib/WebAPI/DBIC/Route.pm compiles
ok 3 - lib/WebAPI/DBIC/RouteMaker.pm compiles
ok 4 - lib/WebAPI/DBIC/Router.pm compiles
ok 5 - lib/WebAPI/DBIC/TypeNamer.pm compiles
ok 6 - lib/WebAPI/DBIC/Util.pm compiles
ok 7 - lib/WebAPI/DBIC/WebApp.pm compiles
ok 8 - blib/lib/WebAPI/DBIC.pm compiles
ok 9 - lib/WebAPI/DBIC/Resource/ActiveModel.pm compiles
ok 10 - lib/WebAPI/DBIC/Resource/Base.pm compiles
ok 11 - lib/WebAPI/DBIC/Resource/GenericCore.pm compiles
ok 12 - lib/WebAPI/DBIC/Resource/GenericItem.pm compiles
ok 13 - lib/WebAPI/DBIC/Resource/GenericItemInvoke.pm compiles
ok 14 - lib/WebAPI/DBIC/Resource/GenericRoot.pm compiles
ok 15 - lib/WebAPI/DBIC/Resource/GenericSet.pm compiles
ok 16 - lib/WebAPI/DBIC/Resource/GenericSetInvoke.pm compiles
ok 17 - lib/WebAPI/DBIC/Resource/HAL.pm compiles
ok 18 - lib/WebAPI/DBIC/Resource/JSONAPI.pm compiles
ok 19 - lib/WebAPI/DBIC/Role/JsonEncoder.pm compiles
ok 20 - lib/WebAPI/DBIC/Role/JsonParams.pm compiles
ok 21 - lib/WebAPI/HTTP/Throwable/Factory.pm compiles
ok 22 - blib/lib/WebAPI/DBIC/Route.pm compiles
ok 23 - blib/lib/WebAPI/DBIC/RouteMaker.pm compiles
ok 24 - blib/lib/WebAPI/DBIC/Router.pm compiles
ok 25 - blib/lib/WebAPI/DBIC/TypeNamer.pm compiles
ok 26 - blib/lib/WebAPI/DBIC/Util.pm compiles
ok 27 - blib/lib/WebAPI/DBIC/WebApp.pm compiles
ok 28 - lib/WebAPI/DBIC/Resource/Role/DBIC.pm compiles
ok 29 - lib/WebAPI/DBIC/Resource/Role/DBICAuth.pm compiles
ok 30 - lib/WebAPI/DBIC/Resource/Role/DBICException.pm compiles
ok 31 - lib/WebAPI/DBIC/Resource/Role/DBICParams.pm compiles
ok 32 - lib/WebAPI/DBIC/Resource/Role/Identity.pm compiles
ok 33 - lib/WebAPI/DBIC/Resource/Role/Item.pm compiles
ok 34 - lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm compiles
ok 35 - lib/WebAPI/DBIC/Resource/Role/ItemWritable.pm compiles
ok 36 - lib/WebAPI/DBIC/Resource/Role/Relationship.pm compiles
ok 37 - lib/WebAPI/DBIC/Resource/Role/Root.pm compiles
ok 38 - lib/WebAPI/DBIC/Resource/Role/Router.pm compiles
ok 39 - lib/WebAPI/DBIC/Resource/Role/Set.pm compiles
ok 40 - lib/WebAPI/DBIC/Resource/Role/SetInvoke.pm compiles
ok 41 - lib/WebAPI/DBIC/Resource/Role/SetWritable.pm compiles
ok 42 - lib/WebAPI/HTTP/Throwable/Role/JSONBody.pm compiles
ok 43 - blib/lib/WebAPI/DBIC/Resource/ActiveModel.pm compiles
ok 44 - blib/lib/WebAPI/DBIC/Resource/Base.pm compiles
ok 45 - blib/lib/WebAPI/DBIC/Resource/GenericCore.pm compiles
ok 46 - blib/lib/WebAPI/DBIC/Resource/GenericItem.pm compiles
ok 47 - blib/lib/WebAPI/DBIC/Resource/GenericItemInvoke.pm compiles
ok 48 - blib/lib/WebAPI/DBIC/Resource/GenericRoot.pm compiles
ok 49 - blib/lib/WebAPI/DBIC/Resource/GenericSet.pm compiles
ok 50 - blib/lib/WebAPI/DBIC/Resource/GenericSetInvoke.pm compiles
ok 51 - blib/lib/WebAPI/DBIC/Resource/HAL.pm compiles
ok 52 - blib/lib/WebAPI/DBIC/Resource/JSONAPI.pm compiles
ok 53 - blib/lib/WebAPI/DBIC/Role/JsonEncoder.pm compiles
ok 54 - blib/lib/WebAPI/DBIC/Role/JsonParams.pm compiles
ok 55 - blib/lib/WebAPI/HTTP/Throwable/Factory.pm compiles
ok 56 - lib/WebAPI/DBIC/Resource/ActiveModel/Role/DBIC.pm compiles
ok 57 - lib/WebAPI/DBIC/Resource/ActiveModel/Role/Item.pm compiles
ok 58 - lib/WebAPI/DBIC/Resource/ActiveModel/Role/ItemWritable.pm compiles
ok 59 - lib/WebAPI/DBIC/Resource/ActiveModel/Role/Set.pm compiles
ok 60 - lib/WebAPI/DBIC/Resource/ActiveModel/Role/SetWritable.pm compiles
ok 61 - lib/WebAPI/DBIC/Resource/HAL/Role/DBIC.pm compiles
ok 62 - lib/WebAPI/DBIC/Resource/HAL/Role/Item.pm compiles
ok 63 - lib/WebAPI/DBIC/Resource/HAL/Role/ItemWritable.pm compiles
ok 64 - lib/WebAPI/DBIC/Resource/HAL/Role/Root.pm compiles
ok 65 - lib/WebAPI/DBIC/Resource/HAL/Role/Set.pm compiles
ok 66 - lib/WebAPI/DBIC/Resource/HAL/Role/SetWritable.pm compiles
ok 67 - lib/WebAPI/DBIC/Resource/JSONAPI/Role/DBIC.pm compiles
ok 68 - lib/WebAPI/DBIC/Resource/JSONAPI/Role/Item.pm compiles
ok 69 - lib/WebAPI/DBIC/Resource/JSONAPI/Role/ItemWritable.pm compiles
ok 70 - lib/WebAPI/DBIC/Resource/JSONAPI/Role/Set.pm compiles
ok 71 - lib/WebAPI/DBIC/Resource/JSONAPI/Role/SetWritable.pm compiles
ok 72 - blib/lib/WebAPI/DBIC/Resource/Role/DBIC.pm compiles
ok 73 - blib/lib/WebAPI/DBIC/Resource/Role/DBICAuth.pm compiles
ok 74 - blib/lib/WebAPI/DBIC/Resource/Role/DBICException.pm compiles
ok 75 - blib/lib/WebAPI/DBIC/Resource/Role/DBICParams.pm compiles
ok 76 - blib/lib/WebAPI/DBIC/Resource/Role/Identity.pm compiles
ok 77 - blib/lib/WebAPI/DBIC/Resource/Role/Item.pm compiles
ok 78 - blib/lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm compiles
ok 79 - blib/lib/WebAPI/DBIC/Resource/Role/ItemWritable.pm compiles
ok 80 - blib/lib/WebAPI/DBIC/Resource/Role/Relationship.pm compiles
ok 81 - blib/lib/WebAPI/DBIC/Resource/Role/Root.pm compiles
ok 82 - blib/lib/WebAPI/DBIC/Resource/Role/Router.pm compiles
ok 83 - blib/lib/WebAPI/DBIC/Resource/Role/Set.pm compiles
ok 84 - blib/lib/WebAPI/DBIC/Resource/Role/SetInvoke.pm compiles
ok 85 - blib/lib/WebAPI/DBIC/Resource/Role/SetWritable.pm compiles
ok 86 - blib/lib/WebAPI/HTTP/Throwable/Role/JSONBody.pm compiles
ok 87 - blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/DBIC.pm compiles
ok 88 - blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Item.pm compiles
ok 89 - blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/ItemWritable.pm compiles
ok 90 - blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Set.pm compiles
ok 91 - blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/SetWritable.pm compiles
ok 92 - blib/lib/WebAPI/DBIC/Resource/HAL/Role/DBIC.pm compiles
ok 93 - blib/lib/WebAPI/DBIC/Resource/HAL/Role/Item.pm compiles
ok 94 - blib/lib/WebAPI/DBIC/Resource/HAL/Role/ItemWritable.pm compiles
ok 95 - blib/lib/WebAPI/DBIC/Resource/HAL/Role/Root.pm compiles
ok 96 - blib/lib/WebAPI/DBIC/Resource/HAL/Role/Set.pm compiles
ok 97 - blib/lib/WebAPI/DBIC/Resource/HAL/Role/SetWritable.pm compiles
ok 98 - blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/DBIC.pm compiles
ok 99 - blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Item.pm compiles
ok 100 - blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/ItemWritable.pm compiles
ok 101 - blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Set.pm compiles
ok 102 - blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/SetWritable.pm compiles
ok 103 - has psgi files
1..103
ok
t/10-basics-req.t .......................
importing fixtures
- deleting existing temp directory /tmp/pDQqCrzaoY
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== basics - specs =====
# --- Config:
# --- Name: get single item
# GET /artist/1
# Vary: Accept
# Content-Length: 69
# Content-Type: application/vnd.wapid+json
# --- Name: get different single item
# GET /artist/2
# Vary: Accept
# Content-Length: 66
# Content-Type: application/vnd.wapid+json
# --- Name: get set of items
# GET /artist
# Vary: Accept
# Content-Length: 387
# Content-Type: application/vnd.wapid+json
# --- Name: get item with multi-field key
# GET /gig/1/2014-01-01T01:01:01Z
# Vary: Accept
# Content-Length: 52
# Content-Type: application/vnd.wapid+json
# --- Name: get different item with multi-field key
# GET /gig/2/2014-06-30T19:00:00Z
# Vary: Accept
# Content-Length: 52
# Content-Type: application/vnd.wapid+json
# --- Name: get view data
# GET /classic_albums
# Vary: Accept
# Content-Length: 322
# Content-Type: application/vnd.wapid+json
ok 1 - 10-basics-req.t output in t/10-basics-req.got matches t/10-basics-req.exp
1..1
ok 2 - ===== basics - specs =====
1..2
ok
t/11-paging-req.t .......................
importing fixtures
- deleting existing temp directory /tmp/vek2Mmrvs0
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Paging =====
# --- Config:
# --- Name: get 1 row
# GET /artist?rows=1
# Vary: Accept
# Content-Length: 71
# Content-Type: application/vnd.wapid+json
# --- Name: get 2 rows
# GET /artist?rows=2
# Vary: Accept
# Content-Length: 138
# Content-Type: application/vnd.wapid+json
# --- Name: get 2 rows from second 'page'
# GET /artist?rows=2&page=2
# Vary: Accept
# Content-Length: 125
# Content-Type: application/vnd.wapid+json
ok 1 - 11-paging-req.t output in t/11-paging-req.got matches t/11-paging-req.exp
1..1
ok 2 - ===== Paging =====
1..2
ok
t/12-searching-req.t ....................
importing fixtures
- deleting existing temp directory /tmp/NbsIyxOd1B
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Paging =====
# --- Config:
# --- Name: get 1 row from set by qualifying the key
# GET /artist?me.artistid=2
# Vary: Accept
# Content-Length: 68
# Content-Type: application/vnd.wapid+json
# --- Name: get specific rows via json array
# GET /artist?me.artistid~json=%5B1%2C3%5D
# Vary: Accept
# Content-Length: 134
# Content-Type: application/vnd.wapid+json
# --- Name: get specific rows via json qualifier expression
# GET /artist?me.artistid~json=%7B%22%3C%3D%22%3A2%7D
# Vary: Accept
# Content-Length: 138
# Content-Type: application/vnd.wapid+json
# --- Name: get no rows, empty set, due to qualifier that matches none
# GET /artist?me.artistid=999999
# Vary: Accept
# Content-Length: 2
# Content-Type: application/vnd.wapid+json
# --- Name: invalid request due to qualifying by non-existant field
ok 1 # skip need to add post-processing of the error result
ok 2 - 12-searching-req.t output in t/12-searching-req.got matches t/12-searching-req.exp
1..2
ok 2 - ===== Paging =====
1..2
ok
t/13-fields-req.t .......................
importing fixtures
- deleting existing temp directory /tmp/3yJay_7tbz
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Get with fields param =====
# GET /artist?fields=artistid,name
ok 1
ok 2 - response is a ref
ok 3 - /artist data looks sane
ok 4 - rank fields not preset
# GET /artist/1?fields=artistid,name
ok 5
ok 6 - response is a ref
ok 7 - data isn't a hash
ok 8 - set has less than 2 attributes
ok 9 - artistid
ok 10 - data matches
# GET /artist/2?fields=artistid,rank
ok 11
ok 12 - response is a ref
ok 13 - data isn't a hash
ok 14 - set has less than 2 attributes
ok 15 - artistid
ok 16 - has rank field
1..16
ok 2 - ===== Get with fields param =====
1..2
ok
t/14-distinct-req.t .....................
importing fixtures
- deleting existing temp directory /tmp/NpSoOI4n_2
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== GET distinct =====
# GET /cd?fields=year&order=year&distinct=1
ok 1
ok 2 - response is a ref
ok 3
1..3
ok 2 - ===== GET distinct =====
1..2
ok
t/30-ordering-req.t .....................
importing fixtures
- deleting existing temp directory /tmp/GoBLtSb7ow
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Ordering =====
# --- Config:
# --- Name: order by PK asc
# GET /cd?order=me.cdid
# Vary: Accept
# Content-Length: 498
# Content-Type: application/vnd.wapid+json
# --- Name: order by PK desc
# GET /cd?order=me.cdid%20desc&fields=cdid,year
# Vary: Accept
# Content-Length: 126
# Content-Type: application/vnd.wapid+json
# --- Name: order by year desc and title desc
# GET /cd?sort=me.year%20desc,title%20desc&fields=cdid,year,title
# Vary: Accept
# Content-Length: 283
# Content-Type: application/vnd.wapid+json
# --- Name: order by year desc and title desc using JSON API style
# GET /cd?sort=-year,-title&fields=cdid,year,title
# Vary: Accept
# Content-Length: 283
# Content-Type: application/vnd.wapid+json
ok 1 - 30-ordering-req.t output in t/30-ordering-req.got matches t/30-ordering-req.exp
1..1
ok 2 - ===== Ordering =====
1..2
ok
t/50-modify-req.t .......................
importing fixtures
- deleting existing temp directory /tmp/RrG48qVmcj
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Create - POST =====
# GET /artist
ok 1
ok 2 - response is a ref
ok 3 - /artist includes 1
ok 4 - /artist includes 2
ok 5 - /artist includes 3
ok 6 - /artist data looks sane
# plain post
# POST /artist
ok 7
ok 8 - has Location header
ok 9 - no data returned without prefetch
# GET /artist/7
ok 10
ok 11 - response is a ref
ok 12 - new item has id
ok 13 - new item has new id
ok 14
ok 15
# post with prefetch=self
# POST /artist?prefetch=self
ok 16
ok 17 - has Location header
ok 18 - response is a ref
# GET /artist/8
ok 19
ok 20 - response is a ref
ok 21 - new item has id
ok 22 - new item has new id
ok 23
ok 24
ok 25 - returned prefetch matches item at location
# ===== Update - PUT =====
# put without prefetch=self
# PUT /artist/8
ok 26
ok 27 - no response body
# GET /artist/8
ok 28
ok 29 - response is a ref
ok 30
# put with prefetch=self
# PUT /artist/8?prefetch=self
ok 31
ok 32 - response is a ref
ok 33 - has response body
ok 34 - prefetch response has updated rank
# GET /artist/8
ok 35
ok 36 - response is a ref
ok 37 - returned prefetch matches item at location
# ===== Delete - DELETE =====
# DELETE /artist/7
ok 38
ok 39 - no response body
# GET /person_types/7
ok 40
# DELETE /artist/8
ok 41
ok 42 - no response body
# GET /person_types/8
ok 43
1..43
ok 2 - ===== Create - POST =====
1..2
ok
t/53-put_rel-req.t ......................
importing fixtures
- deleting existing temp directory /tmp/dVjiO26Bjx
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Update a resource and related resources via PUT =====
# --- Config:
# --- Name: POST to the set to create a Track to edit (on an existing CD)
# POST /track?prefetch=self
# Location: /track/19
# Vary: Accept
# Content-Length: 107
# Content-Type: application/vnd.wapid+json
# --- Name: update the title (19 hardwired for now) and prefetch self and disc (ignored)
# PUT /track/19?prefetch=self,disc
# Vary: Accept
# Content-Length: 115
# Content-Type: application/vnd.wapid+json
# --- Name: update the track id (primary key)
# PUT /track/19?prefetch=self
# Vary: Accept
# Content-Length: 117
# Content-Type: application/vnd.wapid+json
# --- Name: delete the track we just added
# DELETE /track/1900
# Vary: Accept
# Content-Type: application/vnd.wapid+json
ok 1 - 53-put_rel-req.t output in t/53-put_rel-req.got matches t/53-put_rel-req.exp
# POST /track?prefetch=self
ok 2
ok 3 - has Location header
ok 4 - response is a ref
# PUT /track/19?prefetch=self,disc
ok 5
ok 6 - response is a ref
ok 7 - return data
ok 8 - has trackid assigned
ok 9
ok 10 - has same position assigned
# recheck data as a separate request
# GET /track/19?prefetch=self,disc
ok 11
ok 12 - response is a ref
ok 13 - has trackid assigned
ok 14
ok 15 - has same position assigned
# DELETE /track/19
ok 16
1..16
ok 2 - ===== Update a resource and related resources via PUT =====
1..2
ok
Exception: DBIx::Class::Row::get_column(): No such column 'nonesuch' on TestSchema::Result::Artist at /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/WebAPI-DBIC-0.004002-qT3xPz/blib/lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm line 57
t/60-invoke-req.t .......................
importing fixtures
- deleting existing temp directory /tmp/Db3xWjPgDy
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Invoke methods =====
# --- Config:
# --- Name: Invoke get_column('name') on Item
# POST /artist/1/invoke/get_column
# Content-Length: 31
# Content-Type: application/vnd.wapid+json
# --- Name: Invoke get_column({}) on Item - Invalid arg type
# POST /artist/1/invoke/get_column
# Content-Length: 46
# Content-Type: application/json
# --- Name: Invoke get_column() on Item - Unknown attribute
# POST /artist/1/invoke/get_column
# Content-Length: 49
# Content-Type: application/json
# --- Name: Invoke get_column() on Item - Invalid Body
# POST /artist/1/invoke/get_column
# Content-Length: 52
# Content-Type: application/json
# --- Name: Invoke get_colum('nonesuch') on Item - Invalid column
# POST /artist/1/invoke/get_column
# Content-Length: 0
# Content-Type: application/vnd.wapid+json
# --- Name: Invoke get_column('name') on Set
# POST /artist/invoke/get_column
# Content-Type: text/html
# --- Name: Invoke count on Set
# POST /artist/invoke/count
# Content-Length: 12
# Content-Type: application/vnd.wapid+json
# --- Name: Invoke count on Set - Invalid arg type
# POST /artist/invoke/count
# Content-Length: 46
# Content-Type: application/json
# --- Name: Invoke count on Set - Unknown attribute
# POST /artist/invoke/count
# Content-Length: 49
# Content-Type: application/json
# --- Name: Invoke count on Set - Invalid Body
# POST /artist/invoke/count
# Content-Length: 52
# Content-Type: application/json
# --- Name: Invoke count({name => "Caterwauler McCrae"}) on Set
# POST /artist/invoke/count
# Content-Length: 12
# Content-Type: application/vnd.wapid+json
# --- Name: Invoke count on Item
# POST /artist/1/invoke/count
# Content-Type: text/html
ok 1 - 60-invoke-req.t output in t/60-invoke-req.got matches t/60-invoke-req.exp
1..1
ok 2 - ===== Invoke methods =====
1..2
ok
t/90-root-req.t .........................
# Subtest: ===== basics - specs =====
# --- Config:
# --- Name: get root url as html
# GET /
# Location: browser/browser.html#/
# Vary: Accept
# Content-Length: 0
# Content-Type: text/html
# --- Config:
# --- Name: get root url as plain json
# GET /
# Vary: Accept
# Content-Length: 771
# Content-Type: application/vnd.wapid+json
ok 1 - 90-root-req.t output in t/90-root-req.got matches t/90-root-req.exp
1..1
ok 1 - ===== basics - specs =====
1..1
ok
t/media-active-model/10-basics-req.t ....
importing fixtures
- deleting existing temp directory /tmp/Px_j98Du2g
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== basics - specs =====
# --- Config:
# --- Name: get single item
# GET /artist/1
# Vary: Accept
# Content-Length: 82
# Content-Type: application/json
# --- Name: get different single item
# GET /artist/2
# Vary: Accept
# Content-Length: 79
# Content-Type: application/json
# --- Name: get set of items
# GET /artist
# Vary: Accept
# Content-Length: 398
# Content-Type: application/json
# --- Name: get item with multi-field key
# GET /gig/1/2014-01-01T01:01:01Z
# Vary: Accept
# Content-Length: 62
# Content-Type: application/json
# --- Name: get different item with multi-field key
# GET /gig/2/2014-06-30T19:00:00Z
# Vary: Accept
# Content-Length: 62
# Content-Type: application/json
# --- Name: get view data
# GET /classic_albums
# Vary: Accept
# Content-Length: 341
# Content-Type: application/json
ok 1 - 10-basics-req.t output in t/media-active-model/10-basics-req.got matches t/media-active-model/10-basics-req.exp
1..1
ok 2 - ===== basics - specs =====
1..2
ok
Child result class TestSchema::Result::CD_to_Producer has multiple keys (cd producer) so relations like cd_to_producer won't have links generated.
t/media-active-model/40-prefetch-req.t ..
importing fixtures
- deleting existing temp directory /tmp/l3ASO9HIVe
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Prefetch =====
# --- Config:
# --- Name: prefetch on an item using two belongs_to relationships
# GET /cd/1?prefetch=artist,genre
# Vary: Accept
# Content-Length: 248
# Content-Type: application/json
# --- Name: prefetch on a set using two belongs_to relationships
# GET /cd?rows=2&page=1&prefetch=artist,genre
# Vary: Accept
# Content-Length: 400
# Content-Type: application/json
# --- Name: filter on prefetched relation field
# GET /cd?prefetch=artist&artist.name=Random+Boy+Band
# Vary: Accept
# Content-Length: 207
# Content-Type: application/json
# --- Name: filter on prefetch with JSON
# GET /cd?prefetch=artist&artist.name~json=%7B%22like%22%3A%22%25Band%22%7D
# Vary: Accept
# Content-Length: 207
# Content-Type: application/json
# --- Name: multi type relation (has_many) in prefetch on item
# GET /artist/1?prefetch=cds&order=cds.cdid
# Vary: Accept
# Content-Length: 392
# Content-Type: application/json
# --- Name: multi type relation (has_many) in prefetch on set
# GET /artist?prefetch=cds&order=me.artistid,cds.cdid&rows=2
# Vary: Accept
# Content-Length: 579
# Content-Type: application/json
# --- Name: multi type relation in prefetch on item (many_to_many via JSON) ArrayRef Syntax
# GET /cd/1?prefetch~json=%5B%7B%22cd_to_producer%22%3A%22producer%22%7D%5D
# Vary: Accept
# Content-Length: 103
# Content-Type: application/json
# --- Name: multi type relation in prefetch on item (many_to_many via JSON) HashRef Syntax
# GET /cd/1?prefetch~json=%7B%22cd_to_producer%22%3A%22producer%22%7D
# Vary: Accept
# Content-Length: 103
# Content-Type: application/json
# --- Name: filter on nested prefetch
# GET /artist?rows=2&producer.name=Matt+S+Trout&prefetch~json=%7B%22cds%22%3A%7B%22cd_to_producer%22%3A%22producer%22%7D%7D&cds.year~json=%7B%22%3E%22%3A%220996%22%7D
# Vary: Accept
# Content-Length: 197
# Content-Type: application/json
# --- Name: prefetch with query on ambiguous field
# GET /cd/?me.artist=1&prefetch=artist
# Vary: Accept
# Content-Length: 417
# Content-Type: application/json
# --- Name: prefetch on invalid name
# GET /cd/1?prefetch=nonesuch
# Content-Length: 389
# Content-Type: application/json
# --- Name: prefetch on set with partial response of prefetched items
# GET /cd?rows=2&page=1&prefetch=artist,genre&fields=cdid,artist,genreid,genre.genreid,artist.artistid
# Vary: Accept
# Content-Length: 194
# Content-Type: application/json
# --- Name: prefetch on item with partial response of prefetched item
# GET /cd/1?prefetch=artist,genre&fields=cdid,artist,genreid,artist.artistid,genre.genreid
# Vary: Accept
# Content-Length: 119
# Content-Type: application/json
# --- Name: prefetch on item with id primary key #28
# GET /country/1?prefetch=cities
# Vary: Accept
# Content-Length: 103
# Content-Type: application/json
# --- Name: prefetch a complex set with second-tier relationships
# GET /artist/1?prefetch~json=%7B%22cds%22%3A%22tracks%22%7D
# Vary: Accept
# Content-Length: 1372
# Content-Type: application/json
ok 1 - 40-prefetch-req.t output in t/media-active-model/40-prefetch-req.got matches t/media-active-model/40-prefetch-req.exp
1..1
ok 2 - ===== Prefetch =====
1..2
ok
TestSchema::Result::Artist relationship cds_90s has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/10-basics-req.t .............
importing fixtures
- deleting existing temp directory /tmp/BJTQ8LoY4i
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== basics - specs =====
# --- Config:
# --- Name: get single item
# GET /artist/1
# Vary: Accept
# Content-Length: 174
# Content-Type: application/hal+json
# --- Name: get different single item
# GET /artist/2
# Vary: Accept
# Content-Length: 171
# Content-Type: application/hal+json
# --- Name: get set of items
# GET /artist
# Vary: Accept
# Content-Length: 1131
# Content-Type: application/hal+json
# --- Name: get item with multi-field key
# GET /gig/1/2014-01-01T01:01:01Z
# Vary: Accept
# Content-Length: 139
# Content-Type: application/hal+json
# --- Name: get different item with multi-field key
# GET /gig/2/2014-06-30T19:00:00Z
# Vary: Accept
# Content-Length: 139
# Content-Type: application/hal+json
# --- Name: get view data
# GET /classic_albums
# Vary: Accept
# Content-Length: 666
# Content-Type: application/hal+json
ok 1 - 10-basics-req.t output in t/media-hal/10-basics-req.got matches t/media-hal/10-basics-req.exp
1..1
ok 2 - ===== basics - specs =====
1..2
ok
TestSchema::Result::Artist relationship cds_90s has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/11-paging-req.t .............
importing fixtures
- deleting existing temp directory /tmp/dKk8lX6LDt
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Paging =====
# --- Config:
# --- Name: get 1 row
# GET /artist?rows=1
# Vary: Accept
# Content-Length: 329
# Content-Type: application/hal+json
# --- Name: get 2 rows with count
# GET /artist?rows=2&with=count
# Vary: Accept
# Content-Length: 594
# Content-Type: application/hal+json
# --- Name: get 2 rows from second 'page'
# GET /artist?rows=2&page=2
# Vary: Accept
# Content-Length: 569
# Content-Type: application/hal+json
ok 1 - 11-paging-req.t output in t/media-hal/11-paging-req.got matches t/media-hal/11-paging-req.exp
1..1
ok 2 - ===== Paging =====
1..2
ok
TestSchema::Result::Artist relationship cds_90s has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/12-searching-req.t ..........
importing fixtures
- deleting existing temp directory /tmp/9jBepcnWac
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Paging =====
# --- Config:
# --- Name: get 1 row from set by qualifying the key
# GET /artist?me.artistid=2
# Vary: Accept
# Content-Length: 301
# Content-Type: application/hal+json
# --- Name: get specific rows via json array
# GET /artist?me.artistid~json=%5B1%2C3%5D
# Vary: Accept
# Content-Length: 487
# Content-Type: application/hal+json
# --- Name: get specific rows via json qualifier expression
# GET /artist?me.artistid~json=%7B%22%3C%3D%22%3A2%7D
# Vary: Accept
# Content-Length: 502
# Content-Type: application/hal+json
# --- Name: get no rows, empty set, due to qualifier that matches none
# GET /artist?me.artistid=999999
# Vary: Accept
# Content-Length: 135
# Content-Type: application/hal+json
# --- Name: invalid request due to qualifying by non-existant field
ok 1 # skip need to add post-processing of the error result
ok 2 - 12-searching-req.t output in t/media-hal/12-searching-req.got matches t/media-hal/12-searching-req.exp
1..2
ok 2 - ===== Paging =====
1..2
ok
TestSchema::Result::Artist relationship cds_90s has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/13-fields-req.t .............
importing fixtures
- deleting existing temp directory /tmp/l4r_48gytO
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Get with fields param =====
# GET /artist?fields=artistid,name
ok 1
ok 2 - response is a ref
ok 3 - data isn't a hash
ok 4 - _embedded isn't hash
ok 5 - _embedded has artist array
ok 6 - set has at least 2 items
ok 7 - /artist includes 1
ok 8 - /artist includes 2
ok 9 - /artist includes 3
ok 10 - /artist data looks sane
ok 11 - rank fields not preset
# GET /artist/1?fields=artistid,name
ok 12
ok 13 - response is a ref
ok 14 - data isn't a hash
ok 15 - set has less than 2 attributes
ok 16 - artistid
ok 17 - data matches
# GET /artist/2?fields=artistid,rank
ok 18
ok 19 - response is a ref
ok 20 - data isn't a hash
ok 21 - set has less than 2 attributes
ok 22 - artistid
ok 23 - has rank field
1..23
ok 2 - ===== Get with fields param =====
1..2
ok
t/media-hal/14-distinct-req.t ...........
importing fixtures
- deleting existing temp directory /tmp/rHv4Cu9MMm
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== GET distinct =====
# GET /cd?fields=year&order=year&distinct=1
ok 1
ok 2 - response is a ref
ok 3 - data isn't a hash
ok 4 - _embedded isn't hash
ok 5 - _embedded has cd array
ok 6 - set has at least 4 items
ok 7 - set has at most 4 items
ok 8
1..8
ok 2 - ===== GET distinct =====
1..2
ok
t/media-hal/30-ordering-req.t ...........
importing fixtures
- deleting existing temp directory /tmp/SKHmpfUGx8
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Ordering =====
# --- Config:
# --- Name: order by PK asc
# GET /cd?order=me.cdid
# Vary: Accept
# Content-Length: 1500
# Content-Type: application/hal+json
# --- Name: order by PK desc
# GET /cd?order=me.cdid%20desc
# Vary: Accept
# Content-Length: 1500
# Content-Type: application/hal+json
# --- Name: order by year desc and title desc
# GET /cd?sort=me.year%20desc,title%20desc
# Vary: Accept
# Content-Length: 1500
# Content-Type: application/hal+json
# --- Name: order by field in a relation (and the primary set for test stability)
# GET /cd?prefetch=artist&sort=artist.name,cdid
# Vary: Accept
# Content-Length: 1955
# Content-Type: application/hal+json
# --- Name: order by field in two relations
# GET /cd?prefetch=artist,genre&order=-genre.name,artist.name
# Vary: Accept
# Content-Length: 2139
# Content-Type: application/hal+json
ok 1 - 30-ordering-req.t output in t/media-hal/30-ordering-req.got matches t/media-hal/30-ordering-req.exp
1..1
ok 2 - ===== Ordering =====
1..2
ok
TestSchema::Result::Artist relationship cds_90s has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/40-prefetch-req.t ...........
importing fixtures
- deleting existing temp directory /tmp/BeN0Ycmm4f
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Prefetch =====
# --- Config:
# --- Name: prefetch on an item using two belongs_to relationships
# GET /cd/1?prefetch=artist,genre
# Vary: Accept
# Content-Length: 402
# Content-Type: application/hal+json
# --- Name: prefetch on a set using two belongs_to relationships
# GET /cd?rows=2&page=1&prefetch=artist,genre
# Vary: Accept
# Content-Length: 947
# Content-Type: application/hal+json
# --- Name: filter on prefetched relation field
# GET /cd?prefetch=artist&artist.name=Random+Boy+Band
# Vary: Accept
# Content-Length: 480
# Content-Type: application/hal+json
# --- Name: filter on prefetch with JSON
# GET /cd?prefetch=artist&artist.name~json=%7B%22like%22%3A%22%25Band%22%7D
# Vary: Accept
# Content-Length: 480
# Content-Type: application/hal+json
# --- Name: multi type relation (has_many) in prefetch on item
# GET /artist/1?prefetch=cds&order=cds.cdid
# Vary: Accept
# Content-Length: 1022
# Content-Type: application/hal+json
# --- Name: multi type relation (has_many) in prefetch on set
# GET /artist?prefetch=cds&order=me.artistid,cds.cdid&rows=2
# Vary: Accept
# Content-Length: 1658
# Content-Type: application/hal+json
# --- Name: multi type relation in prefetch on item (many_to_many via JSON) ArrayRef Syntax
# GET /cd/1?sort=cd_to_producer.producer&prefetch~json=%5B%7B%22cd_to_producer%22%3A%22producer%22%7D%5D
# Vary: Accept
# Content-Length: 940
# Content-Type: application/hal+json
# --- Name: multi type relation in prefetch on item (many_to_many via JSON) HashRef Syntax
# GET /cd/1?sort=cd_to_producer.producer&prefetch~json=%7B%22cd_to_producer%22%3A%22producer%22%7D
# Vary: Accept
# Content-Length: 940
# Content-Type: application/hal+json
# --- Name: filter on nested prefetch
# GET /artist?rows=2&producer.name=Matt+S+Trout&prefetch~json=%7B%22cds%22%3A%7B%22cd_to_producer%22%3A%22producer%22%7D%7D&cds.year~json=%7B%22%3E%22%3A%220996%22%7D
# Vary: Accept
# Content-Length: 827
# Content-Type: application/hal+json
# --- Name: prefetch with query on ambiguous field
# GET /cd/?me.artist=1&prefetch=artist
# Vary: Accept
# Content-Length: 1220
# Content-Type: application/hal+json
# --- Name: prefetch on invalid name
# GET /cd/1?prefetch=nonesuch
# Content-Length: 389
# Content-Type: application/json
# --- Name: prefetch on set with partial response of prefetched items
# GET /cd?rows=2&page=1&prefetch=artist,genre&fields=cdid,artist,genreid,genre.genreid,artist.artistid
# Vary: Accept
# Content-Length: 686
# Content-Type: application/hal+json
# --- Name: prefetch on item with partial response of prefetched item
# GET /cd/1?prefetch=artist,genre&fields=cdid,artist,genreid,artist.artistid,genre.genreid
# Vary: Accept
# Content-Length: 273
# Content-Type: application/hal+json
# --- Name: prefetch on item with id primary key #28
# GET /country/1?prefetch=cities
# Vary: Accept
# Content-Length: 241
# Content-Type: application/hal+json
ok 1 - 40-prefetch-req.t output in t/media-hal/40-prefetch-req.got matches t/media-hal/40-prefetch-req.exp
1..1
ok 2 - ===== Prefetch =====
1..2
ok
TestSchema::Result::Artist relationship cds_90s has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/50-modify-req.t .............
importing fixtures
- deleting existing temp directory /tmp/Fkx_Z4o8je
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Create - POST =====
# GET /artist
ok 1
ok 2 - response is a ref
ok 3 - data isn't a hash
ok 4 - _embedded isn't hash
ok 5 - _embedded has artist array
ok 6 - set has at least 2 items
ok 7 - /artist includes 1
ok 8 - /artist includes 2
ok 9 - /artist includes 3
ok 10 - /artist data looks sane
# plain post
# POST /artist
ok 11
ok 12 - has Location header
ok 13 - no data returned without prefetch
# GET /artist/7
ok 14
ok 15 - response is a ref
ok 16 - new item has id
ok 17 - new item has new id
ok 18
ok 19
# post with prefetch=self
# POST /artist?prefetch=self
ok 20
ok 21 - has Location header
ok 22 - response is a ref
# GET /artist/8
ok 23
ok 24 - response is a ref
ok 25 - new item has id
ok 26 - new item has new id
ok 27
ok 28
ok 29 - returned prefetch matches item at location
# ===== Update - PUT =====
# put without prefetch=self
# PUT /artist/8
ok 30
ok 31 - no response body
# GET /artist/8
ok 32
ok 33 - response is a ref
ok 34
# put with prefetch=self
# PUT /artist/8?prefetch=self
ok 35
ok 36 - response is a ref
ok 37 - has response body
ok 38 - prefetch response has updated rank
# GET /artist/8
ok 39
ok 40 - response is a ref
ok 41 - returned prefetch matches item at location
# ===== Delete - DELETE =====
# DELETE /artist/7
ok 42
ok 43 - no response body
# GET /person_types/7
ok 44
# DELETE /artist/8
ok 45
ok 46 - no response body
# GET /person_types/8
ok 47
1..47
ok 2 - ===== Create - POST =====
1..2
ok
TestSchema::Result::Track relationship next_tracks has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/52-post_rel-req.t ...........
importing fixtures
- deleting existing temp directory /tmp/KDd_q40ybt
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Create item, with embedded items, by POST to set =====
# POST /track?rollback=1
ok 1
ok 2 - has Location header
ok 3 - returns reasonable Location
ok 4 - returns no data
# POST /track?rollback=1&prefetch=self
ok 5
ok 6 - has Location header
ok 7 - response is a ref
ok 8 - returns reasonable Location
ok 9 - return data
ok 10 - has trackid assigned
ok 11
ok 12
ok 13 - has cd assigned
ok 14 - has no _embedded
# POST /track?rollback=1&prefetch=self,disc
ok 15
ok 16 - has Location header
ok 17 - response is a ref
ok 18 - returns reasonable Location
ok 19 - return data
ok 20 - has trackid assigned
ok 21
ok 22
ok 23 - has cd assigned
ok 24 - has _embedded
ok 25
ok 26 - has _embedded disc
ok 27 - disc matches
ok 28 - disc name matches
1..28
ok 2 - ===== Create item, with embedded items, by POST to set =====
1..2
ok
TestSchema::Result::Track relationship next_tracks has coderef-based condition which is not handled yet - unknown crosstable_cond_key
t/media-hal/53-put_rel-req.t ............
importing fixtures
- deleting existing temp directory /tmp/CaF8VPG9tn
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Update a resource and related resources via PUT =====
# --- Config:
# --- Name: POST to the set to create a Track to edit (on an existing CD)
# POST /track?prefetch=self
# Location: /track/19
# Vary: Accept
# Content-Length: 254
# Content-Type: application/hal+json
# --- Name: update the title (19 hardwired for now) and prefetch self and disc
# PUT /track/19?prefetch=self,disc
# Vary: Accept
# Content-Length: 377
# Content-Type: application/hal+json
# --- Name: update the track id (primary key)
# PUT /track/19?prefetch=self
# Vary: Accept
# Content-Length: 268
# Content-Type: application/hal+json
# --- Name: delete the track we just added
# DELETE /track/1900
# Vary: Accept
# Content-Type: application/hal+json
ok 1 - 53-put_rel-req.t output in t/media-hal/53-put_rel-req.got matches t/media-hal/53-put_rel-req.exp
# POST /track?prefetch=self
ok 2
ok 3 - has Location header
ok 4 - response is a ref
# PUT /track/19?prefetch=self,disc
ok 5
ok 6 - response is a ref
ok 7 - return data
ok 8 - has trackid assigned
ok 9
ok 10 - has same position assigned
# recheck data as a separate request
# GET /track/19?prefetch=self,disc
ok 11
ok 12 - response is a ref
ok 13 - has trackid assigned
ok 14
ok 15 - has same position assigned
# DELETE /track/19
ok 16
1..16
ok 2 - ===== Update a resource and related resources via PUT =====
1..2
ok
t/media-hal/90-root-req.t ...............
# Subtest: ===== basics - specs =====
# --- Config:
# --- Name: get root url as html
# GET /
# Location: browser/browser.html#/
# Vary: Accept
# Content-Length: 0
# Content-Type: text/html
# --- Config:
# --- Name: get root url as hal+json
# GET /
# Vary: Accept
# Content-Length: 1678
# Content-Type: application/hal+json
ok 1 - 90-root-req.t output in t/media-hal/90-root-req.got matches t/media-hal/90-root-req.exp
1..1
ok 1 - ===== basics - specs =====
1..1
ok
t/media-jsonapi/10-basics-req.t .........
importing fixtures
- deleting existing temp directory /tmp/sgno9eA946
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== basics - specs =====
# --- Config:
# --- Name: get single item
# GET /artist/1
# Vary: Accept
# Content-Length: 124
# Content-Type: application/vnd.api+json
# --- Name: get different single item
# GET /artist/2
# Vary: Accept
# Content-Length: 121
# Content-Type: application/vnd.api+json
# --- Name: get set of items
# GET /artist
# Vary: Accept
# Content-Length: 650
# Content-Type: application/vnd.api+json
# --- Name: get item with multi-field key
# GET /gig/1/2014-01-01T01:01:01Z
# Vary: Accept
# Content-Length: 119
# Content-Type: application/vnd.api+json
# --- Name: get different item with multi-field key
# GET /gig/2/2014-06-30T19:00:00Z
# Vary: Accept
# Content-Length: 119
# Content-Type: application/vnd.api+json
# --- Name: get view data
# GET /classic_albums
# Vary: Accept
# Content-Length: 515
# Content-Type: application/vnd.api+json
ok 1 - 10-basics-req.t output in t/media-jsonapi/10-basics-req.got matches t/media-jsonapi/10-basics-req.exp
1..1
ok 2 - ===== basics - specs =====
1..2
ok
Result class TestSchema::Result::CD_to_Producer has multiple keys (cd producer) so relations like cd_to_producer won't have links generated.
t/media-jsonapi/40-prefetch-req.t .......
importing fixtures
- deleting existing temp directory /tmp/uAM6u9KKLv
- creating temp dir
- adding Artist
- adding Country
- adding Genre
- adding Producer
- adding City
- adding Gig
- adding Track
- adding CD
- adding ClassicAlbums
- adding CD_to_Producer
- fixtures imported
- cleaning up
ok 1 - Fixtures Installed
# Subtest: ===== Prefetch =====
# --- Config:
# --- Name: prefetch on an item using two belongs_to relationships
# GET /cd/1?prefetch=artist,genre
# Vary: Accept
# Content-Length: 512
# Content-Type: application/vnd.api+json
# --- Name: prefetch on a set using two belongs_to relationships
# GET /cd?rows=2&page=1&prefetch=artist,genre
# Vary: Accept
# Content-Length: 742
# Content-Type: application/vnd.api+json
# --- Name: filter on prefetched relation field
# GET /cd?prefetch=artist&artist.name=Random+Boy+Band
# Vary: Accept
# Content-Length: 374
# Content-Type: application/vnd.api+json
# --- Name: filter on prefetch with JSON
# GET /cd?prefetch=artist&artist.name~json=%7B%22like%22%3A%22%25Band%22%7D
# Vary: Accept
# Content-Length: 374
# Content-Type: application/vnd.api+json
# --- Name: multi type relation (has_many) in prefetch on item
# GET /artist/1?prefetch=cds&order=cds.cdid
# Vary: Accept
# Content-Length: 628
# Content-Type: application/vnd.api+json
# --- Name: multi type relation (has_many) in prefetch on set
# GET /artist?prefetch=cds&order=me.artistid,cds.cdid&rows=2
# Vary: Accept
# Content-Length: 897
# Content-Type: application/vnd.api+json
# --- Name: multi type relation in prefetch on item (many_to_many via JSON) ArrayRef Syntax
# GET /cd/1?prefetch~json=%5B%7B%22cd_to_producer%22%3A%22producer%22%7D%5D
# Vary: Accept
# Content-Length: 137
# Content-Type: application/vnd.api+json
# --- Name: multi type relation in prefetch on item (many_to_many via JSON) HashRef Syntax
# GET /cd/1?prefetch~json=%7B%22cd_to_producer%22%3A%22producer%22%7D
# Vary: Accept
# Content-Length: 137
# Content-Type: application/vnd.api+json
# --- Name: filter on nested prefetch
# GET /artist?rows=2&producer.name=Matt+S+Trout&prefetch~json=%7B%22cds%22%3A%7B%22cd_to_producer%22%3A%22producer%22%7D%7D&cds.year~json=%7B%22%3E%22%3A%220996%22%7D
# Vary: Accept
# Content-Length: 365
# Content-Type: application/vnd.api+json
# --- Name: prefetch with query on ambiguous field
# GET /cd/?me.artist=1&prefetch=artist
# Vary: Accept
# Content-Length: 666
# Content-Type: application/vnd.api+json
# --- Name: prefetch on invalid name
# GET /cd/1?prefetch=nonesuch
# Content-Length: 389
# Content-Type: application/json
# --- Name: prefetch on set with partial response of prefetched items
# GET /cd?rows=2&page=1&prefetch=artist,genre&fields=cdid,artist,genreid,genre.genreid,artist.artistid
# Vary: Accept
# Content-Length: 536
# Content-Type: application/vnd.api+json
# --- Name: prefetch on item with partial response of prefetched item
# GET /cd/1?prefetch=artist,genre&fields=cdid,artist,genreid,artist.artistid,genre.genreid
# Vary: Accept
# Content-Length: 383
# Content-Type: application/vnd.api+json
# --- Name: prefetch on item with id primary key #28
# GET /country/1?prefetch=cities
# Vary: Accept
# Content-Length: 272
# Content-Type: application/vnd.api+json
ok 1 - 40-prefetch-req.t output in t/media-jsonapi/40-prefetch-req.got matches t/media-jsonapi/40-prefetch-req.exp
1..1
ok 2 - ===== Prefetch =====
1..2
ok
t/release-pod-syntax.t .................. skipped: these tests are for release candidate testing
All tests successful.
Files=27, Tests=151, 86 wallclock secs ( 0.21 usr 0.06 sys + 40.74 cusr 4.62 csys = 45.63 CPU)
Result: PASS
TIMB/WebAPI-DBIC-0.004002.tar.gz
make test TEST_VERBOSE=1 -- OK
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/id/T/TI/TIMB/CHECKSUMS
Tim Bunce <Tim.Bunce@pobox.com>
A composable RESTful JSON API to DBIx::Class schemas using roles and Web::Machine
>>> (cd /Users/fly2200/cpanfly-5.22/var/tmp/cpan_build/WebAPI-DBIC-0.004002-qT3xPz && tar cvf - WebAPI-DBIC-0.004002.ppd blib) | gzip -c >/Users/fly2200/cpanfly-5.22/var/REPO/T/TI/TIMB/WebAPI-DBIC-0.004002.tar.gz
WebAPI-DBIC-0.004002.ppd
blib/
blib/lib/
blib/lib/WebAPI/
blib/lib/WebAPI/data_service_api.pod
blib/lib/WebAPI/DBIC/
blib/lib/WebAPI/DBIC/Resource/
blib/lib/WebAPI/DBIC/Resource/ActiveModel/
blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/
blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/DBIC.pm
blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Item.pm
blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/ItemWritable.pm
blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/Set.pm
blib/lib/WebAPI/DBIC/Resource/ActiveModel/Role/SetWritable.pm
blib/lib/WebAPI/DBIC/Resource/ActiveModel.pm
blib/lib/WebAPI/DBIC/Resource/Base.pm
blib/lib/WebAPI/DBIC/Resource/GenericCore.pm
blib/lib/WebAPI/DBIC/Resource/GenericItem.pm
blib/lib/WebAPI/DBIC/Resource/GenericItemInvoke.pm
blib/lib/WebAPI/DBIC/Resource/GenericRoot.pm
blib/lib/WebAPI/DBIC/Resource/GenericSet.pm
blib/lib/WebAPI/DBIC/Resource/GenericSetInvoke.pm
blib/lib/WebAPI/DBIC/Resource/HAL/
blib/lib/WebAPI/DBIC/Resource/HAL/Role/
blib/lib/WebAPI/DBIC/Resource/HAL/Role/DBIC.pm
blib/lib/WebAPI/DBIC/Resource/HAL/Role/Item.pm
blib/lib/WebAPI/DBIC/Resource/HAL/Role/ItemWritable.pm
blib/lib/WebAPI/DBIC/Resource/HAL/Role/Root.pm
blib/lib/WebAPI/DBIC/Resource/HAL/Role/Set.pm
blib/lib/WebAPI/DBIC/Resource/HAL/Role/SetWritable.pm
blib/lib/WebAPI/DBIC/Resource/HAL.pm
blib/lib/WebAPI/DBIC/Resource/JSONAPI/
blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/
blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/DBIC.pm
blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Item.pm
blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/ItemWritable.pm
blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/Set.pm
blib/lib/WebAPI/DBIC/Resource/JSONAPI/Role/SetWritable.pm
blib/lib/WebAPI/DBIC/Resource/JSONAPI.pm
blib/lib/WebAPI/DBIC/Resource/Role/
blib/lib/WebAPI/DBIC/Resource/Role/DBIC.pm
blib/lib/WebAPI/DBIC/Resource/Role/DBICAuth.pm
blib/lib/WebAPI/DBIC/Resource/Role/DBICException.pm
blib/lib/WebAPI/DBIC/Resource/Role/DBICParams.pm
blib/lib/WebAPI/DBIC/Resource/Role/Identity.pm
blib/lib/WebAPI/DBIC/Resource/Role/Item.pm
blib/lib/WebAPI/DBIC/Resource/Role/ItemInvoke.pm
blib/lib/WebAPI/DBIC/Resource/Role/ItemWritable.pm
blib/lib/WebAPI/DBIC/Resource/Role/Relationship.pm
blib/lib/WebAPI/DBIC/Resource/Role/Root.pm
blib/lib/WebAPI/DBIC/Resource/Role/Router.pm
blib/lib/WebAPI/DBIC/Resource/Role/Set.pm
blib/lib/WebAPI/DBIC/Resource/Role/SetInvoke.pm
blib/lib/WebAPI/DBIC/Resource/Role/SetWritable.pm
blib/lib/WebAPI/DBIC/Role/
blib/lib/WebAPI/DBIC/Role/JsonEncoder.pm
blib/lib/WebAPI/DBIC/Role/JsonParams.pm
blib/lib/WebAPI/DBIC/Route.pm
blib/lib/WebAPI/DBIC/RouteMaker.pm
blib/lib/WebAPI/DBIC/Router.pm
blib/lib/WebAPI/DBIC/TypeNamer.pm
blib/lib/WebAPI/DBIC/Util.pm
blib/lib/WebAPI/DBIC/WebApp.pm
blib/lib/WebAPI/DBIC.pm
blib/lib/WebAPI/HTTP/
blib/lib/WebAPI/HTTP/Throwable/
blib/lib/WebAPI/HTTP/Throwable/Factory.pm
blib/lib/WebAPI/HTTP/Throwable/Role/
blib/lib/WebAPI/HTTP/Throwable/Role/JSONBody.pm
blib/lib/WebAPI/NOTES.pod
blib/man3/
blib/man3/WebAPI::data_service_api.3
blib/man3/WebAPI::DBIC.3
blib/man3/WebAPI::DBIC::Resource::ActiveModel.3
blib/man3/WebAPI::DBIC::Resource::ActiveModel::Role::DBIC.3
blib/man3/WebAPI::DBIC::Resource::ActiveModel::Role::Item.3
blib/man3/WebAPI::DBIC::Resource::ActiveModel::Role::ItemWritable.3
blib/man3/WebAPI::DBIC::Resource::ActiveModel::Role::Set.3
blib/man3/WebAPI::DBIC::Resource::ActiveModel::Role::SetWritable.3
blib/man3/WebAPI::DBIC::Resource::Base.3
blib/man3/WebAPI::DBIC::Resource::GenericCore.3
blib/man3/WebAPI::DBIC::Resource::GenericItem.3
blib/man3/WebAPI::DBIC::Resource::GenericItemInvoke.3
blib/man3/WebAPI::DBIC::Resource::GenericRoot.3
blib/man3/WebAPI::DBIC::Resource::GenericSet.3
blib/man3/WebAPI::DBIC::Resource::GenericSetInvoke.3
blib/man3/WebAPI::DBIC::Resource::HAL.3
blib/man3/WebAPI::DBIC::Resource::HAL::Role::DBIC.3
blib/man3/WebAPI::DBIC::Resource::HAL::Role::Item.3
blib/man3/WebAPI::DBIC::Resource::HAL::Role::ItemWritable.3
blib/man3/WebAPI::DBIC::Resource::HAL::Role::Root.3
blib/man3/WebAPI::DBIC::Resource::HAL::Role::Set.3
blib/man3/WebAPI::DBIC::Resource::HAL::Role::SetWritable.3
blib/man3/WebAPI::DBIC::Resource::JSONAPI.3
blib/man3/WebAPI::DBIC::Resource::JSONAPI::Role::DBIC.3
blib/man3/WebAPI::DBIC::Resource::JSONAPI::Role::Item.3
blib/man3/WebAPI::DBIC::Resource::JSONAPI::Role::ItemWritable.3
blib/man3/WebAPI::DBIC::Resource::JSONAPI::Role::Set.3
blib/man3/WebAPI::DBIC::Resource::JSONAPI::Role::SetWritable.3
blib/man3/WebAPI::DBIC::Resource::Role::DBIC.3
blib/man3/WebAPI::DBIC::Resource::Role::DBICAuth.3
blib/man3/WebAPI::DBIC::Resource::Role::DBICException.3
blib/man3/WebAPI::DBIC::Resource::Role::DBICParams.3
blib/man3/WebAPI::DBIC::Resource::Role::Identity.3
blib/man3/WebAPI::DBIC::Resource::Role::Item.3
blib/man3/WebAPI::DBIC::Resource::Role::ItemInvoke.3
blib/man3/WebAPI::DBIC::Resource::Role::ItemWritable.3
blib/man3/WebAPI::DBIC::Resource::Role::Relationship.3
blib/man3/WebAPI::DBIC::Resource::Role::Root.3
blib/man3/WebAPI::DBIC::Resource::Role::Router.3
blib/man3/WebAPI::DBIC::Resource::Role::Set.3
blib/man3/WebAPI::DBIC::Resource::Role::SetInvoke.3
blib/man3/WebAPI::DBIC::Resource::Role::SetWritable.3
blib/man3/WebAPI::DBIC::Role::JsonEncoder.3
blib/man3/WebAPI::DBIC::Role::JsonParams.3
blib/man3/WebAPI::DBIC::Route.3
blib/man3/WebAPI::DBIC::RouteMaker.3
blib/man3/WebAPI::DBIC::Router.3
blib/man3/WebAPI::DBIC::TypeNamer.3
blib/man3/WebAPI::DBIC::Util.3
blib/man3/WebAPI::DBIC::WebApp.3
blib/man3/WebAPI::HTTP::Throwable::Factory.3
blib/man3/WebAPI::HTTP::Throwable::Role::JSONBody.3
blib/man3/WebAPI::NOTES.3
Finished 2017-01-25T00:50:33