PATH=C:\mingw\bin;C:\cygwin\bin;C:\cpanfly-5.18\var\megalib\bin;C:\Perl64-5.18\site\bin;C:\Perl64-5.18\bin;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\PROGRA~2\Perforce;C:\instantclient_11_2;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\PROGRA~2\Perforce;C:\mysql\bin Start 2015-02-13T05:06:11 ActivePerl-1800 CPAN-2.00 PATH=C:/CPANFL~1.18/var/libs/bin;C:\mingw\bin;C:\cygwin\bin;C:\CPANFL~1.18\var\megalib\bin;C:\Perl64-5.18\site\bin;C:\Perl64-5.18\bin;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~1\v1.0;C:\PROGRA~2\Perforce;C:\INSTAN~1;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~1\v1.0;C:\PROGRA~2\Perforce;C:\mysql\bin Reading 'C:\cpanfly-5.18\var\cpan\Metadata' Database was generated on Fri, 13 Feb 2015 08:17:02 GMT Running make for D/DW/DWHEELER/App-Sqitch-0.999.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/D/DW/DWHEELER/App-Sqitch-0.999.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/D/DW/DWHEELER/CHECKSUMS Checksum for C:\cpanfly-5.18\var\cpan\sources\authors\id\D\DW\DWHEELER\App-Sqitch-0.999.tar.gz ok App-Sqitch-0.999/t App-Sqitch-0.999/t/x.t App-Sqitch-0.999/t/pg.t App-Sqitch-0.999 App-Sqitch-0.999/README App-Sqitch-0.999/Changes App-Sqitch-0.999/t/add.t App-Sqitch-0.999/t/log.t App-Sqitch-0.999/t/tag.t App-Sqitch-0.999/LICENSE App-Sqitch-0.999/t/base.t App-Sqitch-0.999/t/die.pl App-Sqitch-0.999/t/help.t App-Sqitch-0.999/t/init.t App-Sqitch-0.999/t/plan.t App-Sqitch-0.999/t/show.t App-Sqitch-0.999/t/sqitch App-Sqitch-0.999/META.yml App-Sqitch-0.999/MANIFEST App-Sqitch-0.999/Build.PL App-Sqitch-0.999/README.md App-Sqitch-0.999/t/blank.t App-Sqitch-0.999/t/echo.pl App-Sqitch-0.999/t/mysql.t App-Sqitch-0.999/t/read.pl App-Sqitch-0.999/META.json App-Sqitch-0.999/bin App-Sqitch-0.999/bin/sqitch App-Sqitch-0.999/t/bundle.t App-Sqitch-0.999/t/change.t App-Sqitch-0.999/t/config.t App-Sqitch-0.999/t/depend.t App-Sqitch-0.999/t/deploy.t App-Sqitch-0.999/t/engine.t App-Sqitch-0.999/t/oracle.t App-Sqitch-0.999/t/pragma.t App-Sqitch-0.999/t/rebase.t App-Sqitch-0.999/t/revert.t App-Sqitch-0.999/t/rework.t App-Sqitch-0.999/t/sqlite.t App-Sqitch-0.999/t/status.t App-Sqitch-0.999/t/target.t App-Sqitch-0.999/t/verify.t App-Sqitch-0.999/t/command.t App-Sqitch-0.999/t/options.t App-Sqitch-0.999/t/tag_cmd.t App-Sqitch-0.999/t/upgrade.t App-Sqitch-0.999/t/user.conf App-Sqitch-0.999/t/vertica.t App-Sqitch-0.999/t/checkout.t App-Sqitch-0.999/t/datetime.t App-Sqitch-0.999/t/firebird.t App-Sqitch-0.999/t/linelist.t App-Sqitch-0.999/t/local.conf App-Sqitch-0.999/t/engine.conf App-Sqitch-0.999/t/rework.conf App-Sqitch-0.999/t/sqitch.conf App-Sqitch-0.999/t/target.conf App-Sqitch-0.999/lib App-Sqitch-0.999/lib/sqitch.pod App-Sqitch-0.999/t/changelist.t App-Sqitch-0.999/t/engine_cmd.t App-Sqitch-0.999/t/target_cmd.t App-Sqitch-0.999/dist App-Sqitch-0.999/dist/sqitch.spec App-Sqitch-0.999/t/plan_command.t App-Sqitch-0.999/t/templates.conf App-Sqitch-0.999/xt/release App-Sqitch-0.999/xt/release/pod.t App-Sqitch-0.999/lib/App App-Sqitch-0.999/lib/App/Sqitch.pm App-Sqitch-0.999/t/add_change.conf App-Sqitch-0.999/t/configuration.t App-Sqitch-0.999/t/sql App-Sqitch-0.999/t/sql/sqitch.plan App-Sqitch-0.999/lib/sqitch-add.pod App-Sqitch-0.999/lib/sqitch-log.pod App-Sqitch-0.999/lib/sqitch-tag.pod App-Sqitch-0.999/t/item_formatter.t App-Sqitch-0.999/t/plans App-Sqitch-0.999/t/plans/multi.plan App-Sqitch-0.999/lib/sqitch-help.pod App-Sqitch-0.999/lib/sqitch-init.pod App-Sqitch-0.999/lib/sqitch-plan.pod App-Sqitch-0.999/lib/sqitch-show.pod App-Sqitch-0.999/lib/sqitchusage.pod App-Sqitch-0.999/lib/App/Sqitch App-Sqitch-0.999/lib/App/Sqitch/X.pm App-Sqitch-0.999/t/lib App-Sqitch-0.999/t/lib/MockOutput.pm App-Sqitch-0.999/lib/sqitchguides.pod App-Sqitch-0.999/t/engine App-Sqitch-0.999/t/engine/sqitch.plan App-Sqitch-0.999/t/plans/pragmas.plan App-Sqitch-0.999/t/plans/widgets.plan App-Sqitch-0.999/lib/sqitch-bundle.pod App-Sqitch-0.999/lib/sqitch-config.pod App-Sqitch-0.999/lib/sqitch-deploy.pod App-Sqitch-0.999/lib/sqitch-engine.pod App-Sqitch-0.999/lib/sqitch-rebase.pod App-Sqitch-0.999/lib/sqitch-revert.pod App-Sqitch-0.999/lib/sqitch-rework.pod App-Sqitch-0.999/lib/sqitch-status.pod App-Sqitch-0.999/lib/sqitch-target.pod App-Sqitch-0.999/lib/sqitch-verify.pod App-Sqitch-0.999/lib/sqitchchanges.pod App-Sqitch-0.999/t/plans/dupe-tag.plan App-Sqitch-0.999/lib/sqitch-upgrade.pod App-Sqitch-0.999/lib/sqitchcommands.pod App-Sqitch-0.999/lib/sqitchtutorial.pod App-Sqitch-0.999/lib/App/Sqitch/Plan.pm App-Sqitch-0.999/t/lib/DBIEngineTest.pm App-Sqitch-0.999/t/sql/deploy App-Sqitch-0.999/t/sql/deploy/roles.sql App-Sqitch-0.999/t/sql/deploy/users.sql App-Sqitch-0.999/t/sql/verify App-Sqitch-0.999/t/sql/verify/users.sql App-Sqitch-0.999/lib/sqitch-checkout.pod App-Sqitch-0.999/lib/App/Sqitch/Types.pm App-Sqitch-0.999/t/plans/bad-change.plan App-Sqitch-0.999/lib/sqitch-add-usage.pod App-Sqitch-0.999/lib/sqitch-log-usage.pod App-Sqitch-0.999/lib/sqitch-passwords.pod App-Sqitch-0.999/lib/sqitch-tag-usage.pod App-Sqitch-0.999/lib/App/Sqitch/Config.pm App-Sqitch-0.999/lib/App/Sqitch/Engine.pm App-Sqitch-0.999/lib/App/Sqitch/Target.pm App-Sqitch-0.999/t/plans/dupe-change.plan App-Sqitch-0.999/t/sql/deploy/widgets.sql App-Sqitch-0.999/lib/sqitch-help-usage.pod App-Sqitch-0.999/lib/sqitch-init-usage.pod App-Sqitch-0.999/lib/sqitch-plan-usage.pod App-Sqitch-0.999/lib/sqitch-show-usage.pod App-Sqitch-0.999/lib/App/Sqitch/Command.pm App-Sqitch-0.999/t/engine/deploy App-Sqitch-0.999/t/engine/deploy/users.sql App-Sqitch-0.999/t/engine/revert App-Sqitch-0.999/t/engine/revert/users.sql App-Sqitch-0.999/t/plans/changes-only.plan App-Sqitch-0.999/t/plans/dependencies.plan App-Sqitch-0.999/t/plans/project_deps.plan App-Sqitch-0.999/t/plans/reserved-tag.plan App-Sqitch-0.999/xt/release/pod-coverage.t App-Sqitch-0.999/xt/release/pod-spelling.t App-Sqitch-0.999/inc/Module/Build App-Sqitch-0.999/inc/Module/Build/Sqitch.pm App-Sqitch-0.999/lib/sqitch-environment.pod App-Sqitch-0.999/lib/App/Sqitch/DateTime.pm App-Sqitch-0.999/lib/App/Sqitch/Plan App-Sqitch-0.999/lib/App/Sqitch/Plan/Tag.pm App-Sqitch-0.999/lib/sqitch-bundle-usage.pod App-Sqitch-0.999/lib/sqitch-config-usage.pod App-Sqitch-0.999/lib/sqitch-deploy-usage.pod App-Sqitch-0.999/lib/sqitch-engine-usage.pod App-Sqitch-0.999/lib/sqitch-rebase-usage.pod App-Sqitch-0.999/lib/sqitch-revert-usage.pod App-Sqitch-0.999/lib/sqitch-rework-usage.pod App-Sqitch-0.999/lib/sqitch-status-usage.pod App-Sqitch-0.999/lib/sqitch-target-usage.pod App-Sqitch-0.999/lib/sqitch-verify-usage.pod App-Sqitch-0.999/lib/App/Sqitch/Engine App-Sqitch-0.999/lib/App/Sqitch/Engine/pg.pm App-Sqitch-0.999/lib/App/Sqitch/Plan/Line.pm App-Sqitch-0.999/t/engine/deploy/widgets.sql App-Sqitch-0.999/t/engine/revert/widgets.sql App-Sqitch-0.999/etc/templates/deploy App-Sqitch-0.999/etc/templates/deploy/pg.tmpl App-Sqitch-0.999/etc/templates/revert App-Sqitch-0.999/etc/templates/revert/pg.tmpl App-Sqitch-0.999/etc/templates/verify App-Sqitch-0.999/etc/templates/verify/pg.tmpl App-Sqitch-0.999/lib/sqitch-configuration.pod App-Sqitch-0.999/lib/sqitch-upgrade-usage.pod App-Sqitch-0.999/lib/sqitchtutorial-mysql.pod App-Sqitch-0.999/lib/App/Sqitch/Engine/pg.sql App-Sqitch-0.999/lib/App/Sqitch/Plan/Blank.pm App-Sqitch-0.999/lib/sqitch-checkout-usage.pod App-Sqitch-0.999/lib/sqitchtutorial-oracle.pod App-Sqitch-0.999/lib/sqitchtutorial-sqlite.pod App-Sqitch-0.999/lib/App/Sqitch/Command App-Sqitch-0.999/lib/App/Sqitch/Command/add.pm App-Sqitch-0.999/lib/App/Sqitch/Command/log.pm App-Sqitch-0.999/lib/App/Sqitch/Command/tag.pm App-Sqitch-0.999/lib/App/Sqitch/Plan/Change.pm App-Sqitch-0.999/lib/App/Sqitch/Plan/Depend.pm App-Sqitch-0.999/lib/App/Sqitch/Plan/Pragma.pm App-Sqitch-0.999/lib/sqitchtutorial-vertica.pod App-Sqitch-0.999/lib/App/Sqitch/Command/help.pm App-Sqitch-0.999/lib/App/Sqitch/Command/init.pm App-Sqitch-0.999/lib/App/Sqitch/Command/plan.pm App-Sqitch-0.999/lib/App/Sqitch/Command/show.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/mysql.pm App-Sqitch-0.999/t/lib/App/Sqitch/Engine App-Sqitch-0.999/t/lib/App/Sqitch/Engine/bad.pm App-Sqitch-0.999/t/plans/deploy-and-revert.plan App-Sqitch-0.999/etc/templates/deploy/mysql.tmpl App-Sqitch-0.999/etc/templates/revert/mysql.tmpl App-Sqitch-0.999/etc/templates/verify/mysql.tmpl App-Sqitch-0.999/lib/sqitchtutorial-firebird.pod App-Sqitch-0.999/lib/App/Sqitch/ItemFormatter.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/mysql.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/oracle.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/sqlite.pm App-Sqitch-0.999/lib/App/Sqitch/Plan/LineList.pm App-Sqitch-0.999/t/lib/App/Sqitch/Command App-Sqitch-0.999/t/lib/App/Sqitch/Command/bad.pm App-Sqitch-0.999/t/lib/App/Sqitch/Engine/good.pm App-Sqitch-0.999/etc/templates/deploy/oracle.tmpl App-Sqitch-0.999/etc/templates/deploy/sqlite.tmpl App-Sqitch-0.999/etc/templates/revert/oracle.tmpl App-Sqitch-0.999/etc/templates/revert/sqlite.tmpl App-Sqitch-0.999/etc/templates/verify/oracle.tmpl App-Sqitch-0.999/etc/templates/verify/sqlite.tmpl App-Sqitch-0.999/lib/App/Sqitch/Command/bundle.pm App-Sqitch-0.999/lib/App/Sqitch/Command/config.pm App-Sqitch-0.999/lib/App/Sqitch/Command/deploy.pm App-Sqitch-0.999/lib/App/Sqitch/Command/engine.pm App-Sqitch-0.999/lib/App/Sqitch/Command/rebase.pm App-Sqitch-0.999/lib/App/Sqitch/Command/revert.pm App-Sqitch-0.999/lib/App/Sqitch/Command/rework.pm App-Sqitch-0.999/lib/App/Sqitch/Command/status.pm App-Sqitch-0.999/lib/App/Sqitch/Command/target.pm App-Sqitch-0.999/lib/App/Sqitch/Command/verify.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/oracle.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/sqlite.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/vertica.pm App-Sqitch-0.999/lib/App/Sqitch/Role App-Sqitch-0.999/lib/App/Sqitch/Role/DBIEngine.pm App-Sqitch-0.999/t/lib/App/Sqitch/Command/good.pm App-Sqitch-0.999/etc/templates/deploy/vertica.tmpl App-Sqitch-0.999/etc/templates/revert/vertica.tmpl App-Sqitch-0.999/etc/templates/verify/vertica.tmpl App-Sqitch-0.999/lib/App/Sqitch/Command/upgrade.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/firebird.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/vertica.sql App-Sqitch-0.999/lib/App/Sqitch/Plan/ChangeList.pm App-Sqitch-0.999/t/engine/deploy/func App-Sqitch-0.999/t/engine/deploy/func/add_user.sql App-Sqitch-0.999/t/engine/revert/func App-Sqitch-0.999/t/engine/revert/func/add_user.sql App-Sqitch-0.999/t/plans/dupe-change-diff-tag.plan App-Sqitch-0.999/etc/templates/deploy/firebird.tmpl App-Sqitch-0.999/etc/templates/revert/firebird.tmpl App-Sqitch-0.999/etc/templates/verify/firebird.tmpl App-Sqitch-0.999/lib/App/Sqitch/Command/checkout.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/firebird.sql App-Sqitch-0.999/t/lib/upgradable_registries App-Sqitch-0.999/t/lib/upgradable_registries/pg.sql App-Sqitch-0.999/t/lib/upgradable_registries/mysql.sql App-Sqitch-0.999/t/lib/upgradable_registries/oracle.sql App-Sqitch-0.999/t/lib/upgradable_registries/sqlite.sql App-Sqitch-0.999/t/lib/upgradable_registries/vertica.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade/pg-1.0.sql App-Sqitch-0.999/t/lib/upgradable_registries/firebird.sql App-Sqitch-0.999/lib/App/Sqitch/Role/RevertDeployCommand.pm App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade/mysql-1.0.sql App-Sqitch-0.999/lib/LocaleData/de/LC_MESSAGES App-Sqitch-0.999/lib/LocaleData/de/LC_MESSAGES/App-Sqitch.mo App-Sqitch-0.999/lib/LocaleData/fr/LC_MESSAGES App-Sqitch-0.999/lib/LocaleData/fr/LC_MESSAGES/App-Sqitch.mo App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade/oracle-1.0.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade/sqlite-1.0.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade/vertica-1.0.sql App-Sqitch-0.999/lib/App/Sqitch/Engine/Upgrade/firebird-1.0.sql CPAN.pm: Building D/DW/DWHEELER/App-Sqitch-0.999.tar.gz >>> C:\Perl64-5.18\bin\perl.exe Build.PL Checking prerequisites... requires: ! IO::Pager is not installed build_requires: ! Config::GitLike (1.12) is installed, but we need version >= 1.15 ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'App-Sqitch' version '0.999' ---- Unsatisfied dependencies detected during ---- ---- DWHEELER/App-Sqitch-0.999.tar.gz ---- IO::Pager [requires] Config::GitLike [requires] Running Build test Delayed until after prerequisites Running test for module 'IO::Pager' Running make for J/JP/JPIERCE/IO-Pager-0.31.tgz Checksum for C:\cpanfly-5.18\var\cpan\sources\authors\id\J\JP\JPIERCE\IO-Pager-0.31.tgz ok IO-Pager-0.31/ IO-Pager-0.31/lib/ IO-Pager-0.31/lib/IO/ IO-Pager-0.31/lib/IO/Pager.pm IO-Pager-0.31/lib/IO/Pager/ IO-Pager-0.31/lib/IO/Pager/Page.pm IO-Pager-0.31/lib/IO/Pager/Unbuffered.pm IO-Pager-0.31/lib/IO/Pager/Buffered.pm IO-Pager-0.31/t/ IO-Pager-0.31/t/10-close_interactive.t IO-Pager-0.31/t/TestUtils.pm IO-Pager-0.31/t/11-redirect-oo.pl IO-Pager-0.31/t/07-oo_interactive.t IO-Pager-0.31/t/09-open.t IO-Pager-0.31/t/02-which_interactive.t IO-Pager-0.31/t/04-buffered_interactive.t IO-Pager-0.31/t/11-redirect-oo.t IO-Pager-0.31/t/01-load.t IO-Pager-0.31/t/02-which.t IO-Pager-0.31/t/03-bald_interactive.t IO-Pager-0.31/t/08-redirect.pl IO-Pager-0.31/t/06-scalar_interactive.t IO-Pager-0.31/t/05-binmode_interactive.t IO-Pager-0.31/t/08-redirect.t IO-Pager-0.31/MANIFEST IO-Pager-0.31/TODO IO-Pager-0.31/CHANGES IO-Pager-0.31/t.pl IO-Pager-0.31/README IO-Pager-0.31/Makefile.PL IO-Pager-0.31/META.yml IO-Pager-0.31/META.json CPAN.pm: Building J/JP/JPIERCE/IO-Pager-0.31.tgz >>> C:\Perl64-5.18\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for IO::Pager Writing MYMETA.yml and MYMETA.json >>> dmake cp lib/IO/Pager/Page.pm blib\lib\IO\Pager\Page.pm cp lib/IO/Pager/Buffered.pm blib\lib\IO\Pager\Buffered.pm cp t.pl blib\lib\IO\t.pl cp lib/IO/Pager/Unbuffered.pm blib\lib\IO\Pager\Unbuffered.pm cp lib/IO/Pager.pm blib\lib\IO\Pager.pm JPIERCE/IO-Pager-0.31.tgz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl64-5.18\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/01-load.t .................. ok 1 - use IO::Pager; ok 2 - use IO::Pager::Unbuffered; ok 3 - use IO::Pager::Buffered; ok 4 - use IO::Pager::Page; 1..4 ok t/02-which.t ................. ok 1 - Undefined PAGER ok 2 - Blank PAGER ok 3 - PAGER does not exist ok 4 - PAGER referred by its full-path ok 5 - PAGER is referred by its executable name ok 6 - PAGER with options 1..6 ok t/02-which_interactive.t ..... ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok t/03-bald_interactive.t ...... ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok t/04-buffered_interactive.t .. ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok t/05-binmode_interactive.t ... ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok t/06-scalar_interactive.t .... ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok t/07-oo_interactive.t ........ ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok t/08-redirect.t .............. ok 1 - Redirection (IO::Pager::Page) 1..1 ok t/09-open.t .................. ok 1 # skip Skiping because Windows has to be different^Wdifficult 1..1 ok t/10-close_interactive.t ..... ok 1 # skip Run 'perl -Mblib t.pl' to perform interactive tests. 1..1 ok # Failed test 'Redirection with OO' # at t/11-redirect-oo.t line 22. # Looks like you failed 1 test of 1. t/11-redirect-oo.t ........... not ok 1 - Redirection with OO 1..1 Dubious, test returned 1 (wstat 256, 0x100) Failed 1/1 subtests Test Summary Report ------------------- t/11-redirect-oo.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 Files=12, Tests=20, 7 wallclock secs ( 0.06 usr + 0.02 sys = 0.08 CPU) Result: FAIL Failed 1/12 test programs. 1/20 subtests failed. dmake: Error code 129, while making 'test_dynamic' JPIERCE/IO-Pager-0.31.tgz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports JPIERCE/IO-Pager-0.31.tgz Running test for module 'Config::GitLike' Running make for A/AL/ALEXMV/Config-GitLike-1.15.tar.gz Checksum for C:\cpanfly-5.18\var\cpan\sources\authors\id\A\AL\ALEXMV\Config-GitLike-1.15.tar.gz ok Config-GitLike-1.15/ Config-GitLike-1.15/Changes Config-GitLike-1.15/META.yml Config-GitLike-1.15/Makefile.PL Config-GitLike-1.15/inc/ Config-GitLike-1.15/inc/Module/ Config-GitLike-1.15/inc/Module/Install.pm Config-GitLike-1.15/inc/Module/Install/ Config-GitLike-1.15/inc/Module/Install/Can.pm Config-GitLike-1.15/inc/Module/Install/WriteAll.pm Config-GitLike-1.15/inc/Module/Install/ExtraTests.pm Config-GitLike-1.15/inc/Module/Install/Base.pm Config-GitLike-1.15/inc/Module/Install/Metadata.pm Config-GitLike-1.15/inc/Module/Install/Win32.pm Config-GitLike-1.15/inc/Module/Install/Makefile.pm Config-GitLike-1.15/inc/Module/Install/Fetch.pm Config-GitLike-1.15/MANIFEST Config-GitLike-1.15/SIGNATURE Config-GitLike-1.15/t/ Config-GitLike-1.15/t/comment.t Config-GitLike-1.15/t/00_use.t Config-GitLike-1.15/t/t1300-repo-config.t Config-GitLike-1.15/t/encoding.t Config-GitLike-1.15/t/lib/ Config-GitLike-1.15/t/lib/TestConfig.pm Config-GitLike-1.15/t/casing.t Config-GitLike-1.15/t/util/ Config-GitLike-1.15/t/util/translate.pl Config-GitLike-1.15/lib/ Config-GitLike-1.15/lib/Config/ Config-GitLike-1.15/lib/Config/GitLike.pm Config-GitLike-1.15/lib/Config/GitLike/ Config-GitLike-1.15/lib/Config/GitLike/Git.pm Config-GitLike-1.15/lib/Config/GitLike/Cascaded.pm CPAN.pm: Building A/AL/ALEXMV/Config-GitLike-1.15.tar.gz >>> C:\Perl64-5.18\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Config::GitLike Writing MYMETA.yml and MYMETA.json >>> dmake cp lib/Config/GitLike/Cascaded.pm blib\lib\Config\GitLike\Cascaded.pm cp lib/Config/GitLike/Git.pm blib\lib\Config\GitLike\Git.pm cp lib/Config/GitLike.pm blib\lib\Config\GitLike.pm ALEXMV/Config-GitLike-1.15.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl64-5.18\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'inc', 'blib\lib', 'blib\arch')" t/*.t t/00_use.t ............. 1..2 ok 1 - use Config::GitLike; ok 2 - use Config::GitLike::Cascaded; ok # Failed test 'Found definition from second file' # at t/casing.t line 54. # got: 'C:/cpanfly-5.18/var/tmp/8Zu1azOvv7/other' # expected: 'C:\cpanfly-5.18\var\tmp\8Zu1azOvv7\other' # Looks like you failed 1 test of 19. t/casing.t ............. ok 1 - mixed-case key is preserved when written ok 2 - Can be referenced with original case ok 3 - Can be referenced with lower case ok 4 - Can be referenced with different case ok 5 - Find original case when asked in original case ok 6 - Find original case when asked in lower case ok 7 - Find original case when asked in different case ok 8 - ->set without ->load does not alter value in ->get not ok 9 - Found definition from second file ok 10 - Loaded value from second file ok 11 - Find new case in second file ok 12 - multiple respects any case ok 13 - mixed-case key is preserved when written as multiple ok 14 - Got original value ok 15 - Got original case ok 16 - Loaded second file ok 17 - Is marked as multiple ok 18 - Got all three new values ok 19 - Got all three new casings 1..19 Dubious, test returned 1 (wstat 256, 0x100) Failed 1/19 subtests t/comment.t ............ ok 1 - comment ok 2 - comment with ws ok 3 - indented comment with newlines and config ok 4 - comment with semicolon 1..4 ok t/encoding.t ........... ok 1 - Value with UTF-8 ok 2 - Get value with UTF-8 1..2 ok t/t1300-repo-config.t .. 1..142 ok 1 - initial ok 2 - mixed case ok 3 - similar section ok 4 - similar section ok 5 - replace with non-match ok 6 - replace with non-match ok 7 - non-match result ok 8 - unset with cont. lines ok 9 - unset with cont. lines is correct ok 10 - multiple unset is correct ok 11 - replace all ok 12 - all replaced ok 13 - really mean test ok 14 - really really mean test ok 15 - get value ok 16 - unset ok 17 - multivar ok 18 - non-match ok 19 - non-match value ok 20 - ambiguous get ok 21 - get multivar ok 22 - multivar replace only the first match ok 23 - ambiguous unset ok 24 - invalid unset ok 25 - multivar unset doesn't crash ok 26 - multivar unset ok 27 - invalid name containing = char ok 28 - invalid name starting with whitespace ok 29 - invalid name ending with whitespace ok 30 - invalid name containing newline ok 31 - can have . char in key if quoted ok 32 - URL key value is correct ok 33 - remove URL key section ok 34 - correct key ok 35 - correct key ok 36 - hierarchical section value ok 37 - working dump ok 38 - dump works in array context ok 39 - --get-regexp ok 40 - --add ok 41 - get variable with no value ok 42 - get variable with empty value ok 43 - get_regexp variable with no value ok 44 - get_regexp variable with empty value ok 45 - get bool variable with no value ok 46 - get bool variable with empty value ok 47 - new section is partial match of another ok 48 - new variable inserts into proper section ok 49 - rename_section lives ok 50 - rename succeeded ok 51 - rename non-existing section ok 52 - rename non-existing section changes nothing ok 53 - rename another section ok 54 - rename succeeded ok 55 - remove section ok 56 - section was removed properly ok 57 - section ending ok 58 - numbers: int k interp ok 59 - numbers: int m interp ok 60 - invalid unit ok 61 - correct true bool from get ok 62 - correct false bool from get ok 63 - correct true bool from get ok 64 - correct false bool from get ok 65 - correct true bool from get ok 66 - correct false bool from get ok 67 - correct true bool from get ok 68 - correct false bool from get ok 69 - invalid bool (get) ok 70 - invalid bool (set) ok 71 - correct true bool from set ok 72 - correct false bool from set ok 73 - correct true bool from set ok 74 - correct false bool from set ok 75 - correct true bool from set ok 76 - correct false bool from set ok 77 - correct true bool from set ok 78 - correct false bool from set ok 79 - set --int ok 80 - get bool-or-int ok 81 - get bool-or-int ok 82 - get bool-or-int ok 83 - get bool-or-int ok 84 - get bool-or-int ok 85 - get bool-or-int ok 86 - get bool-or-int ok 87 - set bool-or-int ok 88 - quoting ok 89 - key with newline ok 90 - value with newline ok 91 - value continued on next line ok 92 # skip windows does *not* support symlink ok 93 # skip windows does *not* support symlink ok 94 - section headers are valid w/out newline ok 95 - get_regexp casting works ok 96 - get_regexp filter works ok 97 - get_all filter works ok 98 - get_all casting works ok 99 - don't strip quotes contained in value ok 100 - int casting truncates ok 101 - num casting doesn't truncate ok 102 - repo config overrides user config ok 103 - user config is loaded ok 104 - global config is loaded and user/repo configs override it ok 105 - basic group_set ok 106 - basic group_set ok 107 - subsection comparison is case-sensitive ok 108 - parse weird characters in section in non-git compat mode ok 109 - set weird characters in section in non-git compat mode ok 110 - variable names cannot contain . in git-compat mode ok 111 - variable names cannot contain symbols in git-compat mode ok 112 - variable names cannot start with a number git-compat mode ok 113 - variable names cannot start with a dash git-compat mode ok 114 - variable names cannot start with a number in git-compat mode ok 115 - variable names cannot contain symbols in git-compat mode ok 116 - variable names cannot contain . in git-compat mode ok 117 - variable names cannot start with - in git-compat mode ok 118 - section names cannot contain symbols in git-compat mode ok 119 - section names cannot contain whitespace in git-compat mode ok 120 - section names can contain - and . in git-compat mode ok 121 - section names cannot contain whitespace in git-compat mode ok 122 - section names cannot contain symbols in git-compat mode ok 123 - section names can contain - and . while setting in git-compat mode ok 124 - subsection names cannot contain unescaped newlines in compat mode ok 125 - subsection names cannot contain unescaped newlines in nocompat mode ok 126 - invalid section (nocompat) ok 127 - invalid section (compat) ok 128 - key cannot contain [] in compat mode ok 129 - key can contain but not start with [ in nocompat mode ok 130 - subsection with escaped backslashes ok 131 - value with doublequote occurs 1 time ok 132 - value with doublequote occurs 2 times ok 133 - value with doublequote occurs 3 times ok 134 - value with backslash occurs 1 time ok 135 - value with backslash occurs 2 times ok 136 - value with backslash occurs 3 times ok 137 - subsection with backslash occurs with 1 time ok 138 - subsection with backslash occurs with 2 times ok 139 - subsection with backslash occurs with 3 times ok 140 - subsection with doublequote occurs with 1 time ok 141 - subsection with doublequote occurs with 2 times ok 142 - subsection with doublequote occurs with 3 times ok Test Summary Report ------------------- t/casing.t (Wstat: 256 Tests: 19 Failed: 1) Failed test: 9 Non-zero exit status: 1 Files=5, Tests=169, 2 wallclock secs ( 0.06 usr + 0.00 sys = 0.06 CPU) Result: FAIL Failed 1/5 test programs. 1/169 subtests failed. dmake: Error code 255, while making 'test_dynamic' ALEXMV/Config-GitLike-1.15.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports ALEXMV/Config-GitLike-1.15.tar.gz Running Build for D/DW/DWHEELER/App-Sqitch-0.999.tar.gz Has already been unwrapped into directory C:\cpanfly-5.18\var\cpan\build\App-Sqitch-0.999-aIOCYg CPAN.pm: Building D/DW/DWHEELER/App-Sqitch-0.999.tar.gz Warning: Prerequisite 'Config::GitLike => 1.15' for 'DWHEELER/App-Sqitch-0.999.tar.gz' failed when processing 'ALEXMV/Config-GitLike-1.15.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. Warning: Prerequisite 'IO::Pager => 0' for 'DWHEELER/App-Sqitch-0.999.tar.gz' failed when processing 'JPIERCE/IO-Pager-0.31.tgz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> C:\Perl64-5.18\bin\perl.exe ./Build Building App-Sqitch DWHEELER/App-Sqitch-0.999.tar.gz C:\Perl64-5.18\bin\perl.exe ./Build -- OK Running Build test >>> C:\Perl64-5.18\bin\perl.exe ./Build test verbose=1 t/add.t ............. 1..163 ok 1 - Load a sqitch sqitch object ok 2 - 'add command' isa 'App::Sqitch::Command::add' ok 3 - App::Sqitch::Command::add->can(...) ok 4 - Options should be set up ok 5 - Should have default configuration with no config or opts ok 6 - Should have get requires and conflicts options ok 7 - Should set up template directory option ok 8 - Should die if --template-directory does not exist ok 9 - Missing directory ident should be "add" ok 10 - Missing directory error message should be correct ok 11 - Should die if --template-directory does is not a dir ok 12 - In alid directory ident should be "add" ok 13 - Invalid directory error message should be correct ok 14 - Should set up template name option ok 15 - Should have get template options ok 16 - Variables should by default not be loaded from config ok 17 - --set should be merged with config variables ok 18 - --set should be override config variables ok 19 - Requires should be an arrayref ok 20 - Conflicts should be an arrayref ok 21 - Notes should be an arrayref ok 22 - Varibles should be a hashref ok 23 - Default dir should be undef ok 24 - Default temlate_name should be engine ok 25 - Default with_scripts should be empty ok 26 - Default templates should be empty ok 27 - '_check_script' isa 'CODE' ok 28 - _check_script should be okay with script ok 29 - _check_script should die on nonexistent file ok 30 - Nonexistent file ident should be "add" ok 31 - Nonexistent file error message should be correct ok 32 - _check_script should die on directory ok 33 - Directory error ident should be "add" ok 34 - Directory error message should be correct ok 35 - Load another sqitch sqitch object ok 36 - Create add with template config ok 37 - Should load the config templates ok 38 - Add object with template directory ok 39 - Template name should be "pg" ok 40 - Should find all templates in directory ok 41 - Add object with template name ok 42 - Should find all templates in user directory ok 43 - Add object with another template name ok 44 - Should find all templates in systsem directory ok 45 - Add object with temporary template directory ok 46 - Template dir files should override others ok 47 - Add object with configured templates ok 48 - Template dir files should override others ok 49 - Add object requiring deploy template ok 50 - Should get error for missing deploy template ok 51 - Missing deploy template ident should be "add" ok 52 - Missing deploy template message should be correct ok 53 - Add object requiring revert template ok 54 - Should get error for missing revert template ok 55 - Missing revert template ident should be "add" ok 56 - Missing revert template message should be correct ok 57 - Add object requiring verify template ok 58 - Should get error for missing verify template ok 59 - Missing verify template ident should be "add" ok 60 - Missing verify template message should be correct ok 61 - _slurp() should load a reference to file contents ok 62 - test-add\sqitch_change_test.sql does not exist ok 63 - Create add command ok 64 - Write out a script ok 65 - test-add\sqitch_change_test.sql exists ok 66 - The template should have been evaluated ok 67 - Info should show $out created ok 68 - Create add cmd with requires and conflicts ok 69 - Write out a script with requires and conflicts ok 70 - Info should show $out created ok 71 - The template should have been evaluated with requires and conflicts ok 72 - test-add\sqitch_change_test.sql does not exist ok 73 - Create add command ok 74 - Write out a script ok 75 - test-add\sqitch_change_test.sql exists ok 76 - The template should have been evaluated ok 77 - Info should show $out created ok 78 - Create add cmd with requires and conflicts ok 79 - Write out a script with requires and conflicts ok 80 - Info should show $out created ok 81 - The template should have been evaluated with requires and conflicts ok 82 - Create add command ok 83 - Should get an exception on TT syntax error ok 84 - TT exception ident should be "add" ok 85 - TT exception message should include the original error message ok 86 - Create another add with template_directory ok 87 - Should not have "widgets_table" in plan ok 88 - dir test-add\deploy does not exist ok 89 - dir test-add\revert does not exist ok 90 - dir test-add\verify does not exist ok 91 - Add change "widgets_table" ok 92 - 'Added change' isa 'App::Sqitch::Plan::Change' ok 93 - Change name should be set ok 94 - It should have no requires ok 95 - It should have no conflicts ok 96 - It should have prompted for a note ok 97 - test-add\deploy\widgets_table.sql exists ok 98 - test-add\revert\widgets_table.sql exists ok 99 - test-add\verify\widgets_table.sql exists ok 100 - Deploy script should look right ok 101 - Revert script should look right ok 102 - Verify script should look right ok 103 - Info should have reported file creation ok 104 - 'Added change in reloaded plan' isa 'App::Sqitch::Plan::Change' ok 105 - Create another add with template_directory and no verify script ok 106 - test-add\deploy\foo_table.sql exists ok 107 - test-add\revert\foo_table.sql does not exist ok 108 - test-add\ferify\foo_table.sql does not exist ok 109 - Should not have "foo_table" in plan ok 110 - Add change "foo_table" ok 111 - test-add\deploy\foo_table.sql exists ok 112 - test-add\revert\foo_table.sql exists ok 113 - test-add\ferify\foo_table.sql does not exist ok 114 - '"foo_table" change' isa 'App::Sqitch::Plan::Change' ok 115 - It should have prompted for a note ok 116 - Change name should be set to "foo_table" ok 117 - It should have requires ok 118 - It should have conflicts ok 119 - It should have a comment ok 120 - Info should report skipping file and include dependencies ok 121 - Create another add with open_editor ok 122 - Should not have "open_editor" in plan ok 123 - Add change "open_editor" ok 124 - 'Added change' isa 'App::Sqitch::Plan::Change' ok 125 - Change name should be set ok 126 - It should have prompted to edit sql files ok 127 - test-add\deploy\open_editor.sql exists ok 128 - test-add\revert\open_editor.sql exists ok 129 - test-add\verify\open_editor.sql exists ok 130 - Deploy script should look right ok 131 - Revert script should look right ok 132 - Verify script should look right ok 133 - Info should have reported file creation ok 134 - Create another add with custom script and no verify ok 135 - Add change "custom_script" ok 136 - 'Added change' isa 'App::Sqitch::Plan::Change' ok 137 - Change name should be set ok 138 - It should have no requires ok 139 - It should have no conflicts ok 140 - It should have prompted for a note ok 141 - test-add\deploy\custom_script.sql exists ok 142 - test-add\revert\custom_script.sql exists ok 143 - test-add\whatev\custom_script.sql exists ok 144 - test-add\verify\custom_script.sql does not exist ok 145 - Deploy script should look right ok 146 - Revert script should look right ok 147 - Whatev script should look right ok 148 - Whatev script should be based on the MySQL verify script ok 149 - Info should have reported file creation ok 150 - 'Added change in reloaded plan' isa 'App::Sqitch::Plan::Change' ok 151 - App::Sqitch::Command::add->can(...) ok 152 - Create a App::Sqitch::Command::add object again ok 153 - Base _parse_opts should return an empty hash ok 154 - _parse_opts() hould use options spec ok 155 - _parse_opts() should parse options spec ok 156 - Args array should be cleared of options ok 157 - _parse_opts() should parse --set options ok 158 - Args array should be cleared of options ok 159 - _parse_opts() should parse --set options with repeting key ok 160 - Args array should be cleared of options ok 161 - _parse_opts() should parse --with, --without, and --user ok 162 - Args array should be cleared of options ok 163 - no warnings ok '--nosuchscript.ply--' is not recognized as an internal or external command, operable program or batch file. t/base.t ............ 1..134 ok 1 - use App::Sqitch; ok 2 - App::Sqitch->can(...) ok 3 - 'A new object' isa 'App::Sqitch' ok 4 - verbosity should be 1 ok 5 - Default user_name should be set from system ok 6 - Default user_email should be set from system ok 7 - Should get 0 from go() ok 8 - 'Command' isa 'App::Sqitch::Command::help' ok 9 - Extra args should be passed to execute ok 10 - An object of class 'App::Sqitch' isa 'App::Sqitch' ok 11 - Should have collected --engine ok 12 - Get the Sqitch config ok 13 - Should have local config overriding user ok 14 - Should fall back on user config ok 15 - Should have read user name from configuration ok 16 - Should have read user email from configuration ok 17 - Should have options ok 18 - Go should return 2 on Sqitch exception ok 19 - The error should have been vented ok 20 - The stack trace should have been sent to trace ok 21 - Go should return exitval on another exception ok 22 - Both the message and the trace should have been vented ok 23 - Nothing should have been traced ok 24 - Go should return 2 on a third Sqitch exception ok 25 - Should have one thing vented ok 26 - And it should include our message ok 27 - editor should use use parameter ok 28 - editor should use $EDITOR ok 29 - editor should prefer $SQITCH_EDITOR ok 30 - editor fall back on vi when not Windows ok 31 - editor fall back on notepad on Windows ok 32 - trace should work ok 33 - Should get no trace output for verbosity 2 ok 34 - trace_literal should work ok 35 - Should get no trace_literal output for verbosity 2 ok 36 - debug should work ok 37 - Should get no debug output for verbosity 1 ok 38 - debug_literal should work ok 39 - Should get no debug_literal output for verbosity 1 ok 40 - info should work ok 41 - Should get no info output for verbosity 0 ok 42 - info_literal should work ok 43 - Should get no info_literal output for verbosity 0 ok 44 - comment should work ok 45 - comment should work with verbosity 0 ok 46 - comment_literal should work ok 47 - comment_literal should work with verbosity 0 ok 48 - emit should work ok 49 - emit should work even with verbosity 0 ok 50 - emit_literal should work ok 51 - emit_literal should work even with verbosity 0 ok 52 - warn should work ok 53 - warn_literal should work ok 54 - vent should work ok 55 - vent_literal should work ok 56 - App::Sqitch->can('run') ok 57 - Should get success back from run echo ok 58 - The echo script should have run ok 59 - Nothing should have gone to STDERR ok 60 - run die should, well, die ok 61 - The die script should have its STDOUT ummolested ok 62 - The die script should have its STDERR unmolested ok 63 - App::Sqitch->can('shell') ok 64 - Should get success back from shell echo ok 65 - The echo script should have shell ok 66 - Nothing should have gone to STDERR ok 67 - shell die should, well, die ok 68 - The die script should have its STDOUT ummolested ok 69 - The die script should have its STDERR unmolested ok 70 - quote_shell should work ok 71 - App::Sqitch->can('capture') ok 72 - The echo script output should have been returned ok 73 - Should get an error if the command errors out ok 74 - The die script STDERR should have passed through ok 75 - App::Sqitch->can('probe') ok 76 - Should have just chomped first line of output ok 77 - App::Sqitch->can('spool') ok 78 - Spool to read.pl ok 79 - Data should have been sent to STDOUT by read.pl ok 80 - Spool to read.pl ok 81 - All data should have been sent to STDOUT by read.pl ok 82 - Should get error when die.pl dies ok 83 - Error ident should be "io" ok 84 - The error message should be one of the I/O messages ok 85 - The die script STDERR should have passed through ok 86 - Should get an error for a bad command ok 87 - Error ident should be "io" ok 88 - Error message should be about inability to exec ok 89 - Should get error for no prompt message ok 90 - No prompt ident should be "DEV" ok 91 - No prompt error message should be correct ok 92 - Prompt should return input ok 93 - Prompt should prompt ok 94 - Prompt with default should return input ok 95 - Prompt should prompt with default ok 96 - Prompt with undef default should return input ok 97 - Prompt should prompt with bracket for undef default ok 98 - Prompt should return default for undef input ok 99 - Prompt should show default when undef input ok 100 - Prompt should return input for empty input ok 101 - Prompt should show default when empty input ok 102 - Should get error when uattended and no default ok 103 - Unattended error ident should be "io" ok 104 - Unattended error message should be correct ok 105 - Prompt should return input ok 106 - Prompt should show default as selected when unattended ok 107 - Should get error for no ask_y_n message ok 108 - No ask_y_n ident should be "DEV" ok 109 - No ask_y_n error message should be correct ok 110 - Should get error for invalid ask_y_n default ok 111 - Invalid ask_y_n default ident should be "DEV" ok 112 - Invalid ask_y_n default error message should be correct ok 113 - ask_y_n should return true for "y" input ok 114 - ask_y_n() should prompt ok 115 - ask_y_n should return false for "no" input ok 116 - ask_y_n() should prompt for no ok 117 - ask_y_n should return false for "Nein" ok 118 - ask_y_n() should prompt for no ok 119 - ask_y_n should return true for "Yep" ok 120 - ask_y_n() should prompt for yes ok 121 - ask_y_n should return true default "y" ok 122 - ask_y_n() should prompt and show default "y" ok 123 - ask_y_n should return false default "n" ok 124 - ask_y_n() should prompt and show default "n" ok 125 - Should get error for bad answers ok 126 - Bad answers ident should be "IO" ok 127 - Bad answers message should be correct ok 128 - _readline should work ok 129 - _readline should return undef when unattended ok 130 - Localied string should be valid UTF-8 ok 131 - Localied string should be decoded ok 132 - Localied string should be valid UTF-8 ok 133 - Localied string should be decoded ok 134 - no warnings ok t/blank.t ........... 1..34 ok 1 - require App::Sqitch::Plan::Blank; ok 2 - App::Sqitch::Plan::Blank->can(...) ok 3 - An object of class 'App::Sqitch::Plan::Blank' isa 'App::Sqitch::Plan::Blank' ok 4 - An object of class 'App::Sqitch::Plan::Blank' isa 'App::Sqitch::Plan::Line' ok 5 - Name should format as "" ok 6 - should stringify to "" ok 7 - Create tag with more stuff ok 8 - It should stringify correctly ok 9 - Create a blank with newlines and backslashes in the note ok 10 - The newlines and backslashe should not be escaped ok 11 - The newlines and backslahs should be escaped by format_note ok 12 - Create a blank with escapes ok 13 - Note shoud be unescaped ok 14 - Should trim Leading newlines from note ok 15 - Should trim Leading line feeds from note ok 16 - Should trim Trailing newlines from note ok 17 - Should trim trailing line feeds from note ok 18 - Should trim Leading and trailing vertical space from note ok 19 - Should trim Leading and trailing newlines and spaces from note ok 20 - Should have localized not prompt ok 21 - Shell command should start with editor ok 22 - Temp file should exist ok 23 - Temp file contents should include prompt ok 24 - Should get exception for no note text ok 25 - No note error ident should be "plan" ok 26 - No note error message should be correct ok 27 - Exit val should be 1 ok 28 - Shell command should start with editor ok 29 - Temp file should exist ok 30 - Temp file contents should include prompt ok 31 - Request note ok 32 - Should have the edited note ok 33 - The request should not prompt again ok 34 - no warnings ok t/bundle.t .......... 1..132 ok 1 - Load a sqitch object ok 2 - 'bundle command' isa 'App::Sqitch::Command::bundle' ok 3 - App::Sqitch::Command::bundle->can(...) ok 4 - Should have dest_dir option ok 5 - Default dest_dir should be bundle/ ok 6 - Should have dest top dir ok 7 - Default config should be empty ok 8 - --dest_dir should be converted to a path object by configure() ok 9 - --from and --to should be passed through configure ok 10 - Load a sqitch object with top_dir ok 11 - bundle.dest_dir config should be converted to a path object by configure() ok 12 - 'another bundle command' isa 'App::Sqitch::Command::bundle' ok 13 - dest_dir should be "_build\sql" ok 14 - Dest top dir should be _build/sql/sql/ ok 15 - Dest deploy dir should be _build/sql/sql/deploy ok 16 - Dest revert dir should be _build/sql/sql/revert ok 17 - Dest verify dir should be _build/sql/sql/verify ok 18 - Load a sqitch object with engine top_dir ok 19 - 'engine bundle command' isa 'App::Sqitch::Command::bundle' ok 20 - dest_dir should again be "_build\sql" ok 21 - Dest deploy dir should be _build/sql/engine/deploy ok 22 - Dest revert dir should be _build/sql/engine/revert ok 23 - Dest verify dir should be _build/sql/engine/verify ok 24 - Path delete.me should not exist ok 25 - Create delete.me ok 26 - Path delete.me should now exist ok 27 - The mkdir info should have been output ok 28 - Create delete.me again ok 29 - Path delete.me should still exist ok 30 - Nothing should have been emitted ok 31 - Should fail on permission issue ok 32 - Permission error should have ident "bundle" ok 33 - The permission error should be formatted properly ok 34 - File delete.me\deploy\roles.sql should not exist ok 35 - Copy sql\deploy\roles.sql to delete.me\deploy\roles.sql ok 36 - File delete.me\deploy\roles.sql should now exist ok 37 - delete.me\deploy\roles.sql and sql\deploy\roles.sql contents are the same ok 38 - The mkdir and copy info should have been output ok 39 - Copy sql\deploy\roles.sql to delete.me\deploy\roles.sql again ok 40 - File delete.me\deploy\roles.sql should still exist ok 41 - delete.me\deploy\roles.sql and sql\deploy\roles.sql contents are the same ok 42 - Should have no debugging output ok 43 - Copy sql\deploy\roles.sql to old delete.me\deploy\roles.sql ok 44 - File delete.me\deploy\roles.sql should still be there ok 45 - delete.me\deploy\roles.sql and sql\deploy\roles.sql contents are the same ok 46 - Only copy message should again have been emitted ok 47 - Copy sql\deploy\users.sql to delete.me\deploy\roles.sql ok 48 - File delete.me\deploy\roles.sql should now exist ok 49 - delete.me\deploy\roles.sql and sql\deploy\users.sql contents are the same ok 50 - Again only Copy message should have been emitted ok 51 - Should get exception when source file does not exist ok 52 - Nonexistent file error ident should be "bundle" ok 53 - Nonexistent file error message should be correct ok 54 - Should get exception when copy returns false ok 55 - Copy fail ident should be "bundle" ok 56 - Copy fail error message should be correct ok 57 - _build\sql\sqitch.conf does not exist ok 58 - Bundle the config file ok 59 - _build\sql\sqitch.conf exists ok 60 - _build\sql\sqitch.conf and sqitch.conf contents are the same ok 61 - Should have config notice ok 62 - _build\sql\engine\sqitch.plan does not exist ok 63 - Bundle the plan file ok 64 - _build\sql\engine\sqitch.plan exists ok 65 - _build\sql\engine\sqitch.plan and engine\sqitch.plan contents are the same ok 66 - Should have plan notice ok 67 - '--from bundle command' isa 'App::Sqitch::Command::bundle' ok 68 - From should be "widgets" ok 69 - Bundle the plan file with --from ok 70 - Statement of the bits written should have been emitted ok 71 - Plan should have written only "widgets" ok 72 - '--to bundle command' isa 'App::Sqitch::Command::bundle' ok 73 - To should be "users" ok 74 - Bundle the plan file with --to ok 75 - Statement of the bits written should have been emitted ok 76 - Plan should have written only "users" and its tags ok 77 - _build\sql\engine\deploy\users.sql does not exist ok 78 - _build\sql\engine\revert\users.sql does not exist ok 79 - _build\sql\engine\deploy\widgets.sql does not exist ok 80 - _build\sql\engine\revert\widgets.sql does not exist ok 81 - _build\sql\engine\deploy\func\add_user.sql does not exist ok 82 - _build\sql\engine\revert\func\add_user.sql does not exist ok 83 - Load engine sqitch object ok 84 - 'another bundle command' isa 'App::Sqitch::Command::bundle' ok 85 - Bundle scripts ok 86 - _build\sql\engine\deploy\users.sql exists ok 87 - _build\sql\engine\revert\users.sql exists ok 88 - _build\sql\engine\deploy\widgets.sql exists ok 89 - _build\sql\engine\revert\widgets.sql exists ok 90 - _build\sql\engine\deploy\func\add_user.sql exists ok 91 - _build\sql\engine\revert\func\add_user.sql exists ok 92 - Should have change notices ok 93 - 'bundle from "widgets"' isa 'App::Sqitch::Command::bundle' ok 94 - Bundle scripts ok 95 - _build\sql\engine\deploy\users.sql does not exist ok 96 - _build\sql\engine\revert\users.sql does not exist ok 97 - _build\sql\engine\deploy\widgets.sql exists ok 98 - _build\sql\engine\revert\widgets.sql exists ok 99 - Should have only "widets" in change notices ok 100 - 'bundle to "users"' isa 'App::Sqitch::Command::bundle' ok 101 - Bundle scripts ok 102 - _build\sql\engine\deploy\users.sql exists ok 103 - _build\sql\engine\revert\users.sql exists ok 104 - _build\sql\engine\deploy\widgets.sql does not exist ok 105 - _build\sql\engine\revert\widgets.sql does not exist ok 106 - Should have only "users" in change notices ok 107 - Should die on nonexistent from change ok 108 - Nonexistent from change ident should be "bundle" ok 109 - Nonexistent from message change should be correct ok 110 - Should die on nonexistent to change ok 111 - Nonexistent to change ident should be "bundle" ok 112 - Nonexistent to message change should be correct ok 113 - _build\sql\sqitch.conf does not exist ok 114 - _build\sql\engine\sqitch.plan does not exist ok 115 - _build\sql\engine\deploy\users.sql does not exist ok 116 - _build\sql\engine\revert\users.sql does not exist ok 117 - _build\sql\engine\deploy\widgets.sql does not exist ok 118 - _build\sql\engine\revert\widgets.sql does not exist ok 119 - _build\sql\engine\deploy\func\add_user.sql does not exist ok 120 - _build\sql\engine\revert\func\add_user.sql does not exist ok 121 - 'another bundle command' isa 'App::Sqitch::Command::bundle' ok 122 - Execute! ok 123 - _build\sql\sqitch.conf exists ok 124 - _build\sql\engine\sqitch.plan exists ok 125 - _build\sql\engine\deploy\users.sql exists ok 126 - _build\sql\engine\revert\users.sql exists ok 127 - _build\sql\engine\deploy\widgets.sql exists ok 128 - _build\sql\engine\revert\widgets.sql exists ok 129 - _build\sql\engine\deploy\func\add_user.sql exists ok 130 - _build\sql\engine\revert\func\add_user.sql exists ok 131 - Should have all notices ok 132 - no warnings ok t/change.t .......... 1..87 ok 1 - require App::Sqitch::Plan::Change; ok 2 - App::Sqitch::Plan::Change->can(...) ok 3 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 4 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Line' ok 5 - It should be a deploy change ok 6 - It should not be a revert change ok 7 - And it should say so ok 8 - 'Timestamp' isa 'App::Sqitch::DateTime' ok 9 - path_segments should have the file name ok 10 - The deploy file should be correct ok 11 - The revert file should be correct ok 12 - The verify file should be correct ok 13 - The change should not be reworked ok 14 - path_segments should not include suffix ok 15 - Nonexistent deploy script hash should be undef ok 16 - Deploy script hash should be correct ok 17 - Add a rework tag ok 18 - Reworked tag should be stored ok 19 - The change should be reworked ok 20 - path_segments should now include suffix ok 21 - The change should not be reworked ok 22 - Add two rework tags ok 23 - The change should again be reworked ok 24 - path_segments should now include the correct suffixc ok 25 - Name should format as "foo" ok 26 - Name should format with tags as "foo" ok 27 - Dependencies should format as "" ok 28 - Name should format with dependencies as "foo" ok 29 - Name should format op without dependencies as "foo" ok 30 - Change content should format correctly without dependencies ok 31 - Planner name shoudld default to user name ok 32 - Planner email shoudld default to user email ok 33 - Planner name and email should format properly ok 34 - should stringify to "foo" + planner ok 35 - Since tag should be undef ok 36 - Parent should be undef ok 37 - Old change info should be correct ok 38 - Old change ID should be correct ok 39 - Change info should be correct ok 40 - Change ID should be correct ok 41 - Create change with more stuff ok 42 - It should stringify correctly ok 43 - It should not be a deploy change ok 44 - It should be a revert change ok 45 - It should say so ok 46 - It should have a since tag ok 47 - It should have a parent ok 48 - Old info should not since tag ok 49 - Info should include parent and dependencies ok 50 - Should have no tags ok 51 - Add a tag ok 52 - Should have the tag ok 53 - Should format name with tags ok 54 - Add another tag ok 55 - Should have both tags ok 56 - Should format name with both tags ok 57 - Planner name and email should format properly ok 58 - Dependencies should format as "[foo bar @baz !dr_evil]" ok 59 - Name should format with dependencies as "yo/howdy [foo bar @baz !dr_evil]" ok 60 - Name should format op with dependencies as "yo/howdy [foo bar @baz !dr_evil]" ok 61 - Change content should format correctly with dependencies ok 62 - path_segments should include directories ok 63 - The deploy file should include the suffix ok 64 - The revert file should include the suffix ok 65 - The verify file should include the suffix ok 66 - Create change "baz" ok 67 - Create change "bar" ok 68 - Get deploy handle ok 69 - It should be the deploy file ok 70 - Get revert handle ok 71 - It should be the revert file ok 72 - Get verify handle ok 73 - It should be the verify file ok 74 - Create a change with explicit requires and conflicts ok 75 - requires should be set ok 76 - conflicts should be set ok 77 - Dependencies should include requires and conflicts ok 78 - Should find changes for requires ok 79 - Should find changes for conflicts ok 80 - Create change with UTF-8 name ok 81 - The name should be decoded text in old info ok 82 - Old change ID should be hashed from encoded UTF-8 ok 83 - The name should be decoded text in info ok 84 - Change ID should be hashed from encoded UTF-8 ok 85 - note_prompt() should work ok 86 - note_prompt() should work ok 87 - no warnings ok t/changelist.t ...... 1..257 ok 1 - require App::Sqitch::Plan::ChangeList; ok 2 - Count should be six ok 3 - Changes should be in order ok 4 - Items should be the same as changes ok 5 - Tags should return the one tag ok 6 - Should have foo at 0 ok 7 - Should have bar at 1 ok 8 - Should have yo1 at 2 ok 9 - Should have baz at 4 ok 10 - Should have yo2 at 5 ok 11 - Should not find "non" ok 12 - Should not find "@non" ok 13 - Should find foo at 0 ok 14 - Should find foo by ID at 0 ok 15 - Should find foo by old ID at 0 ok 16 - Should find bar at 1 ok 17 - Should find bar^ at 0 ok 18 - Should find bar~ at 2 ok 19 - Should find bar~~ at 3 ok 20 - Should not find bar~~~ ok 21 - Should find bar~2 at 3 ok 22 - Should find bar~3 at 4 ok 23 - Should find bar by ID at 1 ok 24 - Should find bar by old ID at 1 ok 25 - Should find @alpha at 2 ok 26 - Should find @alpha^ at 1 ok 27 - Should find @alpha^^ at 1 ok 28 - Should not find @alpha^^^ ok 29 - Should find @alpha by ID at 2 ok 30 - Should find @alpha by old ID at 2 ok 31 - Should find baz at 3 ok 32 - Should find baz by ID at 3 ok 33 - Should find baz by old ID at 3 ok 34 - Should not find baz^^^ ok 35 - Should not find baz^3 at 0 ok 36 - Should not find baz^4 ok 37 - Should find baz by ID^ at 2 ok 38 - Should find baz by old ID^ at 2 ok 39 - Should get multiple indexes error looking for index of "yo" ok 40 - Multiple indexes error ident should be "plan" ok 41 - Multiple indexes message should be correct ok 42 - Should unknown tag error for invalid tag ok 43 - Unknown tag error ident should be "plan" ok 44 - Unknown taf message should be correct ok 45 - Should get 2 for yo@alpha ok 46 - Should get 1 for yo@alpha^ ok 47 - Should get 4 for yo@HEAD ok 48 - Should get 3 for yo@HEAD^ ok 49 - Should get undef for yo@HEAD~ ok 50 - Should get undef for yo@HEAD~~ ok 51 - Should get 0 for foo@alpha ok 52 - Should get 0 for foo@HEAD ok 53 - Should get 0 for foo@ROOT ok 54 - Should get undef for baz@alpha ok 55 - Should get 3 for baz@HEAD ok 56 - Should get 4 for @HEAD ok 57 - Should get 0 for @ROOT ok 58 - Should get 3 for @HEAD^ ok 59 - Should get undef for @HEAD~ ok 60 - Should get 1 for @ROOT~ ok 61 - Should get undef for @ROOT^ ok 62 - Should get 4 for HEAD ok 63 - Should get 0 for ROOT ok 64 - Should get 3 for HEAD^ ok 65 - Should get undef for HEAD~ ok 66 - Should get 1 for ROOT~ ok 67 - Should get undef for ROOT^ ok 68 - Should get foo for "foo" ok 69 - Should get bar for "foo~" ok 70 - Should get foo by ID ok 71 - Should get foo by old ID ok 72 - Should get bar for "bar" ok 73 - Should get foo for "bar^" ok 74 - Should get yo1 for "bar~" ok 75 - Should get baz for "bar~~" ok 76 - Should get yo2 for "bar~3" ok 77 - Should get bar by ID ok 78 - Should get bar by old ID ok 79 - Should get "yo" by the @alpha tag ID ok 80 - Should get "yo" by the @alpha tag old ID ok 81 - Should get baz for "baz" ok 82 - Should get baz by ID ok 83 - Should get baz by old ID ok 84 - Should get baz for "@HEAD^" ok 85 - Should get yo1 for "@HEAD^^" ok 86 - Should get bar for "@HEAD^3" ok 87 - Should get foo for "@ROOT" ok 88 - Should get baz for "HEAD^" ok 89 - Should get yo1 for "HEAD^^" ok 90 - Should get bar for "HEAD^3" ok 91 - Should get foo for "ROOT" ok 92 - Should get yo1 for yo@alpha ok 93 - Should get yo2 for yo@HEAD ok 94 - Should get foo for foo@alpha ok 95 - Should get foo for foo@HEAD ok 96 - Should get undef for baz@alpha ok 97 - Should get baz for baz@HEAD ok 98 - Should get yo2 for "yo@HEAD" ok 99 - Should get foo for "foo@ROOT" ok 100 - Should find yo1 with "yo" ok 101 - Should find yo1 with "yo@alpha" ok 102 - Should find yo2 with yo@HEAD ok 103 - Should find foo for "foo" ok 104 - Should find foo for "foo@alpha" ok 105 - Should find foo for "foo@HEAD" ok 106 - Should find bar with "yo^" ok 107 - Should find foo with "yo^^" ok 108 - Should find foo with "yo^2" ok 109 - Should find baz with "yo~" ok 110 - Should find yo2 with "yo~~" ok 111 - Should find yo2 with "yo~2" ok 112 - Should find bar with "yo@alpha^" ok 113 - Should find baz with "yo@alpha^" ok 114 - Should find baz with yo@HEAD^ ok 115 - Should find baz with @HEAD^ ok 116 - Should find bar with @ROOT~^ ok 117 - Should find baz with HEAD^ ok 118 - Should find bar with ROOT~^ ok 119 - Should contain yo1 with "yo" ok 120 - Should contain yo1 with "yo@alpha" ok 121 - Should contain yo2 with yo@HEAD ok 122 - Should contain foo for "foo" ok 123 - Should contain foo for "foo@alpha" ok 124 - Should contain foo for "foo@HEAD" ok 125 - Should contain bar with "yo^" ok 126 - Should contain foo with "yo^^" ok 127 - Should contain foo with "yo^2" ok 128 - Should contain baz with "yo~" ok 129 - Should contain yo2 with "yo~~" ok 130 - Should contain yo2 with "yo~2" ok 131 - Should contain bar with "yo@alpha^" ok 132 - Should contain baz with "yo@alpha^" ok 133 - Should contain baz with yo@HEAD^ ok 134 - Should contain baz with @HEAD^ ok 135 - Should contain bar with @ROOT~^ ok 136 - Should contain baz with HEAD^ ok 137 - Should contain bar with ROOT~^ ok 138 - Should get multiple indexes error looking for index of "yo" ok 139 - Multiple indexes error ident should be "plan" ok 140 - Multiple indexes message should be correct ok 141 - Should unknown tag error for invalid tag ok 142 - Unknown tag error ident should be "plan" ok 143 - Unknown taf message should be correct ok 144 - Push hi ok 145 - Count should now be six ok 146 - Changes should be in order with $hi at the end ok 147 - Should find "hi" at index 5 ok 148 - Should find "hi" by ID at index 5 ok 149 - Should find "hi" by old ID at index 5 ok 150 - Index of @ROOT should still be 0 ok 151 - Index of @HEAD should now be 5 ok 152 - Index of ROOT should still be 0 ok 153 - Index of HEAD should now be 5 ok 154 - First index of "non" should be undef ok 155 - First index of "foo" should be 0 ok 156 - First index of "foo~" should be 1 ok 157 - First index of "foo~~" should be 2 ok 158 - First index of "foo~3" should be 3 ok 159 - Should not find first index of "foo~~~" ok 160 - First index of "foo" since @ROOT should be undef ok 161 - First index of "bar" should be 1 ok 162 - First index of "yo" should be 2 ok 163 - First index of "yo" since @ROOT should be 2 ok 164 - First index of "baz" should be 3 ok 165 - First index of "baz^" should be 2 ok 166 - First index of "baz^^" should be 1 ok 167 - First index of "baz^3" should be 0 ok 168 - Should not find first index of "baz^^^" ok 169 - First index of "yo" since "@alpha" should be 4 ok 170 - First index of "yo" since "baz" should be 4 ok 171 - First index of "yo^" since "baz" should be 4 ok 172 - First index of "yo~" since "baz" should be 5 ok 173 - Should get an exception for an unknown change passed to first_index_of() ok 174 - Unknown change error ident should be "plan" ok 175 - Unknown change message should be correct ok 176 - Push so and fu ok 177 - Count should now be eight ok 178 - Index of @ROOT should remain 0 ok 179 - Index of @HEAD should now be 7 ok 180 - Index of ROOT should remain 0 ok 181 - Index of HEAD should now be 7 ok 182 - Changes should be in order with $so and $fu at the end ok 183 - Index beta ok 184 - Should find @beta at index 4 ok 185 - Should find yo2 via @beta ok 186 - Should find yo2 via @beta ID ok 187 - Should find yo2 via @beta old ID ok 188 - Tags should return both tags ok 189 - Should get 2 for last tagged index ok 190 - Should find "yo" as last tagged ok 191 - Should get 8 for count ok 192 - Should find fu as last change ok 193 - Should find last tagged index at 0 ok 194 - Should find last tagged at 0 ok 195 - Should get count 1 ok 196 - Should find last change at 0 ok 197 - Should find last tagged index at 1 ok 198 - Should find last tagged at 1 ok 199 - Should get count 2 ok 200 - Should find last change at 1 ok 201 - Should find last tagged index at 3 ok 202 - Should find last tagged at 3 ok 203 - Should get count 4 ok 204 - Should find last change at 3 ok 205 - Should find last tagged index at 4 ok 206 - Should find last tagged at 4 ok 207 - Should get count 5 ok 208 - Should find last change at 4 ok 209 - Should not find tag index in 0 changes ok 210 - Should not find tag in 0 changes ok 211 - Should find no change in empty plan ok 212 - Should not find tag index in 2 changes ok 213 - Should not find tag in 2 changes ok 214 - Should not find tag index in 4 changes ok 215 - Should not find tag in 4 changes ok 216 - An object of class 'App::Sqitch::Plan::ChangeList' isa 'App::Sqitch::Plan::ChangeList' ok 217 - Should not find index of "foo" in empty list ok 218 - Should not find first index of "foo" in empty list ok 219 - Should get undef for "foo" in empty list ok 220 - Should not contain "foo" in empty list ok 221 - Should find undef for "foo" in empty list ok 222 - Should not find index of "bar" in empty list ok 223 - Should not find first index of "bar" in empty list ok 224 - Should get undef for "bar" in empty list ok 225 - Should not contain "bar" in empty list ok 226 - Should find undef for "bar" in empty list ok 227 - Should not find index of "HEAD" in empty list ok 228 - Should not find first index of "HEAD" in empty list ok 229 - Should get undef for "HEAD" in empty list ok 230 - Should not contain "HEAD" in empty list ok 231 - Should find undef for "HEAD" in empty list ok 232 - Should not find index of "@HEAD" in empty list ok 233 - Should not find first index of "@HEAD" in empty list ok 234 - Should get undef for "@HEAD" in empty list ok 235 - Should not contain "@HEAD" in empty list ok 236 - Should find undef for "@HEAD" in empty list ok 237 - Should not find index of "ROOT" in empty list ok 238 - Should not find first index of "ROOT" in empty list ok 239 - Should get undef for "ROOT" in empty list ok 240 - Should not contain "ROOT" in empty list ok 241 - Should find undef for "ROOT" in empty list ok 242 - Should not find index of "@ROOT" in empty list ok 243 - Should not find first index of "@ROOT" in empty list ok 244 - Should get undef for "@ROOT" in empty list ok 245 - Should not contain "@ROOT" in empty list ok 246 - Should find undef for "@ROOT" in empty list ok 247 - Should not find index of "alpha" in empty list ok 248 - Should not find first index of "alpha" in empty list ok 249 - Should get undef for "alpha" in empty list ok 250 - Should not contain "alpha" in empty list ok 251 - Should find undef for "alpha" in empty list ok 252 - Should not find index of "@alpha" in empty list ok 253 - Should not find first index of "@alpha" in empty list ok 254 - Should get undef for "@alpha" in empty list ok 255 - Should not contain "@alpha" in empty list ok 256 - Should find undef for "@alpha" in empty list ok 257 - no warnings ok t/checkout.t ........ ok 1 - require App::Sqitch::Command::checkout; ok 2 - The class (or class-like) 'App::Sqitch::Command::checkout' isa 'App::Sqitch::Command' ok 3 - App::Sqitch::Command::checkout->can(...) ok 4 - Options should be correct ok 5 - Load a sqitch object ok 6 - Check default configuration ok 7 - Should have set option ok 8 - Should have mode, deploy_variables, verify, no_prompt, and log_only ok 9 - Should have set_revert option and no_prompt false ok 10 - set_deploy and set_revert should overrid set ok 11 - set_deploy and set_revert should merge with set ok 12 - set_revert should merge with set_deploy ok 13 - Should have deploy configuration ok 14 - Should have merged variables ok 15 - Should have merged --set, deploy, checkout ok 16 - An object of class 'App::Sqitch::Command::checkout' isa 'App::Sqitch::Command::checkout' ok 17 - Should pick up deploy variables from configuration ok 18 - Should pick up revert variables from configuration ok 19 - Should have no_prompt and prompt_accept from revert config ok 20 - Should have false log_only, verify, true prompt_accept from checkout config ok 21 - Should have log_only, prompt_accept true from checkout and verify from deploy ok 22 - Should have log_only false and mode all again ok 23 - Should have log_only false for false config ok 24 - Should have no_prompt true with -y ok 25 - 'checkout command' isa 'App::Sqitch::Command::checkout' ok 26 - Should get an error current branch ok 27 - Current branch error ident should be "checkout" ok 28 - Should get proper error for current branch error ok 29 - The proper args should have been passed to rev-parse ok 30 - Should get an error for plans without a common change ok 31 - The no common change error ident should be "checkout" ok 32 - The no common change error message should be correct ok 33 - 'Object with to and variables' isa 'App::Sqitch::Command::checkout' ok 34 - Checkout master ok 35 - The proper args should again have been passed to rev-parse ok 36 - Should have requested the plan file contents as of master ok 37 - Should have checked out other branch ok 38 - Should have no warnings ok 39 - Should have emitted info identifying the last common change ok 40 - "users" ID and 1 should be passed to the engine revert ok 41 - Should have had the current changes for revision ok 42 - undef, "tag", and 1 should be passed to the engine deploy ok 43 - Should have had the other branch changes (decoded) for deploy ok 44 - Engine should verify ok 45 - The engine should be set to log_only ok 46 - Variables should have been passed to the engine twice ok 47 - The revert vars should have been passed first ok 48 - The deploy vars should have been next ok 49 - Checkout master with target ok 50 - Target should be passed to engine ok 51 - Should have no warnings ok 52 - 'Object with to and variables' isa 'App::Sqitch::Command::checkout' ok 53 - Checkout master again ok 54 - Target should be passed to engine ok 55 - Should have no warnings ok 56 - The engine should not be set to log_only ok 57 - The engine should not be set with_verfy ok 58 - undef, "tag", and 1 should be passed to the engine deploy again ok 59 - Should have had the other branch changes (decoded) for deploy again ok 60 - Variables should again have been passed to the engine twice ok 61 - The revert vars should again have been passed first ok 62 - The deploy vars should again have been next ok 63 - Checkout master again with target ok 64 - Target should be passed to engine ok 65 - Should have warning about two targets ok 66 - Should get an exception for unknown arg ok 67 - Unknow arg ident should be "checkout" ok 68 - Should get an exeption for two unknown arg ok 69 - Should get an exception for unknown args ok 70 - Unknow args ident should be "checkout" ok 71 - Should get an exeption for two unknown args ok 72 - Should rethrow confirm exception ok 73 - Should rethrow fatal exception ok 74 - Should rethrow unknown exception 1..74 ok t/command.t ......... 1..146 ok 1 - use App::Sqitch::Command; ok 2 - App::Sqitch::Command->can(...) ok 3 - Load a sqitch sqitch object ok 4 - Should get an exception for missing sqitch param ok 5 - Should get an exception for array sqitch param ok 6 - Should get an exception for string sqitch param ok 7 - An object of class 'App::Sqitch::Command' isa 'App::Sqitch::Command' ok 8 - Should get empty hash for no config or options ok 9 - Should get config with no options ok 10 - Options should override config ok 11 - Options keys should have dashes changed to underscores ok 12 - Load a "whu" command ok 13 - An object of class 'App::Sqitch::Command::whu' isa 'App::Sqitch::Command::whu' ok 14 - The sqitch attribute should be set ok 15 - Load a "whu" command with "foo" config ok 16 - The "foo" attribute should be set ok 17 - Should exit ok 18 - Nonexistent command error ident should be "config" ok 19 - Should get proper mesage for nonexistent command ok 20 - Nonexistent command should yield exitval of 1 ok 21 - Should die on bad command ok 22 - Bad command error ident should be "config" ok 23 - Should get proper mesage for bad command ok 24 - Bad command should yield exitval of 1 ok 25 - No command should yield usage ok 26 - No args should be passed to usage ok 27 - Should die on broken command module ok 28 - Broken command error ident should be "config" ok 29 - Should get proper mesage for broken command ok 30 - Broken command should yield exitval of 1 ok 31 - Load a "whu" command with "--feathers" optin ok 32 - The "feathers" attribute should be set ok 33 - Load a "wah-hoo" command ok 34 - 'It' isa 'App::Sqitch::Command::wah_hoo' ok 35 - command() should return hyphenated name ok 36 - Create a App::Sqitch::Command object ok 37 - 'default target' isa 'App::Sqitch::Target' ok 38 - Default target name should be "db:" ok 39 - Default target URI should be "db:" ok 40 - Create a App::Sqitch::Command object ok 41 - Should try to fetch core.engine ok 42 - Should try to fetch core.target ok 43 - Should try to fetch core.engine ok 44 - Should try to fetch engine.sqlite.target ok 45 - Should try to fetch core.sqlite.target ok 46 - 'default target' isa 'App::Sqitch::Target' ok 47 - Default target name should be "db:sqlite:" ok 48 - Default target URI should be "db:sqlite:" ok 49 - Create a App::Sqitch::Command object ok 50 - Should try to fetch engine.pg.target ok 51 - Should try to fetch core.pg.target ok 52 - 'default target' isa 'App::Sqitch::Target' ok 53 - Default target name should be "db:pg:" ok 54 - Default target URI should be "db:pg:" ok 55 - Create a App::Sqitch::Command object ok 56 - Should try to fetch engine.pg.target ok 57 - 'default target' isa 'App::Sqitch::Target' ok 58 - Default target name should be "db:pg:foo" ok 59 - Default target URI should be "db:pg:foo" ok 60 - App::Sqitch::Command->can('execute') ok 61 - Create a App::Sqitch::Command object ok 62 - Base class command should be "" ok 63 - Base object command should be "" ok 64 - Should get an error calling execute on command base class ok 65 - Execute exception ident should be "DEV" ok 66 - The execute() error message should be correct ok 67 - Create a subclass command object ok 68 - Subclass oject command should be "whu" ok 69 - Subclass class command should be "whu" ok 70 - Should get an error for un-overridden execute() method ok 71 - Un-overidden execute() exception ident should be "DEV" ok 72 - The unoverridden execute() error message should be correct ok 73 - App::Sqitch::Command->can(...) ok 74 - Create a App::Sqitch::Command object again ok 75 - Base _parse_opts should return an empty hash ok 76 - Create a subclass command object again ok 77 - Subclass should return an empty hash for no args ok 78 - Subclass should use options spec ok 79 - Subclass should parse options spec ok 80 - Args array should be cleared of options ok 81 - Should get warning for unknown option ok 82 - Should call _pod2usage on options parse failure ok 83 - 'Good command object' isa 'App::Sqitch::Command::good' ok 84 - Should get warning for unknown option when there are no options ok 85 - Should call _pod2usage on no options parse failure ok 86 - Load Sqitch with config and plan ok 87 - Load cmd with config and plan ok 88 - Parsing now args should return no results ok 89 - Single unknown arg should be returned unknown ok 90 - Single change should be recognized as change ok 91 - Single target should be recognized as target ok 92 - URI target should be recognized as target, too ok 93 - Target and change should be recognized ok 94 - Change and target should be recognized ok 95 - Change, target, and unknown should be recognized ok 96 - Multiple changes, target, and unknown should be recognized ok 97 - Load Sqitch with config ok 98 - Load cmd with config ok 99 - Change following target should be recognized from target plan ok 100 - Passed target should always be returned ok 101 - Passed and specified targets should always be returned ok 102 - Change unknown to passed target should be returned as unknown ok 103 - Should get known changes from default target (t/sql/sqitch.plan) ok 104 - Change seen after target should be unknown if not in that target ok 105 - Call _pod2usage on base object ok 106 - Default params should be passed to Pod::Usage ok 107 - Call _pod2usage on "whu" command object ok 108 - Default params should be passed to Pod::Usage ok 109 - 'Config command object' isa 'App::Sqitch::Command::config' ok 110 - Call _pod2usage on "config" command object ok 111 - Should find sqitch-config docs to pass to Pod::Usage ok 112 - 'Good command object' isa 'App::Sqitch::Command::good' ok 113 - Call _pod2usage on "good" command object ok 114 - Should find App::Sqitch::Command::good docs to pass to Pod::Usage ok 115 - App::Sqitch::Command::good->can('usage') ok 116 - Should find App::Sqitch::Command::good docs to pass to Pod::Usage ok 117 - App::Sqitch::Command->can('verbosity') ok 118 - Verbosity should be from sqitch ok 119 - Verbosity should change with sqitch ok 120 - trace should work ok 121 - Should get no trace output for verbosity 2 ok 122 - trace_literal should work ok 123 - Should get no trace_literal output for verbosity 2 ok 124 - debug should work ok 125 - Should get no debug output for verbosity 1 ok 126 - debug_literal should work ok 127 - Should get no debug_literal output for verbosity 1 ok 128 - info should work ok 129 - Should get no info output for verbosity 0 ok 130 - info_literal should work ok 131 - Should get no info_literal output for verbosity 0 ok 132 - comment should work ok 133 - comment should work with verbosity 0 ok 134 - comment_literal should work ok 135 - comment_literal should work with verbosity 0 ok 136 - emit should work ok 137 - emit should work even with verbosity 0 ok 138 - emit_literal should work ok 139 - emit_literal should work even with verbosity 0 ok 140 - warn should work ok 141 - warn_literal should work ok 142 - threw Regexp ((?^:EXITED: 2)) ok 143 - usage should work ok 144 - threw Regexp ((?^:EXITED: 2)) ok 145 - usage should prefer sqitch-$command-usage ok 146 - no warnings ok t/config.t .......... 1..344 ok 1 - use App::Sqitch; ok 2 - Load a sqitch object ok 3 - 'Config command' isa 'App::Sqitch::Command::config' ok 4 - 'Config command' isa 'App::Sqitch::Command' ok 5 - App::Sqitch::Command::config->can(...) ok 6 - Options should be configured ok 7 - Construct with user and system ok 8 - Should get error for multiple config files ok 9 - Construct with user and local ok 10 - Should get error for multiple config files ok 11 - Construct with file and system ok 12 - Should get another error for multiple config files ok 13 - Construct with file and user ok 14 - Should get a third error for multiple config files ok 15 - Construct with file, system, and user ok 16 - Should get one last error for multiple config files ok 17 - Construct with bool and num ok 18 - Should get error for multiple types ok 19 - Construct with int and num ok 20 - Should get another error for multiple types ok 21 - Construct with int and bool ok 22 - Should get a third error for multiple types ok 23 - Construct with int, num, and bool ok 24 - Should get one last error for multiple types ok 25 - Construct with get & unset ok 26 - Should get error for multiple actions ok 27 - Construct with get & unset & edit ok 28 - Should get error for multiple actions ok 29 - Construct with get & unset & edit & list ok 30 - Should get error for multiple actions ok 31 - Construct with unset & edit ok 32 - Should get error for multiple actions ok 33 - Construct with unset & edit & list ok 34 - Should get error for multiple actions ok 35 - Construct with edit & list ok 36 - Should get error for multiple actions ok 37 - Construct with edit & add & list ok 38 - Should get error for multiple actions ok 39 - Construct with edit & add & list & get_all ok 40 - Should get error for multiple actions ok 41 - Construct with edit & add & list & get_regex ok 42 - Should get error for multiple actions ok 43 - Construct with edit & add & list & unset_all ok 44 - Should get error for multiple actions ok 45 - Construct with edit & add & list & get_all & unset_all ok 46 - Should get error for multiple actions ok 47 - Construct with edit & list & remove_section ok 48 - Should get error for multiple actions ok 49 - Construct with edit & list & remove_section & rename_section ok 50 - Should get error for multiple actions ok 51 - Default context should be local context ok 52 - Default action should be undef ok 53 - Default context should be undef ok 54 - Local context should be local ok 55 - User context should be user ok 56 - System context should be system ok 57 - Create config set command ok 58 - Execute the set command ok 59 - The set method should have been called ok 60 - Execute the get command ok 61 - The get method should have been called ok 62 - Create config get_all command ok 63 - An action with a dash should have triggered a method with an underscore ok 64 - Create config get command ok 65 - Get core.engine ok 66 - Should have emitted the merged core.engine ok 67 - Get engine.pg.registry ok 68 - Should have emitted the merged engine.pg.registry ok 69 - Get engine.pg.client ok 70 - Should have emitted the merged engine.pg.client ok 71 - Should get usage for missing get key ok 72 - And the missing get key should trigger a usage message ok 73 - Should get usage for invalid get key ok 74 - And the invalid get key should trigger a usage message ok 75 - Create config get int command ok 76 - Get revert.count as int ok 77 - Should have emitted the revert count ok 78 - Get revert.revision as int ok 79 - Should have emitted the revert revision as an int ok 80 - Get bundle.tags_only as an int should fail ok 81 - Int cast exception ident should be "config" ok 82 - Create config get num command ok 83 - Get revert.count as num ok 84 - Should have emitted the revert count ok 85 - Get revert.revision as num ok 86 - Should have emitted the revert revision as an num ok 87 - Get bundle.tags_only as an num should fail ok 88 - Num cast exception ident should be "config" ok 89 - Create config get bool command ok 90 - Should get failure for invalid bool int ok 91 - Bool int cast exception ident should be "config" ok 92 - Should get failure for invalid bool num ok 93 - Bool num cast exception ident should be "config" ok 94 - Get bundle.tags_only as bool ok 95 - Should have emitted bundle.tags_only as a bool ok 96 - Create config get bool-or-int command ok 97 - Get revert.count as bool-or-int ok 98 - Should have emitted the revert count as an int ok 99 - Get revert.revision as bool-or-int ok 100 - Should have emitted the revert revision as an int ok 101 - Get bundle.tags_only as bool-or-int ok 102 - Should have emitted bundle.tags_only as a bool ok 103 - Create system config get command ok 104 - Get system core.engine ok 105 - Should have emitted the system core.engine ok 106 - Get system engine.pg.client ok 107 - Should have emitted the system engine.pg.client ok 108 - Attempt to get engine.pg.host should fail ok 109 - Error ident should be "config" ok 110 - Error Message should be empty ok 111 - Error exitval should be 1 ok 112 - Nothing should have been emitted ok 113 - Create user config get command ok 114 - Get user engine.pg.registry ok 115 - Should have emitted the user engine.pg.registry ok 116 - Get user engine.pg.client ok 117 - Should have emitted the user engine.pg.client ok 118 - Create local config get command ok 119 - Get local engine.pg.target ok 120 - Should have emitted the local engine.pg.target ok 121 - Get local core.engine ok 122 - Should have emitted the local core.engine ok 123 - Create another system config get command ok 124 - There should be no system config file ok 125 - Should fail when no system config file ok 126 - Error ident should be "config" ok 127 - Error Message should be empty ok 128 - Error exitval should be 1 ok 129 - Create another user config get command ok 130 - There should be no user config file ok 131 - Should fail when no user config file ok 132 - Error ident should be "config" ok 133 - Error Message should be empty ok 134 - Error exitval should be 1 ok 135 - Create another local config get command ok 136 - There should be no local config file ok 137 - Should fail when no local config file ok 138 - Error ident should be "config" ok 139 - Error Message should be empty ok 140 - Error exitval should be 1 ok 141 - Create config list command ok 142 - Execute the list action ok 143 - Should have emitted the merged config ok 144 - Create system config list command ok 145 - List the system config ok 146 - Should have emitted the system config list ok 147 - Create user config list command ok 148 - List the user config ok 149 - Should only have emitted the user config list ok 150 - Create local config list command ok 151 - List the local config ok 152 - Should only have emitted the local config list ok 153 - Create system config list command with no file ok 154 - List the system config ok 155 - Nothing should have been emitted ok 156 - Create user config list command with no file ok 157 - List the user config ok 158 - Nothing should have been emitted ok 159 - Create system config set command ok 160 - Write core.foo ok 161 - The property should have been written ok 162 - Write core.engine ok 163 - Both settings should be saved ok 164 - Write engine.pg.user ok 165 - Both sections should be saved ok 166 - Should set usage for missing set key ok 167 - And the missing set key should trigger a usage message ok 168 - Should set usage for invalid set key ok 169 - And the invalid set key should trigger a usage message ok 170 - Should set usage for missing set value ok 171 - And the missing set value should trigger a usage message ok 172 - Create system config add command ok 173 - Add to core.foo ok 174 - The value should have been added to the property ok 175 - Should add usage for missing add key ok 176 - And the missing add key should trigger a usage message ok 177 - Should add usage for invalid add key ok 178 - And the invalid add key should trigger a usage message ok 179 - Should add usage for missing add value ok 180 - And the missing add value should trigger a usage message ok 181 - Create system config add command ok 182 - Get core.engine with regex ok 183 - Should have emitted value ok 184 - Get core.foo with regex ok 185 - Should have emitted value ok 186 - Attempt to get core.foo with non-matching regex should fail ok 187 - Error ident should be "config" ok 188 - Error Message should be empty ok 189 - Error exitval should be 1 ok 190 - Nothing should have been emitted ok 191 - Create system config get_all command ok 192 - Call get_all on core.engine ok 193 - The engine should have been emitted ok 194 - Get all core.engine with regex ok 195 - Should have emitted value ok 196 - Call get_all on core.foo ok 197 - Both foos should have been emitted ok 198 - Call get_all on core.foo with regex ok 199 - Both foos should have been emitted ok 200 - Call get_all on core.foo with limiting regex ok 201 - Only the one foo should have been emitted ok 202 - Attempt to get_all core.foo with non-matching regex should fail ok 203 - Error ident should be "config" ok 204 - Error Message should be empty ok 205 - Error exitval should be 1 ok 206 - Nothing should have been emitted ok 207 - Should get_all usage for missing get_all key ok 208 - And the missing get_all key should trigger a usage message ok 209 - Should get_all usage for invalid get_all key ok 210 - And the invalid get_all key should trigger a usage message ok 211 - Create config get_all int command ok 212 - Get revert.count as int ok 213 - Should have emitted the revert count ok 214 - Get revert.revision as int ok 215 - Should have emitted the revert revision as an int ok 216 - Get bundle.tags_only as an int should fail ok 217 - Int cast exception ident should be "config" ok 218 - Create config get_all num command ok 219 - Get revert.count as num ok 220 - Should have emitted the revert count ok 221 - Get revert.revision as num ok 222 - Should have emitted the revert revision as an num ok 223 - Get bundle.tags_only as an num should fail ok 224 - Num cast exception ident should be "config" ok 225 - Create config get_all bool command ok 226 - Should get failure for invalid bool int ok 227 - Bool int cast exception ident should be "config" ok 228 - Should get failure for invalid bool num ok 229 - Num int cast exception ident should be "config" ok 230 - Get bundle.tags_only as bool ok 231 - Should have emitted bundle.tags_only as a bool ok 232 - Create config get_all bool-or-int command ok 233 - Get revert.count as bool-or-int ok 234 - Should have emitted the revert count as an int ok 235 - Get revert.revision as bool-or-int ok 236 - Should have emitted the revert revision as an int ok 237 - Get bundle.tags_only as bool-or-int ok 238 - Should have emitted bundle.tags_only as a bool ok 239 - Create system config get_regex command ok 240 - Call get_regex on core\..+ ok 241 - Should match all core options ok 242 - Call get_regex on engine\.pg\..+ ok 243 - Should match all engine.pg options ok 244 - Call get_regex on engine\.pg\..+ and value regex ok 245 - Should match all engine.pg options that match ok 246 - Attempt to get_regex core.foo with non-matching regex should fail ok 247 - Error ident should be "config" ok 248 - Error Message should be empty ok 249 - Error exitval should be 1 ok 250 - Nothing should have been emitted ok 251 - Should get_regex usage for missing get_regex key ok 252 - And the missing get_regex key should trigger a usage message ok 253 - Should get_regex usage for invalid get_regex key ok 254 - And the invalid get_regex key should trigger a usage message ok 255 - Create config get_regex int command ok 256 - Get revert.count as int ok 257 - Should have emitted the revert count ok 258 - Get revert.revision as int ok 259 - Should have emitted the revert revision as an int ok 260 - Get bundle.tags_only as an int should fail ok 261 - Int cast exception ident should be "config" ok 262 - Create config get_regexp num command ok 263 - Get revert.count as num ok 264 - Should have emitted the revert count ok 265 - Get revert.revision as num ok 266 - Should have emitted the revert revision as an num ok 267 - Get bundle.tags_only as an num should fail ok 268 - Num cast exception ident should be "config" ok 269 - Create config get_regex bool command ok 270 - Should get failure for invalid bool int ok 271 - Bool int cast exception ident should be "config" ok 272 - Should get failure for invalid bool num ok 273 - Num int cast exception ident should be "config" ok 274 - Get bundle.tags_only as bool ok 275 - Should have emitted bundle.tags_only as a bool ok 276 - Create config get_regex bool-or-int command ok 277 - Get revert.count as bool-or-int ok 278 - Should have emitted the revert count as an int ok 279 - Get revert.revision as bool-or-int ok 280 - Should have emitted the revert revision as an int ok 281 - Get bundle.tags_only as bool-or-int ok 282 - Should have emitted bundle.tags_only as a bool ok 283 - Create system config unset command ok 284 - Unset engine.pg.user ok 285 - engine.pg.user should be gone ok 286 - Unset core.engine ok 287 - core.engine should have been removed ok 288 - Should get failure trying to delete multivalue key ok 289 - Multiple value exception ident should be "config" ok 290 - And it should have the proper error message ok 291 - Unset core.foo with a regex ok 292 - The core.foo "baz" value should have been removed ok 293 - Should unset usage for missing unset key ok 294 - And the missing unset key should trigger a usage message ok 295 - Should unset usage for invalid unset key ok 296 - And the invalid unset key should trigger a usage message ok 297 - Create system config unset_all command ok 298 - unset_all core.foo ok 299 - core.foo should have been removed ok 300 - unset_all core.foo with regex ok 301 - core.foo should have one value left ok 302 - Should unset_all usage for missing unset_all key ok 303 - And the missing unset_all key should trigger a usage message ok 304 - Should unset_all usage for invalid unset_all key ok 305 - And the invalid unset_all key should trigger a usage message ok 306 - Create system config replace_all command ok 307 - Replace all core.bar ok 308 - core.bar should have all its values with one value ok 309 - Replace all core.bar matching /^ba/ ok 310 - core.foo should have had the matching values replaced ok 311 - Create system config rename_section command ok 312 - Rename "core" to "funk" ok 313 - core.foo should have become funk.foo ok 314 - Should fail with no new name ok 315 - Message should be in the usage call ok 316 - Should fail with bad old name ok 317 - Message should be in the usage call ok 318 - Should fail with bad new name ok 319 - Message should be in the usage call ok 320 - Should fail with invalid section ok 321 - Invalid section exception ident should be "config" ok 322 - Invalid section exception message should be set ok 323 - Create system config remove_section command ok 324 - Remove "func" section ok 325 - The "funk" section should be gone ok 326 - Should fail with no name ok 327 - Message should be in the usage call ok 328 - Should fail with invalid name ok 329 - Invalid key name exception ident should be "config" ok 330 - And the invalid key message should be set ok 331 - Should fail fetching multi-value key ok 332 - Multi-value key exception ident should be "config" ok 333 - The multiple value error should be thrown ok 334 - Should fail setting multi-value key ok 335 - Mult-valkue key exception ident should be "config" ok 336 - The multi-value key error should be thrown ok 337 - Create system config edit command ok 338 - Execute the edit comand ok 339 - The editor should have been run ok 340 - Load a new sqitch object ok 341 - Create system config set command with subdirectory config file path ok 342 - Set "my.foo" in subdirectory config file ok 343 - The file should have been written ok 344 - no warnings ok t/configuration.t ... 1..17 ok 1 - use App::Sqitch::Config; ok 2 - 'New config object' isa 'App::Sqitch::Config' ok 3 - confname should be "sqitch.conf" ok 4 # skip System dir can be modified at build time ok 5 - Default user directory should be correct ok 6 - Default global file name should be correct ok 7 - Should preferably get SQITCH_SYSTEM_CONFIG file from global_file ok 8 - system_file should alias global_file ok 9 - Default user file name should be correct ok 10 - Should preferably get SQITCH_USER_CONFIG file from user_file ok 11 - Local file should be correct ok 12 - dir_file should alias local_file ok 13 - local_file should prefer $SQITCH_CONFIG ok 14 - And so should dir_file ok 15 - get_section("core") should work ok 16 - get_section("engine.pg") should work ok 17 - no warnings ok t/datetime.t ........ 1..33 ok 1 - require App::Sqitch::DateTime; ok 2 - Construct a datetime object ok 3 - as_string_formats should be correct ok 4 - Date format "full" should yield "Friday, February 13, 2015 5:07:03 AM America/Los_Angeles" ok 5 - Format "full" should be valid ok 6 - Date format "long" should yield "February 13, 2015 5:07:03 AM PST" ok 7 - Format "long" should be valid ok 8 - Date format "medium" should yield "Feb 13, 2015 5:07:03 AM" ok 9 - Format "medium" should be valid ok 10 - Date format "short" should yield "2/13/15 5:07 AM" ok 11 - Format "short" should be valid ok 12 - Date format "raw" should yield "2015-02-13T13:07:03Z" ok 13 - Format "raw" should be valid ok 14 - Date format "" should yield "2015-02-13T13:07:03Z" ok 15 - Date format "iso" should yield "2015-02-13 05:07:03 -0800" ok 16 - Format "iso" should be valid ok 17 - Date format "iso8601" should yield "2015-02-13 05:07:03 -0800" ok 18 - Format "iso8601" should be valid ok 19 - Date format "rfc" should yield "Fri, 13 Feb 2015 05:07:03 -0800" ok 20 - Format "rfc" should be valid ok 21 - Date format "rfc2822" should yield "Fri, 13 Feb 2015 05:07:03 -0800" ok 22 - Format "rfc2822" should be valid ok 23 - Date format "cldr:HH'h' mm'm'" should yield "05h 07m" ok 24 - Format "cldr:HH'h' mm'm'" should be valid ok 25 - Date format "strftime:%a at %H:%M:%S" should yield "Fri at 05:07:03" ok 26 - Format "strftime:%a at %H:%M:%S" should be valid ok 27 - Should get error for invalid date format ok 28 - Invalid date format error ident should be "datetime" ok 29 - Invalid date format error message should be correct ok 30 - Should get error for invalid as_string format param ok 31 - Invalid date format error ident should be "datetime" ok 32 - Invalid date format error message should be correct ok 33 - no warnings ok t/depend.t .......... 1..326 ok 1 - require App::Sqitch::Plan::Depend; ok 2 - Load a sqitch sqitch object ok 3 - App::Sqitch::Plan::Depend->can(...) ok 4 - Construct "foo" ok 5 - Constructed should stringify as "foo" ok 6 - Constructed should have key name "foo" ok 7 - Constructed should plan stringify as "foo" ok 8 - Parse "foo" ok 9 - Parsed should plan stringify as "foo" ok 10 - "foo" should be required ok 11 - "foo" should not be conflicting ok 12 - "foo" type should be "require" ok 13 - Should not have got project from "foo" ok 14 - Should have project "depend" for "foo" ok 15 - "foo" should not be external ok 16 - "foo" should be internal ok 17 - Should not have got ID from "foo" ok 18 - Construct "bar" ok 19 - Constructed should stringify as "bar" ok 20 - Constructed should have key name "bar" ok 21 - Constructed should plan stringify as "bar" ok 22 - Parse "bar" ok 23 - Parsed should plan stringify as "bar" ok 24 - "bar" should be required ok 25 - "bar" should not be conflicting ok 26 - "bar" type should be "require" ok 27 - Should not have got project from "bar" ok 28 - Should have project "depend" for "bar" ok 29 - "bar" should not be external ok 30 - "bar" should be internal ok 31 - Should not have got ID from "bar" ok 32 - Construct "@bar" ok 33 - Constructed should stringify as "@bar" ok 34 - Constructed should have key name "@bar" ok 35 - Constructed should plan stringify as "@bar" ok 36 - Parse "@bar" ok 37 - Parsed should plan stringify as "@bar" ok 38 - "@bar" should be required ok 39 - "@bar" should not be conflicting ok 40 - "@bar" type should be "require" ok 41 - Should not have got project from "@bar" ok 42 - Should have project "depend" for "@bar" ok 43 - "@bar" should not be external ok 44 - "@bar" should be internal ok 45 - Should not have got ID from "@bar" ok 46 - Construct "!foo" ok 47 - Constructed should stringify as "foo" ok 48 - Constructed should have key name "foo" ok 49 - Constructed should plan stringify as "!foo" ok 50 - Parse "!foo" ok 51 - Parsed should plan stringify as "!foo" ok 52 - "!foo" should be conflicting ok 53 - "!foo" should not be required ok 54 - "!foo" type should be "conflict" ok 55 - Should not have got project from "!foo" ok 56 - Should have project "depend" for "!foo" ok 57 - "!foo" should not be external ok 58 - "!foo" should be internal ok 59 - Should not have got ID from "!foo" ok 60 - Construct "!@bar" ok 61 - Constructed should stringify as "@bar" ok 62 - Constructed should have key name "@bar" ok 63 - Constructed should plan stringify as "!@bar" ok 64 - Parse "!@bar" ok 65 - Parsed should plan stringify as "!@bar" ok 66 - "!@bar" should be conflicting ok 67 - "!@bar" should not be required ok 68 - "!@bar" type should be "conflict" ok 69 - Should not have got project from "!@bar" ok 70 - Should have project "depend" for "!@bar" ok 71 - "!@bar" should not be external ok 72 - "!@bar" should be internal ok 73 - Should not have got ID from "!@bar" ok 74 - Construct "foo@bar" ok 75 - Constructed should stringify as "foo@bar" ok 76 - Constructed should have key name "foo@bar" ok 77 - Constructed should plan stringify as "foo@bar" ok 78 - Parse "foo@bar" ok 79 - Parsed should plan stringify as "foo@bar" ok 80 - "foo@bar" should be required ok 81 - "foo@bar" should not be conflicting ok 82 - "foo@bar" type should be "require" ok 83 - Should not have got project from "foo@bar" ok 84 - Should have project "depend" for "foo@bar" ok 85 - "foo@bar" should not be external ok 86 - "foo@bar" should be internal ok 87 - Should not have got ID from "foo@bar" ok 88 - Construct "!foo@bar" ok 89 - Constructed should stringify as "foo@bar" ok 90 - Constructed should have key name "foo@bar" ok 91 - Constructed should plan stringify as "!foo@bar" ok 92 - Parse "!foo@bar" ok 93 - Parsed should plan stringify as "!foo@bar" ok 94 - "!foo@bar" should be conflicting ok 95 - "!foo@bar" should not be required ok 96 - "!foo@bar" type should be "conflict" ok 97 - Should not have got project from "!foo@bar" ok 98 - Should have project "depend" for "!foo@bar" ok 99 - "!foo@bar" should not be external ok 100 - "!foo@bar" should be internal ok 101 - Should not have got ID from "!foo@bar" ok 102 - Construct "proj:foo" ok 103 - Constructed should stringify as "proj:foo" ok 104 - Constructed should have key name "foo" ok 105 - Constructed should plan stringify as "proj:foo" ok 106 - Parse "proj:foo" ok 107 - Parsed should plan stringify as "proj:foo" ok 108 - "proj:foo" should be required ok 109 - "proj:foo" should not be conflicting ok 110 - "proj:foo" type should be "require" ok 111 - Should have got project from "proj:foo" ok 112 - Should have project "proj" for "proj:foo" ok 113 - "proj:foo" should be external ok 114 - "proj:foo" should not be internal ok 115 - Should not have got ID from "proj:foo" ok 116 - Construct "!proj:foo" ok 117 - Constructed should stringify as "proj:foo" ok 118 - Constructed should have key name "foo" ok 119 - Constructed should plan stringify as "!proj:foo" ok 120 - Parse "!proj:foo" ok 121 - Parsed should plan stringify as "!proj:foo" ok 122 - "!proj:foo" should be conflicting ok 123 - "!proj:foo" should not be required ok 124 - "!proj:foo" type should be "conflict" ok 125 - Should have got project from "!proj:foo" ok 126 - Should have project "proj" for "!proj:foo" ok 127 - "!proj:foo" should be external ok 128 - "!proj:foo" should not be internal ok 129 - Should not have got ID from "!proj:foo" ok 130 - Construct "proj:@foo" ok 131 - Constructed should stringify as "proj:@foo" ok 132 - Constructed should have key name "@foo" ok 133 - Constructed should plan stringify as "proj:@foo" ok 134 - Parse "proj:@foo" ok 135 - Parsed should plan stringify as "proj:@foo" ok 136 - "proj:@foo" should be required ok 137 - "proj:@foo" should not be conflicting ok 138 - "proj:@foo" type should be "require" ok 139 - Should have got project from "proj:@foo" ok 140 - Should have project "proj" for "proj:@foo" ok 141 - "proj:@foo" should be external ok 142 - "proj:@foo" should not be internal ok 143 - Should not have got ID from "proj:@foo" ok 144 - Construct "!proj:@foo" ok 145 - Constructed should stringify as "proj:@foo" ok 146 - Constructed should have key name "@foo" ok 147 - Constructed should plan stringify as "!proj:@foo" ok 148 - Parse "!proj:@foo" ok 149 - Parsed should plan stringify as "!proj:@foo" ok 150 - "!proj:@foo" should be conflicting ok 151 - "!proj:@foo" should not be required ok 152 - "!proj:@foo" type should be "conflict" ok 153 - Should have got project from "!proj:@foo" ok 154 - Should have project "proj" for "!proj:@foo" ok 155 - "!proj:@foo" should be external ok 156 - "!proj:@foo" should not be internal ok 157 - Should not have got ID from "!proj:@foo" ok 158 - Construct "proj:foo@bar" ok 159 - Constructed should stringify as "proj:foo@bar" ok 160 - Constructed should have key name "foo@bar" ok 161 - Constructed should plan stringify as "proj:foo@bar" ok 162 - Parse "proj:foo@bar" ok 163 - Parsed should plan stringify as "proj:foo@bar" ok 164 - "proj:foo@bar" should be required ok 165 - "proj:foo@bar" should not be conflicting ok 166 - "proj:foo@bar" type should be "require" ok 167 - Should have got project from "proj:foo@bar" ok 168 - Should have project "proj" for "proj:foo@bar" ok 169 - "proj:foo@bar" should be external ok 170 - "proj:foo@bar" should not be internal ok 171 - Should not have got ID from "proj:foo@bar" ok 172 - Construct "!proj:foo@bar" ok 173 - Constructed should stringify as "proj:foo@bar" ok 174 - Constructed should have key name "foo@bar" ok 175 - Constructed should plan stringify as "!proj:foo@bar" ok 176 - Parse "!proj:foo@bar" ok 177 - Parsed should plan stringify as "!proj:foo@bar" ok 178 - "!proj:foo@bar" should be conflicting ok 179 - "!proj:foo@bar" should not be required ok 180 - "!proj:foo@bar" type should be "conflict" ok 181 - Should have got project from "!proj:foo@bar" ok 182 - Should have project "proj" for "!proj:foo@bar" ok 183 - "!proj:foo@bar" should be external ok 184 - "!proj:foo@bar" should not be internal ok 185 - Should not have got ID from "!proj:foo@bar" ok 186 - Construct "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 187 - Constructed should stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 188 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 189 - Constructed should plan stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 190 - Parse "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 191 - Parsed should plan stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 192 - "9ed961ad7902a67fe0804c8e49e8993719fd5065" should be required ok 193 - "9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be conflicting ok 194 - "9ed961ad7902a67fe0804c8e49e8993719fd5065" type should be "require" ok 195 - Should not have got project from "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 196 - Should have undef project for "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 197 - "9ed961ad7902a67fe0804c8e49e8993719fd5065" should be external ok 198 - "9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be internal ok 199 - Should have got ID from "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 200 - Construct "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 201 - Constructed should stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 202 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 203 - Constructed should plan stringify as "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 204 - Parse "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 205 - Parsed should plan stringify as "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 206 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065" should be conflicting ok 207 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be required ok 208 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065" type should be "conflict" ok 209 - Should not have got project from "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 210 - Should have undef project for "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 211 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065" should be external ok 212 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be internal ok 213 - Should have got ID from "!9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 214 - Construct "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 215 - Constructed should stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 216 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 217 - Constructed should plan stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 218 - Parse "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 219 - Parsed should plan stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 220 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should be required ok 221 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be conflicting ok 222 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" type should be "require" ok 223 - Should have got project from "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 224 - Should have project "foo" for "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 225 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should be external ok 226 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be internal ok 227 - Should have got ID from "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 228 - Construct "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 229 - Constructed should stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 230 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 231 - Constructed should plan stringify as "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 232 - Parse "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 233 - Parsed should plan stringify as "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 234 - "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should be conflicting ok 235 - "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be required ok 236 - "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" type should be "conflict" ok 237 - Should have got project from "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 238 - Should have project "foo" for "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 239 - "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should be external ok 240 - "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" should not be internal ok 241 - Should have got ID from "!foo:9ed961ad7902a67fe0804c8e49e8993719fd5065" ok 242 - Construct "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 243 - Constructed should stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 244 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 245 - Constructed should plan stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 246 - Parse "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 247 - Parsed should plan stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 248 - "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should be required ok 249 - "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should not be conflicting ok 250 - "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" type should be "require" ok 251 - Should not have got project from "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 252 - Should have project "depend" for "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 253 - "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should not be external ok 254 - "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should be internal ok 255 - Should not have got ID from "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 256 - Construct "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 257 - Constructed should stringify as "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 258 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 259 - Constructed should plan stringify as "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 260 - Parse "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 261 - Parsed should plan stringify as "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 262 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should be conflicting ok 263 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should not be required ok 264 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" type should be "conflict" ok 265 - Should not have got project from "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 266 - Should have project "depend" for "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 267 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should not be external ok 268 - "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should be internal ok 269 - Should not have got ID from "!9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 270 - Construct "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 271 - Constructed should stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 272 - Constructed should have key name "9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 273 - Constructed should plan stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 274 - Parse "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 275 - Parsed should plan stringify as "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 276 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should be required ok 277 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should not be conflicting ok 278 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" type should be "require" ok 279 - Should have got project from "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 280 - Should have project "foo" for "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 281 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should be external ok 282 - "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" should not be internal ok 283 - Should not have got ID from "foo:9ed961ad7902a67fe0804c8e49e8993719fd5065@what" ok 284 - Should fail to parse "foo bar" ok 285 - Should fail to parse "foo+@bar" ok 286 - Should fail to parse "foo:+bar" ok 287 - Should fail to parse "foo@bar+" ok 288 - Should fail to parse "proj:foo@bar+" ok 289 - Should get exception for no change or tag ok 290 - No change or tag error ident should be "DEV" ok 291 - No change or tag error message should be correct ok 292 - Should get an error for ID + change ok 293 - ID + change error ident ident should be "DEV" ok 294 - ID + change error message should be correct ok 295 - Should get an error for ID + tag ok 296 - ID + tag error ident ident should be "DEV" ok 297 - ID + tag error message should be correct ok 298 - Should get an error for ID + tag and change ok 299 - ID + tag and change error ident ident should be "DEV" ok 300 - ID + tag and change error message should be correct ok 301 - Create "roles" dependency ok 302 - Should find the "roles" ID in the plan ok 303 - The "roles" change should not be external ok 304 - The "roles" change should be internal ok 305 - Create "elsewhere:roles" dependency ok 306 - The "elsewhere:roles" id should be undef ok 307 - The "elsewhere:roles" change should be external ok 308 - The "elsewhere:roles" change should not be internal ok 309 - Create depend using external ID ok 310 - The external ID should be set ok 311 - The external ID should register as external ok 312 - The external ID should not register as internal ok 313 - Create depend using "roles" ID ok 314 - The "roles" ID should be set ok 315 - The "roles" ID should not register as external ok 316 - The "roles" ID should register as internal ok 317 - Create "nonexistent" dependency ok 318 - Should get error for nonexistent change ok 319 - Nonexistent change error ident should be "plan" ok 320 - Nonexistent change error message should be correct ok 321 - Create depend without ID ok 322 - Resolved ID should be undef ok 323 - Set resolved ID ok 324 - Resolved ID should be set ok 325 - Unset resolved ID ok 326 - Resolved ID should be undef again ok t/deploy.t .......... ok 1 - require App::Sqitch::Command::deploy; ok 2 - The class (or class-like) 'App::Sqitch::Command::deploy' isa 'App::Sqitch::Command' ok 3 - App::Sqitch::Command::deploy->can(...) ok 4 - Options should be correct ok 5 - Should have default configuration with no config or opts ok 6 - Should have mode, verify, set, and log-only options ok 7 - Should have mode and verify configuration ok 8 - Should have merged variables ok 9 - An object of class 'App::Sqitch::Command::deploy' isa 'App::Sqitch::Command::deploy' ok 10 - Should pick up variables from configuration ok 11 - 'new deploy with target' isa 'App::Sqitch::Command::deploy' ok 12 - Should have target "foo" ok 13 - An object of class 'App::Sqitch::Command::deploy' isa 'App::Sqitch::Command::deploy' ok 14 - Should have undef default target ok 15 - to_change should be undef ok 16 - mode should be "all" ok 17 - Execute to "@alpha" ok 18 - "@alpha" "all", and 0 should be passed to the engine ok 19 - Should have a target ok 20 - The engine should not be set log_only ok 21 - Should have no warnings ok 22 - Execute ok 23 - undef and "all" should be passed to the engine ok 24 - Should have no warnings ok 25 - Execute with change ok 26 - "widgets" and "all" should be passed to the engine ok 27 - Should have no warnings ok 28 - Execute with target ok 29 - undef and "all" should be passed to the engine ok 30 - The target should be as specified ok 31 - Should have no warnings ok 32 - Execute with change and target ok 33 - "widgets" and "all" should be passed to the engine ok 34 - The target should be as specified ok 35 - Should have no warnings ok 36 - Execute with target and change ok 37 - "widgets" and "all" should be passed to the engine ok 38 - The target should be as specified ok 39 - Should have no warnings ok 40 - 'Object with to, mode, log_only, and variables' isa 'App::Sqitch::Command::deploy' ok 41 - Execute again ok 42 - Engine should verify ok 43 - The engine should be set log_only ok 44 - "foo", "tag", and 1 should be passed to the engine ok 45 - Vars should have been passed through to the engine ok 46 - The target name should be from the target option ok 47 - Should have no warnings ok 48 - Execute with change ok 49 - Engine should verify ok 50 - The engine should be set log_only ok 51 - "foo", "tag", and 1 should be passed to the engine ok 52 - Vars should have been passed through to the engine ok 53 - Should have too many changes warning ok 54 - Execute with target again ok 55 - Engine should verify ok 56 - The engine should be set log_only ok 57 - "foo", "tag", and 1 should be passed to the engine ok 58 - Vars should have been passed through to the engine ok 59 - The target should be from the target option ok 60 - Should have warning about too many targets ok 61 - "all" should be a valid mode ok 62 - "tag" should be a valid mode ok 63 - "change" should be a valid mode ok 64 - "foo" should not be a valid mode ok 65 - "bad" should not be a valid mode ok 66 - "gar" should not be a valid mode ok 67 - Should get an exception for unknown arg ok 68 - Unknow arg ident should be "deploy" ok 69 - Should get an exeption for two unknown arg ok 70 - Should get an exception for unknown args ok 71 - Unknow args ident should be "deploy" ok 72 - Should get an exeption for two unknown args 1..72 ok t/engine.t .......... 1..615 ok 1 - use App::Sqitch::Engine; ok 2 - App::Sqitch::Engine->can(...) ok 3 - Load a sqitch sqitch object ok 4 - Should get an exception for missing sqitch param ok 5 - Should get an exception for missing sqitch param ok 6 - Should get an exception for array sqitch param ok 7 - Should get an exception for array target param ok 8 - Should get an exception for string sqitch param ok 9 - Should get an exception for string target param ok 10 - 'Engine' isa 'App::Sqitch::Engine' ok 11 - Load an engine ok 12 - An object of class 'App::Sqitch::Engine::whu' isa 'App::Sqitch::Engine::whu' ok 13 - The sqitch attribute should be set ok 14 - Should die on unknown target ok 15 - Should get load error message ok 16 - Should have relevant previoius exception ok 17 - No target should die ok 18 - It should be the expected message ok 19 - Should die on bad engine module ok 20 - Should get another load error message ok 21 - Should have relevant previoius exception from the bad module ok 22 - App::Sqitch::Engine->can('name') ok 23 - Create a App::Sqitch::Engine object ok 24 - Should get error from base engine name ok 25 - Name error ident should be "engine" ok 26 - Name error message should be correct ok 27 - Create a subclass name object ok 28 - Subclass oject name should be "whu" ok 29 - Subclass class name should be "whu" ok 30 - App::Sqitch::Engine->can('config_vars') ok 31 - Should have database and client in engine base class ok 32 - App::Sqitch::Engine->can(...) ok 33 - Should have no variables ok 34 - Add a variable ok 35 - Should have the variable ok 36 - Set more variables ok 37 - Should have all of the variables ok 38 - Should again have no variables ok 39 - Load engine ok 40 - Target should be as passed ok 41 - Load engine with URI with password ok 42 - 'target attribute' isa 'App::Sqitch::Target' ok 43 - Load engine ok 44 - Destination should be URI string ok 45 - Rgistry destination should be the same as destination ok 46 - Load engine with URI with password ok 47 - Destination should not include password ok 48 - Meta destination should again be the same as destination ok 49 - App::Sqitch::Engine::whu->can('_check_registry') ok 50 - Registry should be fine at current version ok 51 - Should get error for out-of-date registry ok 52 - Out-of-date registry error ident should be "engine" ok 53 - Out-of-date registry error message should be correct ok 54 - Should get error for future registry ok 55 - Future registry error ident should be "engine" ok 56 - Future registry error message should be correct ok 57 - Create a App::Sqitch::Engine object again ok 58 - Should get an unimplemented exception from initialized() ok 59 - Should get an unimplemented exception from initialize() ok 60 - Should get an unimplemented exception from register_project() ok 61 - Should get an unimplemented exception from run_file() ok 62 - Should get an unimplemented exception from run_handle() ok 63 - Should get an unimplemented exception from log_deploy_change() ok 64 - Should get an unimplemented exception from log_fail_change() ok 65 - Should get an unimplemented exception from log_revert_change() ok 66 - Should get an unimplemented exception from log_new_tags() ok 67 - Should get an unimplemented exception from is_deployed_tag() ok 68 - Should get an unimplemented exception from is_deployed_change() ok 69 - Should get an unimplemented exception from are_deployed_changes() ok 70 - Should get an unimplemented exception from change_id_for() ok 71 - Should get an unimplemented exception from changes_requiring_change() ok 72 - Should get an unimplemented exception from earliest_change_id() ok 73 - Should get an unimplemented exception from latest_change_id() ok 74 - Should get an unimplemented exception from deployed_changes() ok 75 - Should get an unimplemented exception from deployed_changes_since() ok 76 - Should get an unimplemented exception from load_change() ok 77 - Should get an unimplemented exception from name_for_change_id() ok 78 - Should get an unimplemented exception from current_state() ok 79 - Should get an unimplemented exception from current_changes() ok 80 - Should get an unimplemented exception from current_tags() ok 81 - Should get an unimplemented exception from search_events() ok 82 - Should get an unimplemented exception from registered_projects() ok 83 - Should get an unimplemented exception from change_offset_from_id() ok 84 - App::Sqitch::Engine->can('_load_changes') ok 85 - Should load changes with no change ok 86 - Should load changes with undef ok 87 - Should load changes with no tags ok 88 - Should load changes with multiple hashes with no tags ok 89 - Should load changes with tags ok 90 - Should load changes with tags with leading @ ok 91 - Should load changes with multiple hashes with tags ok 92 - Should load changes with reworked change ok 93 - Should load changes with reworked change & multiple tags ok 94 - Should load changes with doubly reworked change ok 95 - Rework change "you" ok 96 - Tag @beta1 ok 97 - Should load changes with Unplanned change ok 98 - Should load changes with reworked change without reworked version deployed ok 99 - Should load changes with reworked change with reworked version deployed ok 100 - Create a subclass name object again ok 101 - App::Sqitch::Engine::whu->can(...) ok 102 - Deploy a change ok 103 - deploy_change should have called the proper methods ok 104 - Output should reflect the deployment ok 105 - Output should reflect success ok 106 - Only log a change ok 107 - log-only deploy_change should not have called run_file ok 108 - Output should reflect the logging ok 109 - Output should reflect deploy success ok 110 - Enable verification ok 111 - Deploy a change to be verified ok 112 - deploy_change with verification should run the verify file ok 113 - Output should reflect the logging ok 114 - Output should reflect deploy success ok 115 - Enable log_only ok 116 - Verify and log a change ok 117 - deploy_change with verification and log-only should not run deploy ok 118 - Output should reflect the logging ok 119 - Output should reflect deploy success ok 120 - Deploy change with error ok 121 - Error should be from run_file ok 122 - Should have logged change failure ok 123 - Output should reflect the deployment, even with failure ok 124 - Output should reflect deploy failure ok 125 - Deploy change with failed verification ok 126 - Error should be from deploy_change ok 127 - Should have logged verify failure ok 128 - Output should reflect the deployment, even with verify failure ok 129 - Output should reflect deploy failure ok 130 - Verify error should have been vented ok 131 - Enable log_only ok 132 - Deploy change with log-only and failed verification ok 133 - Error should be from deploy_change ok 134 - Should have logged verify failure but not reverted ok 135 - Output should reflect the deployment, even with verify failure ok 136 - Output should reflect deploy failure ok 137 - Verify error should have been vented ok 138 - Deploy a change with no verify script ok 139 - deploy_change with no verify file should not run it ok 140 - Output should reflect the logging ok 141 - Output should reflect deploy success ok 142 - A warning about no verify file should have been emitted ok 143 - Revert a change ok 144 - revert_change should have called the proper methods ok 145 - Output should reflect reversion ok 146 - Output should acknowldge revert success ok 147 - Enable log_only ok 148 - Revert a change with log-only ok 149 - Log-only revert_change should not have run the change script ok 150 - Output should reflect logged reversion ok 151 - Output should acknowldge revert success ok 152 - Engine with sqitch with plan file ok 153 - Should get proper change from latest_change() ok 154 - Latest change ID should have been called with no arg ok 155 - Should again get proper change from latest_change() ok 156 - Latest change ID should have been called with offset arg ok 157 - Should get proper change from earliest_change() ok 158 - Earliest change ID should have been called with no arg ok 159 - Should again get proper change from earliest_change() ok 160 - Earliest change ID should have been called with offset arg ok 161 - App::Sqitch::Engine->can('_sync_plan') ok 162 - Plan should start at position -1 ok 163 - start_at should be undef ok 164 - Sync the plan ok 165 - Plan should still be at position -1 ok 166 - start_at should still be undef ok 167 - Should not have updated IDs or hashes ok 168 - Sync the plan again ok 169 - Plan should again be at position -1 ok 170 - start_at should again be undef ok 171 - Still should not have updated IDs or hashes ok 172 - Sync the plan to a tag ok 173 - Plan should now be at position 1 ok 174 - start_at should now be widgets@beta ok 175 - Should have updated IDs ok 176 - Sync the plan with a random script hash ok 177 - Plan should now be at position 1 ok 178 - start_at should now be widgets@beta ok 179 - Should have updated IDs but not hashes ok 180 - Sync the plan with a random script hash ok 181 - Plan should now be at position 1 ok 182 - start_at should now be widgets@beta ok 183 - Should have updated IDs and hashes ok 184 - Sync the plan ok 185 - Plan should be at position 1 ok 186 - start_at should be users@alpha ok 187 - Should have updated hashes but not IDs ok 188 - App::Sqitch::Engine->can('deploy') ok 189 - Deploy to @alpha ok 190 - Plan should be at position 1 ok 191 - Should have deployed through @alpha ok 192 - Should have called _deploy_all() ok 193 - Should have seen the output of the deploy to @alpha ok 194 - Both change names should be output ok 195 - Enable log_only ok 196 - Log-only deploy in $mode mode to @alpha ok 197 - Plan should be at position 1 ok 198 - Should have deployed through @alpha without running files ok 199 - Should have called _deploy_by_change() ok 200 - Should have seen the output of the deploy to @alpha ok 201 - Both change names should be output ok 202 - Enable log_only ok 203 - Log-only deploy in $mode mode to @alpha ok 204 - Plan should be at position 1 ok 205 - Should have deployed through @alpha without running files ok 206 - Should have called _deploy_by_tag() ok 207 - Should have seen the output of the deploy to @alpha ok 208 - Both change names should be output ok 209 - Enable log_only ok 210 - Log-only deploy in $mode mode to @alpha ok 211 - Plan should be at position 1 ok 212 - Should have deployed through @alpha without running files ok 213 - Should have called _deploy_all() ok 214 - Should have seen the output of the deploy to @alpha ok 215 - Both change names should be output ok 216 - Deploy to @alpha with tag mode ok 217 - Plan should again be at position 1 ok 218 - Should have deployed through @alpha without initialization ok 219 - Should have called _deploy_by_tag() ok 220 - Should have seen the output of the deploy to @alpha ok 221 - Both change names should be output ok 222 - Should get an error for an unknown change ok 223 - The exception should report the unknown change ok 224 - Only latest_item() should have been called ok 225 - Deploy to alpha thrice ok 226 - Only latest_item() should have been called ok 227 - Should notify user that already at @alpha ok 228 - Should fail changeing older change ok 229 - Should be a "deploy" error ok 230 - It should suggest using "revert" ok 231 - Should have called latest_item() and latest_tag() ok 232 - Deploy everything by change ok 233 - Plan should be at position 3 ok 234 - Should have deployed everything ok 235 - Should have called _deploy_by_change() ok 236 - Should have emitted deploy announcement and successes ok 237 - Should have seen the output of the deploy to the end ok 238 - Should return success for deploy to up-to-date DB ok 239 - Should have emitted deploy announcement and successes ok 240 - It should have just fetched the latest change ID ok 241 - Should fail on invalid mode ok 242 - Should be a "deploy" error ok 243 - And the message should reflect the unknown mode ok 244 - It should have check for initialization ok 245 - Should have announced destination ok 246 - Engine with sqitch with no file ok 247 - Should die with no changes ok 248 - Should have the localized message ok 249 - It should have checked for the latest item ok 250 - Deploy changewise to index 1 ok 251 - Should changewise deploy to index 2 ok 252 - Should have seen output of each change ok 253 - Output should reflect deploy successes ok 254 - Deploy changewise to index 2 ok 255 - Should changewise deploy to from index 2 to index 3 ok 256 - Should have seen output of changes 2-3 ok 257 - Output should reflect deploy successes ok 258 - Die in _deploy_by_change ok 259 - It should have died in run_file ok 260 - It should have logged the failure ok 261 - Should have seen output for first change ok 262 - Output should reflect deploy failure ok 263 - Deploy tagwise to index 1 ok 264 - Should tagwise deploy to index 1 ok 265 - Should have seen output of each change ok 266 - Output should reflect deploy successes ok 267 - Deploy tagwise to index 3 ok 268 - Should tagwise deploy from index 2 to index 3 ok 269 - Should have seen output of changes 3-3 ok 270 - Output should reflect deploy successes ok 271 - Die in log_deploy_change ok 272 - Should get final deploy failure message ok 273 - It should have reverted back to the last deployed tag ok 274 - Should have seen deploy and revert messages (excluding curry revert) ok 275 - Output should reflect deploy successes and failure ok 276 - The original error should have been vented ok 277 - Enable log_only ok 278 - Die in log_deploy_change log-only ok 279 - Should get final deploy failure message ok 280 - It should have run no deploy or revert scripts ok 281 - Should have seen deploy and revert messages (excluding curry revert) ok 282 - Output should reflect deploy successes and failure ok 283 - The original error should have been vented ok 284 - Die in _deploy_by_tag again ok 285 - Should again get final deploy failure message ok 286 - Should have logged back to the beginning ok 287 - Should have seen deploy and revert messages ok 288 - Output should reflect deploy successes and failure ok 289 - Should have one vented message ok 290 - And it should be the underlying error ok 291 - And it should had notified that all changes were reverted ok 292 - Die in _deploy_by_tag yet again ok 293 - Should die "Deploy failed" again ok 294 - Should have reverted back to last tag ok 295 - Should have user change reversion messages ok 296 - Output should reflect deploy successes and failure ok 297 - Should see underlying error and reversion message ok 298 - Die in _deploy_by_tag again ok 299 - Should once again get final deploy failure message ok 300 - Should have tried to revert one change ok 301 - Should have seen revert message ok 302 - Output should reflect deploy successes and failure ok 303 - Should get reversion failure message ok 304 - Deploy all to index 1 ok 305 - Should tagwise deploy to index 1 ok 306 - Should have seen output of each change ok 307 - Output should reflect deploy successes ok 308 - Deploy tagwise to index 2 ok 309 - Should tagwise deploy to from index 1 to index 2 ok 310 - Should have seen output of changes 3-4 ok 311 - Output should reflect deploy successe ok 312 - Die in _deploy_all ok 313 - Should get final deploy failure message ok 314 - It should have logged up to the failure ok 315 - Should have seen deploy and revert messages excluding revert for failed logging ok 316 - Output should reflect deploy successes and failures ok 317 - The original error should have been vented ok 318 - Enable log_only ok 319 - Die in log-only _deploy_all ok 320 - Should get final deploy failure message ok 321 - It should have run no deploys or reverts ok 322 - Should have seen deploy and revert messages excluding revert for failed logging ok 323 - Output should reflect deploy successes and failures ok 324 - The original error should have been vented ok 325 - Die in _deploy_all again ok 326 - Should again get final deploy failure message ok 327 - Should have reveted all changes and tags ok 328 - Should see all changes revert ok 329 - Output should reflect deploy successes and failures ok 330 - Should notifiy user of error and rollback ok 331 - Die in _deploy_all on the last change ok 332 - Should once again get final deploy failure message ok 333 - Should have deployed to dr_evil and revered down to @alpha ok 334 - Should see changes revert back to @alpha ok 335 - Output should reflect deploy successes and failures ok 336 - Should notifiy user of error and rollback to @alpha ok 337 - Test is_deployed(tag) ok 338 - It should have called is_deployed_tag() ok 339 - Test is_deployed(change) ok 340 - It should have called is_deployed_change() ok 341 - App::Sqitch::Engine::whu->can('deploy_change') ok 342 - Deploy a change ok 343 - It should have been deployed ok 344 - Should have shown change name ok 345 - Output should reflect deploy success ok 346 - Shuld die on deploy failure ok 347 - Should be told the deploy failed ok 348 - It should failed to have been deployed ok 349 - Should have vented the original error ok 350 - Should have shown change name ok 351 - Output should reflect deploy failure ok 352 - App::Sqitch::Engine::whu->can('revert_change') ok 353 - Revert the change ok 354 - It should have been reverted ok 355 - Should have shown reverted change name ok 356 - And the revert failure should be "ok" ok 357 - App::Sqitch::Engine::whu->can('revert') ok 358 - Should get exception for no changes to revert ok 359 - Should be a revert exception ok 360 - Should have notified that there is nothing to revert ok 361 - Exit val should be 1 ok 362 - It should only have called deployed_changes() ok 363 - Nothing should have been output ok 364 - Revert should die on unknown change ok 365 - Should be another "revert" error ok 366 - The message should mention it is an unknown change ok 367 - Should have called change_id_for() with change name ok 368 - Nothing should have been output ok 369 - Revert should die on unknown change ID ok 370 - Should be another "revert" error ok 371 - The message should mention it is an unknown change ok 372 - Shoudl have called change_id_for() with change ID ok 373 - Nothing should have been output ok 374 - Revert should die on undeployed change ok 375 - Should be another "revert" error ok 376 - The message should mention that the change is not deployed ok 377 - change_id_for ok 378 - Nothing should have been output ok 379 - Should get error reverting when no subsequent changes ok 380 - No subsequent change error ident should be "revert" ok 381 - No subsequent change error exitval should be 1 ok 382 - No subsequent change error message should be correct ok 383 - Should have called change_id_for and deployed_changes_since ok 384 - Should get error for known but undeployed change ok 385 - No changes error should be "revert" ok 386 - No changes exitval should be 1 ok 387 - No changes message should be correct ok 388 - Should have called deployed_changes ok 389 - Revert all changes ok 390 - Should have reverted the changes in reverse order ok 391 - Should have prompted to revert all changes ok 392 - It should have said it was reverting all changes and listed them ok 393 - And the revert successes should be emitted ok 394 - Enable log_only ok 395 - Revert all changes log-only ok 396 - Log-only Should have reverted the changes in reverse order ok 397 - Log-only should have prompted to revert all changes ok 398 - It should have said it was reverting all changes and listed them ok 399 - And the revert successes should be emitted ok 400 - Should abort declined revert ok 401 - Declined revert ident should be "revert" ok 402 - Should have exited with value 1 ok 403 - Should have exited with proper message ok 404 - Should have called deployed_changes only ok 405 - Should have prompt to revert all changes ok 406 - It should have emitted nothing else ok 407 - Revert all changes with no prompt ok 408 - Should have reverted the changes in reverse order ok 409 - Should have no prompt ok 410 - It should have said it was reverting all changes and listed them ok 411 - And the revert successes should be emitted ok 412 - Revert to @alpha ok 413 - Should have reverted only changes after @alpha ok 414 - Should have prompt to revert to change ok 415 - Output should show what it reverts to ok 416 - And the revert successes should be emitted ok 417 - Should abort declined revert to @alpha ok 418 - Declined revert ident should be "revert:confirm" ok 419 - Should have exited with value 1 ok 420 - Should have exited with proper message ok 421 - Should have called revert methods ok 422 - Should have prompt to revert to @alpha ok 423 - It should have emitted nothing else ok 424 - Revert to @HEAD^ ok 425 - Should have reverted one changes for @HEAD^ ok 426 - Should have no prompt ok 427 - Output should show what it reverts to ok 428 - And the header and "ok" should be emitted ok 429 - App::Sqitch::Engine->can('change_id_for_depend') ok 430 - Should get error from change_id_for_depend when change not in plan ok 431 - Should get ident "plan" from change_id_for_depend ok 432 - Should have proper message from change_id_for_depend error ok 433 - Should get error from change_id_for_depend when no ID ok 434 - Should get ident "engine" when no ID ok 435 - Should have proper messag from change_id_for_depend error ok 436 - Get a change id ok 437 - Should have passed dependency params to change_id_for() ok 438 - App::Sqitch::Engine->can('find_change') ok 439 - find_change() should work ok 440 - Its parameters should have been passed to change_id_for and change_offset_from_id ok 441 - find_change() should work ok 442 - Project and offset should have been passed off ok 443 - App::Sqitch::Engine->can('verify_change') ok 444 - Verify a change ok 445 - The change file should have been run ok 446 - Should have no info output ok 447 - Verify a change with no verify script. ok 448 - No abstract methods should be called ok 449 - Should have no info output ok 450 - A warning about no verify file should have been emitted ok 451 - App::Sqitch::Engine::whu->can('check_deploy_dependencies') ok 452 - All planned changes should be okay ok 453 - Should have called are_deployed_changes ok 454 - Dependencies should check out even when within those to be deployed ok 455 - Resolved ID should be populated ok 456 - Conflict should throw exception ok 457 - Should be a "deploy" error ok 458 - Should have localized message about the local conflict ok 459 - Conflict should throw exception ok 460 - Should be a "deploy" error ok 461 - Should have localized message about conflicts ok 462 - Should have called change_id_for() twice ok 463 - Conflicting dependencies should have no resolved IDs ok 464 - Conflict should throw another exception ok 465 - Should be a "deploy" error ok 466 - Should have localized message about all three conflicts ok 467 - Should have called change_id_for() twice ok 468 - Conflicting dependencies should have no resolved IDs ok 469 - Missing dependencies should throw exception ok 470 - Should be another "deploy" error ok 471 - Should have localized message missing dependencies ok 472 - Should have called check_requires ok 473 - Missing requirements should not have resolved ok 474 - Missing dependencies should throw exception ok 475 - Should be another "deploy" error ok 476 - Should have localized conflicts and required error messages ok 477 - Should have called check_requires ok 478 - Missing requirements should not have resolved ok 479 - App::Sqitch::Engine::whu->can('check_revert_dependencies') ok 480 - Should get error reverting change another depend on ok 481 - Dependent error ident should be "revert" ok 482 - Dependent error message should be correct ok 483 - It should have check for requiring changes ok 484 - Should get error reverting change others depend on ok 485 - Dependent error ident should be "revert" ok 486 - Dependent error message should be correct ok 487 - It should have check for requiring changes ok 488 - Should get error reverting change others depend on ok 489 - Dependent error ident should be "revert" ok 490 - Dependent error message should be correct ok 491 - It should have checked twice for requiring changes ok 492 - App::Sqitch::Engine::whu->can('_trim_to') ok 493 - _trim_to should complain about a nonexistent change key ok 494 - _trim_to nonexistent key error ident should be "foo" ok 495 - _trim_to nonexistent key error message should be correct ok 496 - _trim_to should complain about an undeployed change key ok 497 - _trim_to undeployed change error ident should be "yep" ok 498 - _trim_to undeployed change error message should be correct ok 499 - _trim_to should complain about an unplanned change key ok 500 - _trim_to unplanned change error ident should be "oop" ok 501 - _trim_to unplanned change error message should be correct ok 502 - _trim_to should find "roles" at index 0 ok 503 - Changes should be untrimmed ok 504 - _trim_to should find "widgets" at index 2 ok 505 - First two changes should be shifted off ok 506 - _trim_to should find "dr_evil" at last index ok 507 - Changes should be untrimmed ok 508 - _trim_to should find "tacos" at index 4 ok 509 - Last two changes should be popped off ok 510 - _trim_to should find "@HEAD" at index 2 ok 511 - First two changes should be shifted off ok 512 - _trim_to should find "HEAD" at index 2 ok 513 - First two changes should be shifted off ok 514 - _trim_to should find "@ROOT" at index 2 ok 515 - All but First three changes should be popped off ok 516 - _trim_to should find "ROOT" at index 2 ok 517 - All but First three changes should be popped off ok 518 - App::Sqitch::Engine::whu->can('_verify_changes') ok 519 - Verify of a single change should return errcount 0 ok 520 - Declared output should list the change ok 521 - Emitted Output should reflect the verification of the change ok 522 - Should have no comments ok 523 - The verify script should have been run ok 524 - Verify of another single change should return errcount 0 ok 525 - Declared output should list the change ok 526 - Emitted Output should reflect the verification of the change ok 527 - Should have no comments ok 528 - A warning about no verify file should have been emitted ok 529 - The verify script should not have been run ok 530 - Verify of two changes should return errcount 0 ok 531 - Declared output should list both changes ok 532 - Emitted Output should reflect the verification of the changes ok 533 - Should have no comments ok 534 - A warning about no verify file should have been emitted ok 535 - Only one verify script should have been run ok 536 - Verify of two changes and show pending ok 537 - Delcared output should list deployed changes ok 538 - Emitted output should include list of pending changes ok 539 - Should have no comments ok 540 - A warning about no verify file should have been emitted ok 541 - Only one verify script should have been run ok 542 - Verify of a change not in the plan should return errcount 1 ok 543 - Declared Output should reflect the verification of the change ok 544 - Emitted Output should reflect the failure of the verify ok 545 - Should have a comment about the change missing from the plan ok 546 - No verify script should have been run ok 547 - Verify of an out-of-order change should return errcount 1 ok 548 - Declared output should reflect the verification of the change ok 549 - Emitted Output should reflect the failure of the verify ok 550 - Should have a comment about the out-of-order change ok 551 - The verify script should have been run ok 552 - Verify of a change with 2 issues should return 2 ok 553 - Declared output should reflect the verification of the change ok 554 - Emitted Output should reflect the failure of the verify ok 555 - Should have comment about the out-of-order change and script failure ok 556 - No abstract methods should have been called ok 557 - Verify of 2 changes with 2 issues each should return 4 ok 558 - Declraed output should reflect the verification of both changes ok 559 - Emitted Output should reflect the failure of both verifies ok 560 - Should have comment about the out-of-order changes and script failures ok 561 - No abstract methods should have been called ok 562 - _verify_changes with two undeployed changes should returne 2 ok 563 - Listed changes should be both deployed and undeployed ok 564 - Emitted Output should reflect 1 pass ok 565 - Should have comments for undeployed changes ok 566 - No abstract methods should have been called ok 567 - App::Sqitch::Engine::whu->can('verify') ok 568 - Should get error for no deployed changes ok 569 - No deployed changes ident should be "verify" ok 570 - No deployed changes exitval should be 1 ok 571 - No deployed changes message should be correct ok 572 - Notification of the verify should be emitted ok 573 - Should get error for no changes ok 574 - No changes ident should be "verify" ok 575 - No changes exitval should be 1 ok 576 - No changes message should be correct ok 577 - Notification of the verify should be emitted ok 578 - Should get error for no planned changes ok 579 - No planned changes ident should be "verify" ok 580 - No planned changes exitval should be 2 ok 581 - No planned changes message should be correct ok 582 - Notification of the verify should be emitted ok 583 - Verify one change ok 584 - Notification of the verify should be emitted ok 585 - The one change name should be declared ok 586 - Success should be emitted ok 587 - Should have no comments ok 588 - Verify two changes ok 589 - Notification of the verify should be emitted ok 590 - The two change names should be declared ok 591 - Both successes should be emitted ok 592 - Should have no comments ok 593 - Should have warning about missing verify script ok 594 - Verify with a reworked change changes ok 595 - Notification of the verify should be emitted ok 596 - The two change names should be emitted ok 597 - Both successes should be emitted ok 598 - Should have no comments ok 599 - Should have no warnings ok 600 - Verify two specific changes ok 601 - Notification of the verify should be emitted ok 602 - The two change names should be emitted ok 603 - Both successes should be emitted ok 604 - Should have no comments ok 605 - Should have warning about missing verify script ok 606 - Should get failure for failing verify scripts ok 607 - Failed verify ident should be "verify" ok 608 - Failed verify exitval should be 2 ok 609 - Faield verify message should be correct ok 610 - Notification of the verify should be emitted ok 611 - Both change names should be declared ok 612 - Output should include the failure report ok 613 - Should have the errors in comments ok 614 - Nothing should have been vented ok 615 - no warnings ok t/engine_cmd.t ...... 1..199 ok 1 - Load a sqitch sqitch object ok 2 - 'Engine command' isa 'App::Sqitch::Command::engine' ok 3 - App::Sqitch::Command::engine->can(...) ok 4 - Options should be correct ok 5 - Default properties should be empty ok 6 - configure() should ignore config file ok 7 - Run list() ok 8 - The list of engines should have been output ok 9 - 'Verbose engine' isa 'App::Sqitch::Command::engine' ok 10 - Run verbose list() ok 11 - The list of engines and their targets should have been output ok 12 - No name arg to add() should yield usage ok 13 - No args should be passed to usage ok 14 - Should get error for existing engine ok 15 - Existing engine error ident should be "engine" ok 16 - Existing engine error message should be correct ok 17 - Add engine "vertica" ok 18 - Engine "test" target should have been set ok 19 - Engine "test" should have no client set ok 20 - Engine "test" should have no registry set ok 21 - Engine "test" should have no top_dir set ok 22 - Engine "test" should have no plan_file set ok 23 - Engine "test" should have no deploy_dir set ok 24 - Engine "test" should have no revert_dir set ok 25 - Engine "test" should have no verify_dir set ok 26 - Engine "test" should have no extension set ok 27 - 'Engine with all properties' isa 'App::Sqitch::Command::engine' ok 28 - Add engine "firebird" ok 29 - Engine "firebird" should have top_dir set ok 30 - Engine "firebird" should have revert_dir set ok 31 - Engine "firebird" should have extension set ok 32 - Engine "firebird" should have verify_dir set ok 33 - Engine "firebird" should have plan_file set ok 34 - Engine "firebird" should have client set ok 35 - Engine "firebird" should have deploy_dir set ok 36 - Engine "firebird" should have target set ok 37 - Engine "firebird" should have registry set ok 38 - No name arg to set_target() should yield usage ok 39 - No args should be passed to usage ok 40 - No target arg to set_target() should yield usage ok 41 - No args should be passed to usage ok 42 - Should get error for nonexistent engine ok 43 - Nonexistent engine error ident should be "engine" ok 44 - Nonexistent engine error message should be correct ok 45 - Set new target ok 46 - Engine "pg" should have new target ok 47 - Set new target ok 48 - Engine "pg" should have new DB target ok 49 - Should get an error for an unknown target ok 50 - Nonexistent target error ident should be "engine" ok 51 - Nonexistent target error message should be correct ok 52 - No name arg to set_top_dir() should yield usage ok 53 - No args should be passed to usage ok 54 - No top_dir arg to set_top_dir() should yield usage ok 55 - No args should be passed to usage ok 56 - Should get error for nonexistent engine ok 57 - Nonexistent engine error ident should be "engine" ok 58 - Nonexistent engine error message should be correct ok 59 - Set new $key ok 60 - Engine "pg" should have new top_dir ok 61 - No name arg to set_revert_dir() should yield usage ok 62 - No args should be passed to usage ok 63 - No revert_dir arg to set_revert_dir() should yield usage ok 64 - No args should be passed to usage ok 65 - Should get error for nonexistent engine ok 66 - Nonexistent engine error ident should be "engine" ok 67 - Nonexistent engine error message should be correct ok 68 - Set new $key ok 69 - Engine "pg" should have new revert_dir ok 70 - No name arg to set_extension() should yield usage ok 71 - No args should be passed to usage ok 72 - No extension arg to set_extension() should yield usage ok 73 - No args should be passed to usage ok 74 - Should get error for nonexistent engine ok 75 - Nonexistent engine error ident should be "engine" ok 76 - Nonexistent engine error message should be correct ok 77 - Set new $key ok 78 - Engine "pg" should have new extension ok 79 - No name arg to set_verify_dir() should yield usage ok 80 - No args should be passed to usage ok 81 - No verify_dir arg to set_verify_dir() should yield usage ok 82 - No args should be passed to usage ok 83 - Should get error for nonexistent engine ok 84 - Nonexistent engine error ident should be "engine" ok 85 - Nonexistent engine error message should be correct ok 86 - Set new $key ok 87 - Engine "pg" should have new verify_dir ok 88 - No name arg to set_plan_file() should yield usage ok 89 - No args should be passed to usage ok 90 - No plan_file arg to set_plan_file() should yield usage ok 91 - No args should be passed to usage ok 92 - Should get error for nonexistent engine ok 93 - Nonexistent engine error ident should be "engine" ok 94 - Nonexistent engine error message should be correct ok 95 - Set new $key ok 96 - Engine "pg" should have new plan_file ok 97 - No name arg to set_client() should yield usage ok 98 - No args should be passed to usage ok 99 - No client arg to set_client() should yield usage ok 100 - No args should be passed to usage ok 101 - Should get error for nonexistent engine ok 102 - Nonexistent engine error ident should be "engine" ok 103 - Nonexistent engine error message should be correct ok 104 - Set new $key ok 105 - Engine "pg" should have new client ok 106 - No name arg to set_deploy_dir() should yield usage ok 107 - No args should be passed to usage ok 108 - No deploy_dir arg to set_deploy_dir() should yield usage ok 109 - No args should be passed to usage ok 110 - Should get error for nonexistent engine ok 111 - Nonexistent engine error ident should be "engine" ok 112 - Nonexistent engine error message should be correct ok 113 - Set new $key ok 114 - Engine "pg" should have new deploy_dir ok 115 - No name arg to set_target() should yield usage ok 116 - No args should be passed to usage ok 117 - No target arg to set_target() should yield usage ok 118 - No args should be passed to usage ok 119 - Should get error for nonexistent engine ok 120 - Nonexistent engine error ident should be "engine" ok 121 - Nonexistent engine error message should be correct ok 122 - Set new $key ok 123 - Engine "pg" should have new target ok 124 - No name arg to set_registry() should yield usage ok 125 - No args should be passed to usage ok 126 - No registry arg to set_registry() should yield usage ok 127 - No args should be passed to usage ok 128 - Should get error for nonexistent engine ok 129 - Nonexistent engine error ident should be "engine" ok 130 - Nonexistent engine error message should be correct ok 131 - Set new $key ok 132 - Engine "pg" should have new registry ok 133 - No name args to remove() should yield usage ok 134 - No args should be passed to usage ok 135 - Should get error for nonexistent engine ok 136 - Nonexistent engine error ident should be "engine" ok 137 - Nonexistent engine error message should be correct ok 138 - Remove ok 139 - Engine "mysql" should now be gone ok 140 - Run show() ok 141 - Show with no names should emit the list of engines ok 142 - Show sqlite ok 143 - The full "sqlite" engine should have been shown ok 144 - Set vertica client ok 145 - Show three engines ok 146 - All three engines should have been shown ok 147 - 'Simple engine' isa 'App::Sqitch::Command::engine' ok 148 - Execute undef ok 149 - list() should have been called ok 150 - Execute undef with args ok 151 - list() should have been passed args ok 152 - Execute list ok 153 - list() should have been called ok 154 - Execute list with args ok 155 - list() should have been passed args ok 156 - Execute add ok 157 - add() should have been called ok 158 - Execute add with args ok 159 - add() should have been passed args ok 160 - Execute set-target ok 161 - set_target() should have been called ok 162 - Execute set-target with args ok 163 - set_target() should have been passed args ok 164 - Execute set-registry ok 165 - set_registry() should have been called ok 166 - Execute set-registry with args ok 167 - set_registry() should have been passed args ok 168 - Execute set-client ok 169 - set_client() should have been called ok 170 - Execute set-client with args ok 171 - set_client() should have been passed args ok 172 - Execute remove ok 173 - remove() should have been called ok 174 - Execute remove with args ok 175 - remove() should have been passed args ok 176 - Execute rm ok 177 - remove() should have been called ok 178 - Execute rm with args ok 179 - remove() should have been passed args ok 180 - Execute rename ok 181 - rename() should have been called ok 182 - Execute rename with args ok 183 - rename() should have been passed args ok 184 - Execute show ok 185 - show() should have been called ok 186 - Execute show with args ok 187 - show() should have been passed args ok 188 - Should get an exception for a nonexistent action ok 189 - Nonexistent action message should be passed to usage ok 190 - Update the config ok 191 - The core.mysql config should still be present ok 192 - MySQL config should have been rewritten without deprecated keys ok 193 - Update the config again ok 194 - The core.mysql config should again remain ok 195 - MySQL config should have been rewritten with an integrated target ok 196 - Update the config again ok 197 - The core.mysql config should again remain ok 198 - MySQL config should have been rewritten with a default target ok 199 - no warnings ok t/firebird.t ........ ok 1 - require App::Sqitch::Engine::firebird; ok 2 - config_vars should return three vars ok 3 - An object of class 'App::Sqitch::Engine::firebird' isa 'App::Sqitch::Engine::firebird' ok 4 - dbname should be filled in ok 5 - registry dbname should be "sqitch.fdb" ok 6 - registry_destination should be the same as registry URI ok 7 - An object of class 'App::Sqitch::Engine::firebird' isa 'App::Sqitch::Engine::firebird' ok 8 - Set some variables ok 9 - Create another firebird ok 10 - client should be as configured ok 11 - URI should be as configured ok 12 - destination should default to URI without password ok 13 - registry_destination should be URI with configured registry and no password ok 14 - firebird command should be configured ok 15 - Create a firebird with sqitch with options ok 16 - client should be as optioned ok 17 - Registry URI should include --registry value. ok 18 - isql command should be as optioned ok 19 - App::Sqitch::Engine::firebird->can('connection_string') ok 20 - Connection for db:firebird:foo.fdb ok 21 - Connection for db:firebird:foo.com/foo.fdb ok 22 - Connection for db:firebird:foo.com/foo.fdb:1234 ok 23 - Connection for db:firebird:/blah/hi.fdb ok 24 - Connection for db:firebird:foo.com//blah/hi.fdb ok 25 - Connection for db:firebird:foo.com//blah/hi.fdb:1234 ok 26 - Connection for db:firebird:C:/blah/hi.fdb ok 27 - Connection for db:firebird:foo.com/C:/blah/hi.fdb ok 28 - Connection for db:firebird:foo.com/C:/blah/hi.fdb:1234 ok 29 - Should get an exception for no db name ok 30 - No dbname exception ident should be "firebird" ok 31 - No dbname exception message should be correct ok 32 - App::Sqitch::Engine::firebird->can(...) ok 33 - ISC_PASSWORD should be "s3cr3t" ok 34 - Call _run ok 35 - Command should be passed to run() ok 36 - ISC_PASSWORD should be "s3cr3t" ok 37 - Call _spool ok 38 - Command should be passed to spool() ok 39 - ISC_PASSWORD should be "s3cr3t" ok 40 - Call _capture ok 41 - Command should be passed to capture() ok 42 - Create a firebird with sqitch with no pw ok 43 - ISC_PASSWORD should not exist ok 44 - Call _run again ok 45 - Command should be passed to run() again ok 46 - ISC_PASSWORD should not exist ok 47 - Call _spool again ok 48 - Command should be passed to spool() again ok 49 - ISC_PASSWORD should not exist ok 50 - Call _capture again ok 51 - Command should be passed to capture() again ok 52 - ISC_PASSWORD should not exist ok 53 - Run foo/bar.sql ok 54 - File should be passed to run() ok 55 - ISC_PASSWORD should not exist ok 56 - Spool a "file handle" ok 57 - Handle should be passed to spool() ok 58 - ISC_PASSWORD should not exist ok 59 - Verify foo/bar.sql ok 60 - Verify file should be passed to capture() ok 61 - ISC_PASSWORD should not exist ok 62 - Verify foo/bar.sql again ok 63 - Verify file should be passed to run() for high verbosity ok 64 - App::Sqitch::Engine::firebird->can('_ts2char_format') ok 65 - _ts2char_format should work ok 66 - App::Sqitch::Engine::firebird->can('_dt') ok 67 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 68 - DateTime year should be set ok 69 - DateTime month should be set ok 70 - DateTime day should be set ok 71 - DateTime hour should be set ok 72 - DateTime minute should be set ok 73 - DateTime second should be set ok 74 - DateTime TZ should be set ok 75 - App::Sqitch::Engine::firebird->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test Firebird engine: Can't locate DBD/Firebird.pm in @INC (you may need to install the DBD::Firebird module) (@INC contains: t/lib C:\cpanfly-5.18\var\cpan\build\App-Sqitch-0.999-aIOCYg\blib\lib C:\cpanfly-5.18\var\cpan\build\App-Sqitch-0.999-aIOCYg\blib\arch inc C:\cpanfly-5.18\var\megalib C:/cpanfly-5.18/var/megalib C:/Perl64-5.18/site/lib C:/Perl64-5.18/lib .) at t/firebird.t line 334. # ok 76 # skip Unable to live-test Firebird engine: Can't locate DBD/Firebird.pm in @INC (you may need to install the DBD::Firebird module) (@INC contains: t/lib C:\cpanfly-5.18\var\cpan\build\App-Sqitch-0.999-aIOCYg\blib\lib C:\cpanfly-5.18\var\cpan\build\App-Sqitch-0.999-aIOCYg\blib\arch inc C:\cpanfly-5.18\var\megalib C:/cpanfly-5.18/var/megalib C:/Perl64-5.18/site/lib C:/Perl64-5.18/lib .) at t/firebird.t line 334. # 1..76 ok t/help.t ............ 1..15 ok 1 - Load a sqitch sqitch object ok 2 - 'Load help command' isa 'App::Sqitch::Command::help' ok 3 - Execute help ok 4 - Should show sqitch app docs ok 5 - Execute "config" help ok 6 - Should show "config" command docs ok 7 - Execute "changes" help ok 8 - Should show "changes" command docs ok 9 - Execute "tutorial" help ok 10 - Should show "tutorial" command docs ok 11 - Should get an exception for "nonexistent" help ok 12 - Exception ident should be "help" ok 13 - Should get failure message for nonexistent command ok 14 - Exception exit val should be 1 ok 15 - no warnings ok t/init.t ............ 1..159 ok 1 - use App::Sqitch::Command::init; ok 2 - 'App::Sqitch::Command::init' isa 'App::Sqitch::Command' ok 3 - 'New init object' isa 'App::Sqitch::Command::init' ok 4 - App::Sqitch::Command::init->can(...) ok 5 - Options should be correct ok 6 - Default config should be empty ok 7 - Should accept a URI in options ok 8 - 'processed uri option' isa 'URI' ok 9 - 'default target' isa 'App::Sqitch::Target' ok 10 - App::Sqitch::Command::init->can('make_directories') ok 11 - dir init.mkdir does not exist ok 12 - dir init.mkdir\deploy does not exist ok 13 - dir init.mkdir\revert does not exist ok 14 - dir init.mkdir\verify does not exist ok 15 - Make the directories ok 16 - dir init.mkdir exists ok 17 - dir init.mkdir\deploy exists ok 18 - dir init.mkdir\revert exists ok 19 - dir init.mkdir\verify exists ok 20 - Each should have been sent to info ok 21 - Make the directories again ok 22 - Nothing should have been sent to info ok 23 - Make the directories once more ok 24 - revert dir exists again ok 25 - Should have noted creation of revert dir ok 26 - Should fail on permission issue ok 27 - Permission error should have ident "init" ok 28 - The permission error should be formatted properly ok 29 - App::Sqitch::Command::init->can('write_config') ok 30 - Another init object ok 31 - nonexistent.conf does not exist ok 32 - Write the config ok 33 - nonexistent.conf exists ok 34 - The configuration file should have no variables ok 35 - The creation should be sent to info ok 36 - All in core section should be commented-out ok 37 - Another init object ok 38 - Write the config ok 39 - nonexistent.conf exists ok 40 - The configuration should have been written with the one setting ok 41 - The creation should be sent to info ok 42 - Other settings should be commented-out ok 43 - Write the config again ok 44 - The configuration should be unchanged ok 45 - Nothing should have been sent to info ok 46 - Make an init object with user config ok 47 - nonexistent.conf does not exist ok 48 - Write the config with a user conf ok 49 - nonexistent.conf exists ok 50 - The configuration should just have core.top_dir ok 51 - The creation should be sent to info again ok 52 - Other settings should be commented-out ok 53 - Make an init object with system config ok 54 - Get target ok 55 - nonexistent.conf does not exist ok 56 - Write the config with a system conf ok 57 - nonexistent.conf exists ok 58 - The configuration should have local and system config ok 59 - The creation should be sent to info again ok 60 - Other settings should be commented-out ok 61 - Create new init with sqitch non-default attributes ok 62 - Write the config with core attrs ok 63 - The creation should be sent to info once more ok 64 - The configuration should have been written with all the core values ok 65 - Create new init with sqitch with non-default engine attributes ok 66 - Write the config with engine attrs ok 67 - The creation should be sent to info yet again ok 68 - The configuration should have been written with sqlite values ok 69 - Client should be included ok 70 - registry_uri should be included in a comment ok 71 - Create new init with sqitch with default engine attributes ok 72 - Write the config with engine attrs ok 73 - The creation should be sent to info again again ok 74 - The configuration should have been written with only the engine var ok 75 - Engine section should be present but commented-out ok 76 - Make an init with sqlite and user config ok 77 - nonexistent.conf does not exist ok 78 - Write the config with sqlite config ok 79 - The creation should be sent to info once more ok 80 - New config should have been written with sqlite values ok 81 - Configured client should be included in a comment ok 82 - Configured target should be included in a comment ok 83 - Configured registry should be included in a comment ok 84 - Create new init with sqitch with more non-default engine attributes ok 85 - Write the config with more engine attrs ok 86 - The creation should be sent to info one more time ok 87 - The configuration should have been written with client values ok 88 - registry should be included in a comment ok 89 - Create new init with sqitch with default engine attributes ok 90 - Write the config with engine attrs ok 91 - The creation should be sent to info again again again ok 92 - The configuration should have been written with only the engine var ok 93 - Engine section should be present but commented-out ok 94 - Make an init with pg and user config ok 95 - nonexistent.conf does not exist ok 96 - Write the config with pg config ok 97 - The pg config creation should be sent to info ok 98 - The configuration should have been written with pg options ok 99 - Configured registry should be in a comment ok 100 - Configured target should be in a comment ok 101 - App::Sqitch::Command::init->can('write_plan') ok 102 - Plan file should not yet exist ok 103 - Write the plan file ok 104 - The plan creation should be sent to info ok 105 - Plan file should now exist ok 106 - The contents should be correct ok 107 - Write the plan file again ok 108 - The file should not be overwritten ok 109 - Create new init with sqitch with project and URI ok 110 - Write the plan file again ok 111 - The plan creation should be sent to info againq ok 112 - Plan file should again exist ok 113 - The plan should include the project and uri pragmas ok 114 - App::Sqitch::Command::init->can('_validate_project') ok 115 - No project should yield usage ok 116 - No args should be passed to usage ok 117 - Should get error for invalid project name "^foo" ok 118 - Bad project "^foo" ident should be "init" ok 119 - Bad project "^foo" error message should be correct ok 120 - Should get error for invalid project name "foo^" ok 121 - Bad project "foo^" ident should be "init" ok 122 - Bad project "foo^" error message should be correct ok 123 - Should get error for invalid project name "foo^6" ok 124 - Bad project "foo^6" ident should be "init" ok 125 - Bad project "foo^6" error message should be correct ok 126 - Should get error for invalid project name "foo^666" ok 127 - Bad project "foo^666" ident should be "init" ok 128 - Bad project "foo^666" error message should be correct ok 129 - Should get error for invalid project name "%hi" ok 130 - Bad project "%hi" ident should be "init" ok 131 - Bad project "%hi" error message should be correct ok 132 - Should get error for invalid project name "hi!" ok 133 - Bad project "hi!" ident should be "init" ok 134 - Bad project "hi!" error message should be correct ok 135 - Should get error for invalid project name "foo@bar" ok 136 - Bad project "foo@bar" ident should be "init" ok 137 - Bad project "foo@bar" error message should be correct ok 138 - Should get error for invalid project name "foo:bar" ok 139 - Bad project "foo:bar" ident should be "init" ok 140 - Bad project "foo:bar" error message should be correct ok 141 - Should get error for invalid project name "+foo" ok 142 - Bad project "+foo" ident should be "init" ok 143 - Bad project "+foo" error message should be correct ok 144 - Should get error for invalid project name "-foo" ok 145 - Bad project "-foo" ident should be "init" ok 146 - Bad project "-foo" error message should be correct ok 147 - Should get error for invalid project name "@foo" ok 148 - Bad project "@foo" ident should be "init" ok 149 - Bad project "@foo" error message should be correct ok 150 - Execute! ok 151 - dir plan.dir exists ok 152 - dir plan.dir\deploy exists ok 153 - dir plan.dir\revert exists ok 154 - dir plan.dir\verify exists ok 155 - nonexistent.conf exists ok 156 - plan.dir\sqitch.plan exists ok 157 - Should have status messages ok 158 - The plan should have the --project name ok 159 - no warnings ok t/item_formatter.t .. 1..158 ok 1 - require App::Sqitch::ItemFormatter; ok 2 - App::Sqitch::ItemFormatter->can(...) ok 3 - 'Instantiated object' isa 'App::Sqitch::ItemFormatter' ok 4 - Should not be abbreviated by default ok 5 - Default date format should be "iso" ok 6 - Format "%e" should output "deploy" ok 7 - Format "%e" should output "revert" ok 8 - Format "%e" should output "fail" ok 9 - Format "%L" should output "Deploy" ok 10 - Format "%L" should output "Revert" ok 11 - Format "%L" should output "Fail" ok 12 - Format "%l" should output "deploy" ok 13 - Format "%l" should output "revert" ok 14 - Format "%l" should output "fail" ok 15 - Format "%{event}_" should output "Event: " ok 16 - Format "%{change}_" should output "Change: " ok 17 - Format "%{committer}_" should output "Committer:" ok 18 - Format "%{planner}_" should output "Planner: " ok 19 - Format "%{by}_" should output "By: " ok 20 - Format "%{date}_" should output "Date: " ok 21 - Format "%{committed}_" should output "Committed:" ok 22 - Format "%{planned}_" should output "Planned: " ok 23 - Format "%{name}_" should output "Name: " ok 24 - Format "%{email}_" should output "Email: " ok 25 - Format "%{requires}_" should output "Requires: " ok 26 - Format "%{conflicts}_" should output "Conflicts:" ok 27 - Format "%H" should output "123456789" ok 28 - Format "%h" should output "123456789" ok 29 - Format "%{5}h" should output "12345" ok 30 - Format "%{7}h" should output "1234567" ok 31 - Format "%n" should output "foo" ok 32 - Format "%n" should output "bar" ok 33 - Format "%o" should output "foo" ok 34 - Format "%o" should output "bar" ok 35 - Format "%c" should output "larry " ok 36 - Format "%{n}c" should output "damian" ok 37 - Format "%{name}c" should output "chip" ok 38 - Format "%{e}c" should output "larry@example.com" ok 39 - Format "%{email}c" should output "damian@example.com" ok 40 - Format "%{date}c" should output "2015-02-13 05:07:14 -0800" ok 41 - Format "%{date:rfc}c" should output "Fri, 13 Feb 2015 05:07:14 -0800" ok 42 - Format "%{d:long}c" should output "February 13, 2015 5:07:14 AM PST" ok 43 - Format "%{d:cldr:HH'h' mm'm'}c" should output "05h 07m" ok 44 - Format "%{d:strftime:%a at %H:%M:%S}c" should output "Fri at 05:07:14" ok 45 - Format "%p" should output "larry " ok 46 - Format "%{n}p" should output "damian" ok 47 - Format "%{name}p" should output "chip" ok 48 - Format "%{e}p" should output "larry@example.com" ok 49 - Format "%{email}p" should output "damian@example.com" ok 50 - Format "%{date}p" should output "2015-02-12 05:07:14 -0800" ok 51 - Format "%{date:rfc}p" should output "Thu, 12 Feb 2015 05:07:14 -0800" ok 52 - Format "%{d:long}p" should output "February 12, 2015 5:07:14 AM PST" ok 53 - Format "%{d:cldr:HH'h' mm'm'}p" should output "05h 07m" ok 54 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Thu at 05:07:14" ok 55 - Format "%t" should output "" ok 56 - Format "%t" should output " @foo" ok 57 - Format "%t" should output " @foo, @bar" ok 58 - Format "%{|}t" should output "" ok 59 - Format "%{|}t" should output " @foo" ok 60 - Format "%{|}t" should output " @foo|@bar" ok 61 - Format "%T" should output "" ok 62 - Format "%T" should output " (@foo)" ok 63 - Format "%T" should output " (@foo, @bar)" ok 64 - Format "%{|}T" should output "" ok 65 - Format "%{|}T" should output " (@foo)" ok 66 - Format "%{|}T" should output " (@foo|@bar)" ok 67 - Format "%r" should output "" ok 68 - Format "%r" should output " foo" ok 69 - Format "%r" should output " foo, bar" ok 70 - Format "%{|}r" should output "" ok 71 - Format "%{|}r" should output " foo" ok 72 - Format "%{|}r" should output " foo|bar" ok 73 - Format "%R" should output "" ok 74 - Format "%R" should output "Requires: foo[newline]" ok 75 - Format "%R" should output "Requires: foo, bar[newline]" ok 76 - Format "%{|}R" should output "" ok 77 - Format "%{|}R" should output "Requires: foo[newline]" ok 78 - Format "%{|}R" should output "Requires: foo|bar[newline]" ok 79 - Format "%x" should output "" ok 80 - Format "%x" should output " foo" ok 81 - Format "%x" should output " foo, bax" ok 82 - Format "%{|}x" should output "" ok 83 - Format "%{|}x" should output " foo" ok 84 - Format "%{|}x" should output " foo|bax" ok 85 - Format "%X" should output "" ok 86 - Format "%X" should output "Conflicts: foo[newline]" ok 87 - Format "%X" should output "Conflicts: foo, bar[newline]" ok 88 - Format "%{|}X" should output "" ok 89 - Format "%{|}X" should output "Conflicts: foo[newline]" ok 90 - Format "%{|}X" should output "Conflicts: foo|bar[newline]" ok 91 - Format "%{yellow}C" should output "" ok 92 - Format "%{:event}C" should output "" ok 93 - Format "%v" should output "[newline]" ok 94 - Format "%%" should output "%" ok 95 - Format "%s" should output "hi there" ok 96 - Format "%s" should output "hi there" ok 97 - Format "%s" should output "subject line" ok 98 - Format "%{ }s" should output " hi there" ok 99 - Format "%{xx}s" should output "xxhi there" ok 100 - Format "%b" should output "" ok 101 - Format "%b" should output "yo" ok 102 - Format "%b" should output "first graph[newline][newline]second graph[newline][newline]" ok 103 - Format "%{ }b" should output "" ok 104 - Format "%{xxx }b" should output "xxx yo" ok 105 - Format "%{x}b" should output "xfirst graph[newline]x[newline]xsecond graph[newline]x[newline]" ok 106 - Format "%{ }b" should output " yo" ok 107 - Format "%B" should output "hi there" ok 108 - Format "%B" should output "hi there[newline]yo" ok 109 - Format "%B" should output "subject line[newline][newline]first graph[newline][newline]second graph[newline][newline]" ok 110 - Format "%{ }B" should output " hi there" ok 111 - Format "%{xxx }B" should output "xxx hi there[newline]xxx yo" ok 112 - Format "%{x}B" should output "xsubject line[newline]x[newline]xfirst graph[newline]x[newline]xsecond graph[newline]x[newline]" ok 113 - Format "%{ }B" should output " hi there [newline] yo" ok 114 - Format "%{change}a" should output "change lolz[newline]" ok 115 - Format "%{change_id}a" should output "change_id 000011112222333444[newline]" ok 116 - Format "%{event}a" should output "event deploy[newline]" ok 117 - Format "%{tags}a" should output "tags @beta, @gamma[newline]" ok 118 - Format "%{requires}a" should output "requires foo, bar[newline]" ok 119 - Format "%{conflicts}a" should output "" ok 120 - Format "%{committer_name}a" should output "committer_name larry[newline]" ok 121 - Format "%{committed_at}a" should output "committed_at 2015-02-13T13:07:14Z[newline]" ok 122 - Should get exception for format "%_" ok 123 - %_ error ident should be "format" ok 124 - %_ error message should be correct ok 125 - Should get exception for unknown label in format "%_" ok 126 - Invalid %_ label error ident should be "format" ok 127 - Invalid %_ label error message should be correct ok 128 - Instantiate with abbrev => 4 ok 129 - %h should respect abbrev ok 130 - %H should not respect abbrev ok 131 - Instantiate with date_format => "rfc" ok 132 - %{date}c should respect the date_format attribute ok 133 - %{iso}c should override the date_format attribute ok 134 - Should get exception for unknown attribute passed to %a ok 135 - %a error ident should be "log" ok 136 - %a error message should be correct ok 137 - Construct with color "always" ok 138 - Format "%{yellow}C" should output yellow ok 139 - Format "%{red}C" should output red ok 140 - Format "%{blue}C" should output blue ok 141 - Format "%{cyan}C" should output cyan ok 142 - Format "%{magenta}C" should output magenta ok 143 - Format "%{:event}C" on "deploy" should output green ok 144 - Format "%{:event}C" on "revert" should output blue ok 145 - Format "%{:event}C" on "fail" should output red ok 146 - Should get an error for an invalid color ok 147 - Invalid color error ident should be "log" ok 148 - Invalid color error message should be correct ok 149 - Construct with color "never" ok 150 - Format "%{yellow}C" should not output a color ok 151 - Format "%{red}C" should not output a color ok 152 - Format "%{blue}C" should not output a color ok 153 - Format "%{cyan}C" should not output a color ok 154 - Format "%{magenta}C" should not output a color ok 155 - Should get an exception for a bad format code ok 156 - bad format code format error ident should be "log" ok 157 - bad format code format error message should be correct ok 158 - no warnings ok t/linelist.t ........ 1..28 ok 1 - require App::Sqitch::Plan::LineList; ok 2 - Count should be six ok 3 - Lines should be in order ok 4 - Should have foo at 0 ok 5 - Should have bar at 1 ok 6 - Should have yo1 at 2 ok 7 - Should have @alpha at 3 ok 8 - Should have blank at 4 ok 9 - Should have baz at 5 ok 10 - Should have yo2 at 6 ok 11 - Should not find "non" ok 12 - Should find foo at 0 ok 13 - Should find bar at 1 ok 14 - Should find yo1 at 2 ok 15 - Should find @alpha at 3 ok 16 - Should find blank at 4 ok 17 - Should find baz at 5 ok 18 - Should find yo2 at 6 ok 19 - Append hi ok 20 - Count should now be eight ok 21 - Lines should be in order with $hi at the end ok 22 - Insert a change at index 3 ok 23 - Count should now be nine ok 24 - Lines should be in order with $oy at index 3 ok 25 - Should find oy at 3 ok 26 - Should find @alpha at 4 ok 27 - Should find hi at 8 ok 28 - no warnings ok t/log.t ............. 1..248 ok 1 - require App::Sqitch::Command::log; ok 2 - Load a sqitch sqitch object ok 3 - 'log command' isa 'App::Sqitch::Command::log' ok 4 - App::Sqitch::Command::log->can(...) ok 5 - Options should be correct ok 6 - Default target should be undef ok 7 - 'new status with target' isa 'App::Sqitch::Command::log' ok 8 - Should have target "foo" ok 9 - 'Formatter' isa 'App::Sqitch::ItemFormatter' ok 10 - Should get empty hash for no config or options ok 11 - Should get error for invalid date format in config ok 12 - Invalid date format error ident should be "datetime" ok 13 - Invalid date format error message should be correct ok 14 - Should get error for invalid date format in optsions ok 15 - Invalid date format error ident should be "log" ok 16 - Invalid date format error message should be correct ok 17 - Should get error for invalid format in config ok 18 - Invalid format error ident should be "log" ok 19 - Invalid format error message should be correct ok 20 - Should get error for invalid format in optsions ok 21 - Invalid format error ident should be "log" ok 22 - Invalid format error message should be correct ok 23 - Configuration should respect --no-color, setting "never" ok 24 - --oneline should set format ok 25 - --oneline should set abbrev to 6 ok 26 - --oneline should not override --format ok 27 - --oneline should not overrride --abbrev ok 28 - Configuration should respect --no-color even when configure is set ok 29 - Configuration should respect color option ok 30 - Configuration should respect color config ok 31 - Configuration should respect color option ok 32 - Configuration should respect color config ok 33 - Configuration should respect color option ok 34 - Configuration should respect color config ok 35 - Configuration should respect color option ok 36 - Configuration should respect color config ok 37 - Instantiate with format "raw" ok 38 - Format "raw" should output correctly ok 39 - Format "raw" should output correctly without tags ok 40 - Instantiate with format "full" ok 41 - Format "full" should output correctly ok 42 - Instantiate with format "full" and date format "rfc" ok 43 - Format "full" and date format "rfc" should output correctly ok 44 - Instantiate with format "full" and date format "long" ok 45 - Format "full" and date format "long" should output correctly ok 46 - Instantiate with format "full" and date format "medium" ok 47 - Format "full" and date format "medium" should output correctly ok 48 - Format "full" should output correctly without tags ok 49 - Instantiate with format "long" ok 50 - Format "long" should output correctly ok 51 - Format "long" should output correctly without tags ok 52 - Instantiate with format "medium" ok 53 - Format "medium" should output correctly ok 54 - Instantiate with format "medium" and date format "rfc" ok 55 - Format "medium" and date format "rfc" should output correctly ok 56 - Instantiate with format "medium" and date format "long" ok 57 - Format "medium" and date format "long" should output correctly ok 58 - Instantiate with format "medium" and date format "medium" ok 59 - Format "medium" and date format "medium" should output correctly ok 60 - Instantiate with format "short" ok 61 - Format "short" should output correctly ok 62 - Instantiate with format "oneline" ok 63 - Format "oneline" should output correctly ok 64 - Format "%e" should output "deploy" ok 65 - Format "%e" should output "revert" ok 66 - Format "%e" should output "fail" ok 67 - Format "%L" should output "Deploy" ok 68 - Format "%L" should output "Revert" ok 69 - Format "%L" should output "Fail" ok 70 - Format "%l" should output "deploy" ok 71 - Format "%l" should output "revert" ok 72 - Format "%l" should output "fail" ok 73 - Format "%{event}_" should output "Event: " ok 74 - Format "%{change}_" should output "Change: " ok 75 - Format "%{committer}_" should output "Committer:" ok 76 - Format "%{planner}_" should output "Planner: " ok 77 - Format "%{by}_" should output "By: " ok 78 - Format "%{date}_" should output "Date: " ok 79 - Format "%{committed}_" should output "Committed:" ok 80 - Format "%{planned}_" should output "Planned: " ok 81 - Format "%{name}_" should output "Name: " ok 82 - Format "%{email}_" should output "Email: " ok 83 - Format "%{requires}_" should output "Requires: " ok 84 - Format "%{conflicts}_" should output "Conflicts:" ok 85 - Format "%H" should output "123456789" ok 86 - Format "%h" should output "123456789" ok 87 - Format "%{5}h" should output "12345" ok 88 - Format "%{7}h" should output "1234567" ok 89 - Format "%n" should output "foo" ok 90 - Format "%n" should output "bar" ok 91 - Format "%o" should output "foo" ok 92 - Format "%o" should output "bar" ok 93 - Format "%c" should output "larry " ok 94 - Format "%{n}c" should output "damian" ok 95 - Format "%{name}c" should output "chip" ok 96 - Format "%{e}c" should output "larry@example.com" ok 97 - Format "%{email}c" should output "damian@example.com" ok 98 - Format "%{date}c" should output "2015-02-13 05:07:17 -0800" ok 99 - Format "%{date:rfc}c" should output "Fri, 13 Feb 2015 05:07:17 -0800" ok 100 - Format "%{d:long}c" should output "February 13, 2015 5:07:17 AM PST" ok 101 - Format "%{d:cldr:HH'h' mm'm'}c" should output "05h 07m" ok 102 - Format "%{d:strftime:%a at %H:%M:%S}c" should output "Fri at 05:07:17" ok 103 - Format "%p" should output "larry " ok 104 - Format "%{n}p" should output "damian" ok 105 - Format "%{name}p" should output "chip" ok 106 - Format "%{e}p" should output "larry@example.com" ok 107 - Format "%{email}p" should output "damian@example.com" ok 108 - Format "%{date}p" should output "2015-02-12 05:07:17 -0800" ok 109 - Format "%{date:rfc}p" should output "Thu, 12 Feb 2015 05:07:17 -0800" ok 110 - Format "%{d:long}p" should output "February 12, 2015 5:07:17 AM PST" ok 111 - Format "%{d:cldr:HH'h' mm'm'}p" should output "05h 07m" ok 112 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Thu at 05:07:17" ok 113 - Format "%t" should output "" ok 114 - Format "%t" should output " @foo" ok 115 - Format "%t" should output " @foo, @bar" ok 116 - Format "%{|}t" should output "" ok 117 - Format "%{|}t" should output " @foo" ok 118 - Format "%{|}t" should output " @foo|@bar" ok 119 - Format "%T" should output "" ok 120 - Format "%T" should output " (@foo)" ok 121 - Format "%T" should output " (@foo, @bar)" ok 122 - Format "%{|}T" should output "" ok 123 - Format "%{|}T" should output " (@foo)" ok 124 - Format "%{|}T" should output " (@foo|@bar)" ok 125 - Format "%r" should output "" ok 126 - Format "%r" should output " foo" ok 127 - Format "%r" should output " foo, bar" ok 128 - Format "%{|}r" should output "" ok 129 - Format "%{|}r" should output " foo" ok 130 - Format "%{|}r" should output " foo|bar" ok 131 - Format "%R" should output "" ok 132 - Format "%R" should output "Requires: foo[newline]" ok 133 - Format "%R" should output "Requires: foo, bar[newline]" ok 134 - Format "%{|}R" should output "" ok 135 - Format "%{|}R" should output "Requires: foo[newline]" ok 136 - Format "%{|}R" should output "Requires: foo|bar[newline]" ok 137 - Format "%x" should output "" ok 138 - Format "%x" should output " foo" ok 139 - Format "%x" should output " foo, bax" ok 140 - Format "%{|}x" should output "" ok 141 - Format "%{|}x" should output " foo" ok 142 - Format "%{|}x" should output " foo|bax" ok 143 - Format "%X" should output "" ok 144 - Format "%X" should output "Conflicts: foo[newline]" ok 145 - Format "%X" should output "Conflicts: foo, bar[newline]" ok 146 - Format "%{|}X" should output "" ok 147 - Format "%{|}X" should output "Conflicts: foo[newline]" ok 148 - Format "%{|}X" should output "Conflicts: foo|bar[newline]" ok 149 - Format "%{yellow}C" should output "" ok 150 - Format "%{:event}C" should output "" ok 151 - Format "%v" should output "[newline]" ok 152 - Format "%%" should output "%" ok 153 - Format "%s" should output "hi there" ok 154 - Format "%s" should output "hi there" ok 155 - Format "%s" should output "subject line" ok 156 - Format "%{ }s" should output " hi there" ok 157 - Format "%{xx}s" should output "xxhi there" ok 158 - Format "%b" should output "" ok 159 - Format "%b" should output "yo" ok 160 - Format "%b" should output "first graph[newline][newline]second graph[newline][newline]" ok 161 - Format "%{ }b" should output "" ok 162 - Format "%{xxx }b" should output "xxx yo" ok 163 - Format "%{x}b" should output "xfirst graph[newline]x[newline]xsecond graph[newline]x[newline]" ok 164 - Format "%{ }b" should output " yo" ok 165 - Format "%B" should output "hi there" ok 166 - Format "%B" should output "hi there[newline]yo" ok 167 - Format "%B" should output "subject line[newline][newline]first graph[newline][newline]second graph[newline][newline]" ok 168 - Format "%{ }B" should output " hi there" ok 169 - Format "%{xxx }B" should output "xxx hi there[newline]xxx yo" ok 170 - Format "%{x}B" should output "xsubject line[newline]x[newline]xfirst graph[newline]x[newline]xsecond graph[newline]x[newline]" ok 171 - Format "%{ }B" should output " hi there [newline] yo" ok 172 - Format "%{change}a" should output "change lolz[newline]" ok 173 - Format "%{change_id}a" should output "change_id 000011112222333444[newline]" ok 174 - Format "%{event}a" should output "event deploy[newline]" ok 175 - Format "%{tags}a" should output "tags @beta, @gamma[newline]" ok 176 - Format "%{requires}a" should output "requires foo, bar[newline]" ok 177 - Format "%{conflicts}a" should output "" ok 178 - Format "%{committer_name}a" should output "committer_name larry[newline]" ok 179 - Format "%{committed_at}a" should output "committed_at 2015-02-13T13:07:17Z[newline]" ok 180 - Should get exception for format "%_" ok 181 - %_ error ident should be "format" ok 182 - %_ error message should be correct ok 183 - Should get exception for unknown label in format "%_" ok 184 - Invalid %_ label error ident should be "format" ok 185 - Invalid %_ label error message should be correct ok 186 - Instantiate with abbrev => 4 ok 187 - %h should respect abbrev ok 188 - %H should not respect abbrev ok 189 - Instantiate with date_format => "rfc" ok 190 - %{date}c should respect the date_format attribute ok 191 - %{iso}c should override the date_format attribute ok 192 - Should get exception for unknown attribute passed to %a ok 193 - %a error ident should be "format" ok 194 - %a error message should be correct ok 195 - Format "%{yellow}C" should output yellow ok 196 - Format "%{red}C" should output red ok 197 - Format "%{blue}C" should output blue ok 198 - Format "%{cyan}C" should output cyan ok 199 - Format "%{magenta}C" should output magenta ok 200 - Format "%{:event}C" on "deploy" should output green ok 201 - Format "%{:event}C" on "revert" should output blue ok 202 - Format "%{:event}C" on "fail" should output red ok 203 - Instantiate with format "full" again ok 204 - Format "full" should output correctly with color ok 205 - Instantiate with format "long" again ok 206 - Format "long" should output correctly with color ok 207 - Instantiate with format "medium" again ok 208 - Format "medium" should output correctly with color ok 209 - Instantiate with format "short" again ok 210 - Format "short" should output correctly with color ok 211 - Instantiate with format "oneline" again ok 212 - Format "oneline" should output correctly with color ok 213 - Should get an error for an invalid color ok 214 - Invalid color error ident should be "format" ok 215 - Invalid color error message should be correct ok 216 - Should get exception for unititialied db ok 217 - Uninit db error ident should be "log" ok 218 - Uninit db exit val should be 1 ok 219 - Uninit db error message should be correct ok 220 - Should have passed undef to Target ok 221 - Should get error for empty event table ok 222 - no events error ident should be "log" ok 223 - no events exit val should be 1 ok 224 - no events error message should be correct ok 225 - Search should have been limited to one row ok 226 - Should have passed undef to Target again ok 227 - Execute log ok 228 - Should have passed undef to Target once more ok 229 - The proper args should have been passed to search_events ok 230 - The change should have been paged ok 231 - Execute with target arg ok 232 - Target name should have been passed to Target ok 233 - The proper args should have been passed to search_events ok 234 - The change should have been paged ok 235 - 'log with attributes' isa 'App::Sqitch::Command::log' ok 236 - Execute log with attributes ok 237 - Should have passed target name to Target ok 238 - All params should have been passed to search_events ok 239 - Both changes should have been paged ok 240 - Execute log with attributes ok 241 - Should have passed target name to Target ok 242 - Should have got warning for two targets ok 243 - 'log with bad format' isa 'App::Sqitch::Command::log' ok 244 - Should get an exception for a bad format code ok 245 - bad format code format error ident should be "format" ok 246 - bad format code format error message should be correct ok 247 - Should have passed target name to Target ok 248 - no warnings ok t/mysql.t ........... ok 1 - require App::Sqitch::Engine::mysql; ok 2 - config_vars should return three vars ok 3 - An object of class 'App::Sqitch::Engine::mysql' isa 'App::Sqitch::Engine::mysql' ok 4 - client should default to mysql ok 5 - registry default should be "sqitch" ok 6 - registry_uri should be correct ok 7 - uri should be "db:mysql:" ok 8 - registry_destination should be the same as registry_uri ok 9 - mysql command should be std opts-only ok 10 - Should have emitted a warning for no database name ok 11 - An object of class 'App::Sqitch::Engine::mysql' isa 'App::Sqitch::Engine::mysql' ok 12 - Set some variables ok 13 - Variables should not be passed to mysql ok 14 - Create another mysql ok 15 - client should be as configured ok 16 - URI should be as configured ok 17 - target name should be the URI ok 18 - destination should be the URI ok 19 - registry should be as configured ok 20 - Sqitch DB URI should be the same as uri but with DB name "meta" ok 21 - registry_destination should be the sqitch DB URL ok 22 - mysql command should be configured ok 23 - Create a mysql with sqitch with options ok 24 - client should be as optioned ok 25 - registry should be as configured ok 26 - Sqitch DB URI should be the same as uri but with DB name "meta" ok 27 - registry_destination should be the sqitch DB URL sans password ok 28 - registry should still be as configured ok 29 - mysql command should be as optioned ok 30 - App::Sqitch::Engine::mysql->can(...) ok 31 - Create a mysql with sqitch with options ok 32 - MYSQL_PWD should be "s3cr3t" ok 33 - Call _run ok 34 - Command should be passed to run() ok 35 - MYSQL_PWD should be "s3cr3t" ok 36 - Call _spool ok 37 - Command should be passed to spool() ok 38 - MYSQL_PWD should be "s3cr3t" ok 39 - Call _capture ok 40 - Command should be passed to capture() ok 41 - Create a mysql with sqitch with no pw ok 42 - MYSQL_PWD should not exist ok 43 - Call _run again ok 44 - Command should be passed to run() again ok 45 - MYSQL_PWD should not exist ok 46 - Call _spool again ok 47 - Command should be passed to spool() again ok 48 - MYSQL_PWD should not exist ok 49 - Call _capture again ok 50 - Command should be passed to capture() again ok 51 - MYSQL_PWD should not exist ok 52 - Run foo/bar.sql ok 53 - File should be passed to run() ok 54 - MYSQL_PWD should not exist ok 55 - Spool a "file handle" ok 56 - Handle should be passed to spool() ok 57 - MYSQL_PWD should not exist ok 58 - Verify foo/bar.sql ok 59 - Verify file should be passed to capture() ok 60 - MYSQL_PWD should not exist ok 61 - Verify foo/bar.sql again ok 62 - Verifile file should be passed to run() for high verbosity ok 63 - App::Sqitch::Engine::mysql->can('_ts2char_format') ok 64 - _ts2char_format should work ok 65 - App::Sqitch::Engine::mysql->can('_dt') ok 66 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 67 - DateTime year should be set ok 68 - DateTime month should be set ok 69 - DateTime day should be set ok 70 - DateTime hour should be set ok 71 - DateTime minute should be set ok 72 - DateTime second should be set ok 73 - DateTime TZ should be set ok 74 - App::Sqitch::Engine::mysql->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test MySQL engine: DBI connect('database=information_schema','root',...) failed: Can't connect to MySQL server on 'localhost' (10061) at t/mysql.t line 277. # ok 75 # skip Unable to live-test MySQL engine: DBI connect('database=information_schema','root',...) failed: Can't connect to MySQL server on 'localhost' (10061) at t/mysql.t line 277. # 1..75 ok t/options.t ......... 1..26 ok 1 - use App::Sqitch; ok 2 - App::Sqitch->can('_split_args') ok 3 - Split on command-only ok 4 - Split on core option plus command ok 5 - Split on core option plus command plus command option ok 6 - Option with arg should work ok 7 - Option with arg should work ok 8 - Should handle no command ok 9 - Spliting args when using bundling should work ok 10 - _pod2usage should be called ok 11 - Should exit for invalid option ok 12 - App::Sqitch->can('_parse_core_opts') ok 13 - Should have default config for no options ok 14 - Ask for help ok 15 - Should have been helped ok 16 - Ask for man ok 17 - Should have been manned ok 18 - Should parse lots of options ok 19 - 'top_dir' isa 'Path::Class::Dir' ok 20 - 'deploy_dir' isa 'Path::Class::Dir' ok 21 - 'revert_dir' isa 'Path::Class::Dir' ok 22 - 'verify_dir' isa 'Path::Class::Dir' ok 23 - --quiet should trump verbosity. ok 24 - Short options should work ok 25 - Run _pod2usage ok 26 - Proper args should have been passed to Pod::Usage ok t/oracle.t .......... ok 1 - require App::Sqitch::Engine::oracle; ok 2 - config_vars should return three vars ok 3 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 4 - client should default to sqlplus ok 5 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 6 - client should use $ORACLE_HOME ok 7 - registry default should be empty ok 8 - Default URI should be "db:oracle" ok 9 - Target name should be the uri stringified ok 10 - Destination should fall back on environment variables ok 11 - Registry target should be the same as target ok 12 - sqlplus command should connect to /nolog ok 13 - _script should work ok 14 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 15 - _script should assemble connection string ok 16 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 17 - _script should assemble connection string with host ok 18 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 19 - Set some variables ok 20 - _script should assemble connection string with host, port, and vars ok 21 - Target name should not read $TWO_TASK ok 22 - Destination should read $TWO_TASK ok 23 - Registry destination should be the same as destination ok 24 - Target name should not read $ORACLE_SID ok 25 - Destination should read $ORACLE_SID ok 26 - Registry destination should be the same as destination ok 27 - Target name should not fall back on sysuser ok 28 - Destination should fall back on sysuser ok 29 - Registry destination should be the same as destination ok 30 - Target should be the default ok 31 - Destination should prefer $TWO_TASK to username ok 32 - Registry destination should be the same as destination ok 33 - Create another ora ok 34 - client should be as configured ok 35 - DB URI should be as configured ok 36 - Target name should be the passwordless URI stringified ok 37 - Destination should be the URI without the password ok 38 - registry_destination should replace be the same URI ok 39 - registry should be as configured ok 40 - sqlplus command should be configured ok 41 - Create yet another ora ok 42 - client should be as configured ok 43 - registry should be as configured ok 44 - sqlplus command should be configured ok 45 - Create a ora with sqitch with options ok 46 - client should be as optioned ok 47 - registry should still be as configured ok 48 - sqlplus command should be as optioned ok 49 - App::Sqitch::Engine::oracle->can(...) ok 50 - Call _run ok 51 - SQLPlus command should be passed to spool() ok 52 - The script should be spooled ok 53 - Call _capture ok 54 - Command and script should be passed to run3() ok 55 - _capture should actually capture ok 56 - _capture should die when sqlplus dies ok 57 - STDERR should be emitted by _capture ok 58 - App::Sqitch::Engine::oracle->can('_file_for_script') ok 59 - File without special characters should be used directly ok 60 - Double quotes should be SQL-escaped ok 61 - Get temp dir ok 62 - 'Temp dir' isa 'Path::Class::Dir' ok 63 - File with special char should be aliased ok 64 - File with special char and quotes should be aliased ok 65 - Run foo/bar.sql ok 66 - File should be passed to run() ok 67 - Run foo/"bar".sql ok 68 - Double quotes in file passed to run() should be escaped ok 69 - Spool a "file handle" ok 70 - sqlplus command should be passed to spool() ok 71 - 'Array ove handles should be passed to spool' isa 'ARRAY' ok 72 - First file handle should be script ok 73 - Second should be the passed handle ok 74 - Verify foo/bar.sql ok 75 - Verify file should be passed to capture() ok 76 - Verify foo/bar.sql again ok 77 - Verifile file should be passed to run() for high verbosity ok 78 - App::Sqitch::Engine::oracle->can('_ts2char') ok 79 - _ts2char should work ok 80 - App::Sqitch::Engine::oracle->can('_dt') ok 81 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 82 - DateTime year should be set ok 83 - DateTime month should be set ok 84 - DateTime day should be set ok 85 - DateTime hour should be set ok 86 - DateTime minute should be set ok 87 - DateTime second should be set ok 88 - DateTime TZ should be set ok 89 - App::Sqitch::Engine::oracle->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test Oracle engine: DBI connect('','scott',...) failed: ORA-12560: TNS:protocol adapter error (DBD ERROR: OCIServerAttach) at t/oracle.t line 446. # ok 90 # skip Unable to live-test Oracle engine: DBI connect('','scott',...) failed: ORA-12560: TNS:protocol adapter error (DBD ERROR: OCIServerAttach) at t/oracle.t line 446. # 1..90 ok t/pg.t .............. ok 1 - require App::Sqitch::Engine::pg; ok 2 - config_vars should return three vars ok 3 - An object of class 'App::Sqitch::Engine::pg' isa 'App::Sqitch::Engine::pg' ok 4 - client should default to psql ok 5 - registry default should be "sqitch" ok 6 - DB URI should be "db:pg:" ok 7 - Destination should fall back on environment variables ok 8 - Registry destination should be the same as destination ok 9 - psql command should be std opts-only ok 10 - An object of class 'App::Sqitch::Engine::pg' isa 'App::Sqitch::Engine::pg' ok 11 - Set some variables ok 12 - Variables should be passed to psql via --set ok 13 - Target should not read $PGDATABASE ok 14 - Meta target should be the same as destination ok 15 - Target should not read $PGUSER ok 16 - Meta target should be the same as destination ok 17 - Target should not fall back on sysuser ok 18 - Meta target should be the same as destination ok 19 - Target should be the default ok 20 - Meta target should be the same as destination ok 21 - Create another pg ok 22 - client should be as configured ok 23 - uri should be as configured ok 24 - registry should be as configured ok 25 - psql command should be configured from URI config ok 26 - Create a pg with sqitch with options ok 27 - client should be as optioned ok 28 - registry_destination should be the same as destination ok 29 - registry should still be as configured ok 30 - psql command should be as optioned ok 31 - App::Sqitch::Engine::pg->can(...) ok 32 - PGPASSWORD should be "s3cr3t" ok 33 - Call _run ok 34 - Command should be passed to run() ok 35 - PGPASSWORD should be "s3cr3t" ok 36 - Call _spool ok 37 - Command should be passed to spool() ok 38 - PGPASSWORD should be "s3cr3t" ok 39 - Call _capture ok 40 - Command should be passed to capture() ok 41 - Create a pg with sqitch with no pw ok 42 - PGPASSWORD should not exist ok 43 - Call _run again ok 44 - Command should be passed to run() again ok 45 - PGPASSWORD should not exist ok 46 - Call _spool again ok 47 - Command should be passed to spool() again ok 48 - PGPASSWORD should not exist ok 49 - Call _capture again ok 50 - Command should be passed to capture() again ok 51 - PGPASSWORD should not exist ok 52 - Run foo/bar.sql ok 53 - File should be passed to run() ok 54 - PGPASSWORD should not exist ok 55 - Spool a "file handle" ok 56 - Handle should be passed to spool() ok 57 - PGPASSWORD should not exist ok 58 - Verify foo/bar.sql ok 59 - Verify file should be passed to capture() ok 60 - PGPASSWORD should not exist ok 61 - Verify foo/bar.sql again ok 62 - Verifile file should be passed to run() for high verbosity ok 63 - App::Sqitch::Engine::pg->can('_ts2char') ok 64 - _ts2char should work ok 65 - App::Sqitch::Engine::pg->can('_dt') ok 66 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 67 - DateTime year should be set ok 68 - DateTime month should be set ok 69 - DateTime day should be set ok 70 - DateTime hour should be set ok 71 - DateTime minute should be set ok 72 - DateTime second should be set ok 73 - DateTime TZ should be set ok 74 - App::Sqitch::Engine::pg->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test PostgreSQL engine: "psql.exe" failed to start: "The system cannot find the file specified" # ok 75 # skip Unable to live-test PostgreSQL engine: "psql.exe" failed to start: "The system cannot find the file specified" # 1..75 ok t/plan.t ............ ok 1 - use App::Sqitch::Plan; ok 2 - App::Sqitch::Plan->can(...) ok 3 - An object of class 'App::Sqitch::Plan' isa 'App::Sqitch::Plan' ok 4 - File should be coopied from Target ok 5 - Should parse simple "widgets.plan" ok 6 - Should have sorted changes ok 7 - 'changes' isa 'ARRAY' ok 8 - 'lines' isa 'ARRAY' ok 9 - All "widgets.plan" changes should be parsed ok 10 - All "widgets.plan" lines should be parsed ok 11 - Should parse multi-tagged "multi.plan" ok 12 - Should have sorted changes twice ok 13 - Should have captured the multi pragmas ok 14 - Should have "multi.plan" lines and changes ok 15 - Should read plan with no tags ok 16 - Should have sorted changes ok 17 - Should have captured the changes-only pragmas ok 18 - Should have lines and changes for tagless plan ok 19 - Should die on plan with bad change name ok 20 - Bad change name error ident should be "parse" ok 21 - And the bad change name error message should be correct ok 22 - Should not have sorted changes ok 23 - Should die on plan with bad name "+^foo" ok 24 - Exception ident should be "parse" ok 25 - And "+^foo" should trigger the appropriate message ok 26 - Should not have sorted changes ok 27 - Should die on plan with bad name "@^foo" ok 28 - Exception ident should be "parse" ok 29 - And "@^foo" should trigger the appropriate message ok 30 - Should not have sorted changes ok 31 - Should die on plan with bad name "+foo^" ok 32 - Exception ident should be "parse" ok 33 - And "+foo^" should trigger the appropriate message ok 34 - Should not have sorted changes ok 35 - Should die on plan with bad name "@foo^" ok 36 - Exception ident should be "parse" ok 37 - And "@foo^" should trigger the appropriate message ok 38 - Should not have sorted changes ok 39 - Should die on plan with bad name "+foo^6" ok 40 - Exception ident should be "parse" ok 41 - And "+foo^6" should trigger the appropriate message ok 42 - Should not have sorted changes ok 43 - Should die on plan with bad name "@foo^6" ok 44 - Exception ident should be "parse" ok 45 - And "@foo^6" should trigger the appropriate message ok 46 - Should not have sorted changes ok 47 - Should die on plan with bad name "+foo^666" ok 48 - Exception ident should be "parse" ok 49 - And "+foo^666" should trigger the appropriate message ok 50 - Should not have sorted changes ok 51 - Should die on plan with bad name "@foo^666" ok 52 - Exception ident should be "parse" ok 53 - And "@foo^666" should trigger the appropriate message ok 54 - Should not have sorted changes ok 55 - Should die on plan with bad name "+%hi" ok 56 - Exception ident should be "parse" ok 57 - And "+%hi" should trigger the appropriate message ok 58 - Should not have sorted changes ok 59 - Should die on plan with bad name "@%hi" ok 60 - Exception ident should be "parse" ok 61 - And "@%hi" should trigger the appropriate message ok 62 - Should not have sorted changes ok 63 - Should die on plan with bad name "+hi!" ok 64 - Exception ident should be "parse" ok 65 - And "+hi!" should trigger the appropriate message ok 66 - Should not have sorted changes ok 67 - Should die on plan with bad name "@hi!" ok 68 - Exception ident should be "parse" ok 69 - And "@hi!" should trigger the appropriate message ok 70 - Should not have sorted changes ok 71 - Should die on plan with bad name "+foo@bar" ok 72 - Exception ident should be "parse" ok 73 - And "+foo@bar" should trigger the appropriate message ok 74 - Should not have sorted changes ok 75 - Should die on plan with bad name "@foo@bar" ok 76 - Exception ident should be "parse" ok 77 - And "@foo@bar" should trigger the appropriate message ok 78 - Should not have sorted changes ok 79 - Should die on plan with bad name "+foo:bar" ok 80 - Exception ident should be "parse" ok 81 - And "+foo:bar" should trigger the appropriate message ok 82 - Should not have sorted changes ok 83 - Should die on plan with bad name "@foo:bar" ok 84 - Exception ident should be "parse" ok 85 - And "@foo:bar" should trigger the appropriate message ok 86 - Should not have sorted changes ok 87 - Should die on plan with bad name "++foo" ok 88 - Exception ident should be "parse" ok 89 - And "++foo" should trigger the appropriate message ok 90 - Should not have sorted changes ok 91 - Should die on plan with bad name "@+foo" ok 92 - Exception ident should be "parse" ok 93 - And "@+foo" should trigger the appropriate message ok 94 - Should not have sorted changes ok 95 - Should die on plan with bad name "+-foo" ok 96 - Exception ident should be "parse" ok 97 - And "+-foo" should trigger the appropriate message ok 98 - Should not have sorted changes ok 99 - Should die on plan with bad name "@-foo" ok 100 - Exception ident should be "parse" ok 101 - And "@-foo" should trigger the appropriate message ok 102 - Should not have sorted changes ok 103 - Should die on plan with bad name "+@foo" ok 104 - Exception ident should be "parse" ok 105 - And "+@foo" should trigger the appropriate message ok 106 - Should not have sorted changes ok 107 - Should die on plan with bad name "@@foo" ok 108 - Exception ident should be "parse" ok 109 - And "@@foo" should trigger the appropriate message ok 110 - Should not have sorted changes ok 111 - Should parse "foo" ok 112 - Should have captured the foo pragmas ok 113 - Should have pragmas in plan with change "foo" ok 114 - Should parse "@foo" ok 115 - Should have pragmas in plan with tag "foo" ok 116 - Should have line and change for "@foo" ok 117 - Should parse "12" ok 118 - Should have captured the 12 pragmas ok 119 - Should have pragmas in plan with change "12" ok 120 - Should parse "@12" ok 121 - Should have pragmas in plan with tag "12" ok 122 - Should have line and change for "@12" ok 123 - Should parse "t" ok 124 - Should have captured the t pragmas ok 125 - Should have pragmas in plan with change "t" ok 126 - Should parse "@t" ok 127 - Should have pragmas in plan with tag "t" ok 128 - Should have line and change for "@t" ok 129 - Should parse "6" ok 130 - Should have captured the 6 pragmas ok 131 - Should have pragmas in plan with change "6" ok 132 - Should parse "@6" ok 133 - Should have pragmas in plan with tag "6" ok 134 - Should have line and change for "@6" ok 135 - Should parse "阱阪阬" ok 136 - Should have captured the 阱阪阬 pragmas ok 137 - Should have pragmas in plan with change "阱阪阬" ok 138 - Should parse "@阱阪阬" ok 139 - Should have pragmas in plan with tag "阱阪阬" ok 140 - Should have line and change for "@阱阪阬" ok 141 - Should parse "foo/bar" ok 142 - Should have captured the foo/bar pragmas ok 143 - Should have pragmas in plan with change "foo/bar" ok 144 - Should parse "@foo/bar" ok 145 - Should have pragmas in plan with tag "foo/bar" ok 146 - Should have line and change for "@foo/bar" ok 147 - Should parse "beta1" ok 148 - Should have captured the beta1 pragmas ok 149 - Should have pragmas in plan with change "beta1" ok 150 - Should parse "@beta1" ok 151 - Should have pragmas in plan with tag "beta1" ok 152 - Should have line and change for "@beta1" ok 153 - Should parse "foo_" ok 154 - Should have captured the foo_ pragmas ok 155 - Should have pragmas in plan with change "foo_" ok 156 - Should parse "@foo_" ok 157 - Should have pragmas in plan with tag "foo_" ok 158 - Should have line and change for "@foo_" ok 159 - Should parse "_foo" ok 160 - Should have captured the _foo pragmas ok 161 - Should have pragmas in plan with change "_foo" ok 162 - Should parse "@_foo" ok 163 - Should have pragmas in plan with tag "_foo" ok 164 - Should have line and change for "@_foo" ok 165 - Should parse "v1.0-1b" ok 166 - Should have captured the v1.0-1b pragmas ok 167 - Should have pragmas in plan with change "v1.0-1b" ok 168 - Should parse "@v1.0-1b" ok 169 - Should have pragmas in plan with tag "v1.0-1b" ok 170 - Should have line and change for "@v1.0-1b" ok 171 - Should parse "v1.2-1" ok 172 - Should have captured the v1.2-1 pragmas ok 173 - Should have pragmas in plan with change "v1.2-1" ok 174 - Should parse "@v1.2-1" ok 175 - Should have pragmas in plan with tag "v1.2-1" ok 176 - Should have line and change for "@v1.2-1" ok 177 - Should parse "v1.2+1" ok 178 - Should have captured the v1.2+1 pragmas ok 179 - Should have pragmas in plan with change "v1.2+1" ok 180 - Should parse "@v1.2+1" ok 181 - Should have pragmas in plan with tag "v1.2+1" ok 182 - Should have line and change for "@v1.2+1" ok 183 - Should parse "v1.2_1" ok 184 - Should have captured the v1.2_1 pragmas ok 185 - Should have pragmas in plan with change "v1.2_1" ok 186 - Should parse "@v1.2_1" ok 187 - Should have pragmas in plan with tag "v1.2_1" ok 188 - Should have line and change for "@v1.2_1" ok 189 - Should have sorted changes 18 times ok 190 - Should die on plan with reserved tag "@HEAD" ok 191 - @HEAD exception should have ident "plan" ok 192 - And the @HEAD error message should be correct ok 193 - Should have sorted changes once ok 194 - Should die on plan with reserved tag "@ROOT" ok 195 - @ROOT exception should have ident "plan" ok 196 - And the @ROOT error message should be correct ok 197 - Should have sorted @ROOT changes nonce ok 198 - Should die on plan with reserved tag "@FIRST" ok 199 - @FIRST exception should have ident "plan" ok 200 - And the @FIRST error message should be correct ok 201 - Should have sorted @FIRST changes nonce ok 202 - Should die on plan with reserved tag "@LAST" ok 203 - @LAST exception should have ident "plan" ok 204 - And the @LAST error message should be correct ok 205 - Should have sorted @LAST changes nonce ok 206 - Should die on plan with SHA1 change name ok 207 - The SHA1 error ident should be "parse" ok 208 - And the SHA1 error message should be correct ok 209 - Should have sorted changes nonce ok 210 - Should die on plan with tag but no preceding change ok 211 - The missing change error ident should be "parse" ok 212 - And the missing change error message should be correct ok 213 - Should have sorted changes nonce ok 214 - Should die on plan with dupe tag ok 215 - The dupe tag error ident should be "parse" ok 216 - And the missing change error message should be correct ok 217 - Should have sorted changes twice ok 218 - Should die on plan with dupe change ok 219 - The dupe change error ident should be "parse" ok 220 - And the dupe change error message should be correct ok 221 - Should have sorted changes once ok 222 - Should die on invalid dependency ok 223 - The invalid dependency error ident should be "parse" ok 224 - And the invalid dependency error message should be correct ok 225 - Should have sorted changes nonce ok 226 - Should die on change with no timestamp ok 227 - The missing timestamp error ident should be "parse" ok 228 - And the missing timestamp error message should be correct ok 229 - Should have sorted changes nonce ok 230 - Should die on change with no planner ok 231 - The missing parsener error ident should be "parse" ok 232 - And the missing planner error message should be correct ok 233 - Should have sorted changes nonce ok 234 - Should die on change with no timestamp or planner ok 235 - The missing timestamp or parsener error ident should be "parse" ok 236 - And the missing timestamp or planner error message should be correct ok 237 - Should have sorted changes nonce ok 238 - Should parse plan with pragmas" ok 239 - Should have sorted changes once ok 240 - Should have captured all of the pragmas ok 241 - Should have "multi.plan" lines and changes ok 242 - Should parse plan with deploy and revert operators ok 243 - Should have sorted changes twice ok 244 - Should have captured the deploy-and-revert pragmas ok 245 - Should have "deploy-and-revert.plan" lines and changes ok 246 - Should get exception for nonexistent plan file ok 247 - Nonexistent plan file ident should be "plan" ok 248 - Nonexistent plan file message should be correct ok 249 - 'Plan with sqitch with plan file with dependencies' isa 'App::Sqitch::Plan' ok 250 - File should be coopied from Sqitch ok 251 - Load plan with dependencies file ok 252 - The changes should include the dependencies ok 253 - Should have sorted changes twice ok 254 - 'Plan with sqitch with plan file with project deps' isa 'App::Sqitch::Plan' ok 255 - File should be coopied from Sqitch ok 256 - Load plan with project deps file ok 257 - The changes should include the cross-project deps ok 258 - Should have sorted changes twice ok 259 - 'Plan with sqitch with plan with tag dependencies' isa 'App::Sqitch::Plan' ok 260 - File should be coopied from Sqitch ok 261 - Should get an exception for tag with dependencies ok 262 - The tag dependencies error ident should be "plan" ok 263 - And the tag dependencies error message should be correct ok 264 - 'Plan with sqitch with plan file' isa 'App::Sqitch::Plan' ok 265 - File should be coopied from Sqitch ok 266 - Lines should be parsed from file ok 267 - Changes should be parsed from file ok 268 - Should get all tags from tags() ok 269 - Should have sorted changes twice ok 270 - Load should parse plan from file ok 271 - Should have captured the multi pragmas ok 272 - And the parsed file should have lines and changes ok 273 - Should have sorted changes twice ok 274 - App::Sqitch::Plan->can(...) ok 275 - Position should start at -1 ok 276 - Current should be undef ok 277 - Get next change ok 278 - 'First change' isa 'App::Sqitch::Plan::Change' ok 279 - It should be the first change ok 280 - Position should be at 0 ok 281 - Count should be 4 ok 282 - Current should be current ok 283 - Should get first change from change_at(0) ok 284 - Peek to next change ok 285 - 'Peeked change' isa 'App::Sqitch::Plan::Change' ok 286 - Peeked change should be second change ok 287 - last() should return last change ok 288 - Current should still be current ok 289 - Peek should still be next ok 290 - Next should be the second change ok 291 - Position should be at 1 ok 292 - Should get second change from change_at(1) ok 293 - Peek should return an object ok 294 - 'Third change' isa 'App::Sqitch::Plan::Change' ok 295 - It should be the foo tag ok 296 - Current should be the second change ok 297 - Should get third change next ok 298 - Position should be at 2 ok 299 - Current should be third change ok 300 - Should get third change from change_at(1) ok 301 - Get fourth change ok 302 - 'Fourth change' isa 'App::Sqitch::Plan::Change' ok 303 - Fourth change should be "hey-there" ok 304 - Position should be at 3 ok 305 - Peek should return undef ok 306 - Next should return undef ok 307 - Position should be at 7 ok 308 - Next should still return undef ok 309 - Position should still be at 7 ok 310 - Reset the plan ok 311 - Position should be back at -1 ok 312 - Current should still be undef ok 313 - Next should return the first change again ok 314 - Position should be at 0 again ok 315 - Current should be first change ok 316 - Index of change should be 0 ok 317 - Plan should contain change ok 318 - Should be able to get change 0 by name ok 319 - Should be able to find change 0 by name ok 320 - Should be able to get change 0 by ID ok 321 - Should be able to find change 0 by ID ok 322 - Index of @bar should be 3 ok 323 - Plan should contain @bar ok 324 - Should be able to get hey-there via @bar ok 325 - Should be able to get hey-there via @bar ID ok 326 - Should be able to find hey-there via @bar ok 327 - Should be able to find hey-there via @bar ID ok 328 - Seek to the "@bar" change ok 329 - Position should be at 3 again ok 330 - Current should be fourth again ok 331 - Index of you should be 1 ok 332 - Plan should contain "you" ok 333 - Should be able to get change 1 by name ok 334 - Should be able to find change 1 by name ok 335 - Seek to the "you" change ok 336 - Position should be at 1 again ok 337 - Current should be second again ok 338 - Index of baz should be undef ok 339 - Plan should not contain "baz" ok 340 - Index of @baz should be 3 ok 341 - Plan should contain @baz ok 342 - Seek to the "baz" change ok 343 - Position should be at 3 again ok 344 - Current should be fourth again ok 345 - Should still get first change from change_at(0) ok 346 - Should still get second change from change_at(1) ok 347 - Should still get third change from change_at(1) ok 348 - Should die seeking invalid change ok 349 - Invalid seek change error ident should be "plan" ok 350 - And the failure message should be correct ok 351 - All should return all changes ok 352 - Reset the plan again ok 353 - Change hey should be passed to do sub ok 354 - Change hey should be the topic in do sub ok 355 - Change you should be passed to do sub ok 356 - Change you should be the topic in do sub ok 357 - Change this/rocks should be passed to do sub ok 358 - Change this/rocks should be the topic in do sub ok 359 - Change hey-there should be passed to do sub ok 360 - Change hey-there should be the topic in do sub ok 361 - 'search_changes() should return a code ref' isa 'CODE' ok 362 - All the changes should be returned in the proper order ok 363 - Direction "DESC" should work ok 364 - Should get error for invalid direction ok 365 - Invalid direction error ident should be "DEV" ok 366 - Invalid direction error message should be correct ok 367 - Direction "asc" should work ok 368 - Search by change name should work ok 369 - Search by change name should work as a regex ok 370 - Search by change name should with a character class ok 371 - Search by planner should work ok 372 - Search by planner should work as a regex ok 373 - Search by operation "deploy" should work ok 374 - Search by operation "rever" should return nothing ok 375 - Search by operation "DEPLOY" should now return two changes ok 376 - Search by operation "REVERT" should return the other two ok 377 - Should get an error for unknown operation ok 378 - Unknown operation error ident should be "DEV" ok 379 - Unknown operation error message should be correct ok 380 - Search with offset 2 should work ok 381 - Search with offset 2, limit 1 should work ok 382 - Search with offset 3 and dierction "desc" should work ok 383 - Search with offset 2, limit 1, dierction "desc" should work ok 384 - App::Sqitch::Plan->can('write_to') ok 385 - plan.out does not exist ok 386 - Write out the file ok 387 - plan.out exists ok 388 - The contents should look right ok 389 - Write out the file from "this/rocks" ok 390 - Plan should have been written from "this/rocks" through tags at end ok 391 - Write the file up to "you" ok 392 - Plan should have been written through "you" and its tags ok 393 - Write from "@foo" to "this/rocks" ok 394 - Plan should have been written from "@foo" to "this/rocks" ok 395 - Write from "hey" to "@foo" ok 396 - Plan should have been written from "hey" through "@foo" ok 397 - App::Sqitch::Plan->can('_is_valid') ok 398 - Should find "^foo" invalid ok 399 - Invalid name "^foo" error ident should be "plan" ok 400 - And the "^foo" error message should be correct ok 401 - Should find "foo^" invalid ok 402 - Invalid name "foo^" error ident should be "plan" ok 403 - And the "foo^" error message should be correct ok 404 - Should find "foo^6" invalid ok 405 - Invalid name "foo^6" error ident should be "plan" ok 406 - And the "foo^6" error message should be correct ok 407 - Should find "foo^666" invalid ok 408 - Invalid name "foo^666" error ident should be "plan" ok 409 - And the "foo^666" error message should be correct ok 410 - Should find "%hi" invalid ok 411 - Invalid name "%hi" error ident should be "plan" ok 412 - And the "%hi" error message should be correct ok 413 - Should find "hi!" invalid ok 414 - Invalid name "hi!" error ident should be "plan" ok 415 - And the "hi!" error message should be correct ok 416 - Should find "foo@bar" invalid ok 417 - Invalid name "foo@bar" error ident should be "plan" ok 418 - And the "foo@bar" error message should be correct ok 419 - Should find "foo:bar" invalid ok 420 - Invalid name "foo:bar" error ident should be "plan" ok 421 - And the "foo:bar" error message should be correct ok 422 - Should find "+foo" invalid ok 423 - Invalid name "+foo" error ident should be "plan" ok 424 - And the "+foo" error message should be correct ok 425 - Should find "-foo" invalid ok 426 - Invalid name "-foo" error ident should be "plan" ok 427 - And the "-foo" error message should be correct ok 428 - Should find "@foo" invalid ok 429 - Invalid name "@foo" error ident should be "plan" ok 430 - And the "@foo" error message should be correct ok 431 - Name "foo" sould be valid ok 432 - Name "12" sould be valid ok 433 - Name "t" sould be valid ok 434 - Name "6" sould be valid ok 435 - Name "阱阪阬" sould be valid ok 436 - Name "foo/bar" sould be valid ok 437 - Name "beta1" sould be valid ok 438 - Name "v1.2-1" sould be valid ok 439 - Name "v1.2+1" sould be valid ok 440 - Name "v1.2_1" sould be valid ok 441 - Add tag "w00t" ok 442 - Should have 4 changes ok 443 - Should find "@w00t" in plan ok 444 - Should find "@w00t" at index 3 ok 445 - Last change should be "hey-there" ok 446 - The w00t tag should be on the last change ok 447 - An object of class 'App::Sqitch::Plan::Tag' isa 'App::Sqitch::Plan::Tag' ok 448 - The returned tag should be @w00t ok 449 - The @w00t change should be the last change ok 450 - Write out the file again ok 451 - The contents should include the "w00t" tag ok 452 - Add tag "@alpha" ok 453 - Should find "@alpha" in plan ok 454 - Should find "@alpha" at index 3 ok 455 - The returned tag should be @alpha ok 456 - The @alpha change should be the last change ok 457 - Tag change "you" ok 458 - Should still have 4 changes ok 459 - Should find "@blarney" in plan ok 460 - Should find "@blarney" at index 1 ok 461 - The blarney tag should be on the second change ok 462 - An object of class 'App::Sqitch::Plan::Tag' isa 'App::Sqitch::Plan::Tag' ok 463 - The returned tag should be @blarney ok 464 - The @blarney change should be the second change ok 465 - Should get error trying to add duplicate tag ok 466 - Duplicate tag error ident should be "plan" ok 467 - And the error message should report it as a dupe ok 468 - Should get error for invalid tag "^foo" ok 469 - Invalid name "^foo" error ident should be "plan" ok 470 - And the "^foo" error message should be correct ok 471 - Should get error for invalid tag "foo^" ok 472 - Invalid name "foo^" error ident should be "plan" ok 473 - And the "foo^" error message should be correct ok 474 - Should get error for invalid tag "foo^6" ok 475 - Invalid name "foo^6" error ident should be "plan" ok 476 - And the "foo^6" error message should be correct ok 477 - Should get error for invalid tag "foo^666" ok 478 - Invalid name "foo^666" error ident should be "plan" ok 479 - And the "foo^666" error message should be correct ok 480 - Should get error for invalid tag "%hi" ok 481 - Invalid name "%hi" error ident should be "plan" ok 482 - And the "%hi" error message should be correct ok 483 - Should get error for invalid tag "hi!" ok 484 - Invalid name "hi!" error ident should be "plan" ok 485 - And the "hi!" error message should be correct ok 486 - Should get error for invalid tag "foo@bar" ok 487 - Invalid name "foo@bar" error ident should be "plan" ok 488 - And the "foo@bar" error message should be correct ok 489 - Should get error for invalid tag "foo:bar" ok 490 - Invalid name "foo:bar" error ident should be "plan" ok 491 - And the "foo:bar" error message should be correct ok 492 - Should get error for invalid tag "+foo" ok 493 - Invalid name "+foo" error ident should be "plan" ok 494 - And the "+foo" error message should be correct ok 495 - Should get error for invalid tag "-foo" ok 496 - Invalid name "-foo" error ident should be "plan" ok 497 - And the "-foo" error message should be correct ok 498 - Should get error for invalid tag "foo\#bar" ok 499 - Invalid name "foo\#bar" error ident should be "plan" ok 500 - And the "foo\#bar" error message should be correct ok 501 - Should get error for reserved tag "HEAD" ok 502 - Reserved tag "HEAD" error ident should be "plan" ok 503 - And the reserved tag "HEAD" message should be correct ok 504 - Should get error for reserved tag "ROOT" ok 505 - Reserved tag "ROOT" error ident should be "plan" ok 506 - And the reserved tag "ROOT" message should be correct ok 507 - Should get error for reserved tag "FIRST" ok 508 - Reserved tag "FIRST" error ident should be "plan" ok 509 - And the reserved tag "FIRST" message should be correct ok 510 - Should get error for reserved tag "LAST" ok 511 - Reserved tag "LAST" error ident should be "plan" ok 512 - And the reserved tag "LAST" message should be correct ok 513 - Should get error for a SHA1 tag ok 514 - SHA1 tag error ident should be "plan" ok 515 - And the reserved name error should be output ok 516 - Add change "booyah" ok 517 - Should have 5 changes ok 518 - Should find "booyah" in plan ok 519 - Should find "booyah" at index 4 ok 520 - Last change should be "booyah" ok 521 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 522 - Should have plain stringification of "booya" ok 523 - Write out the file again ok 524 - The contents should include the "booyah" change ok 525 - Add change "blow" ok 526 - Should have 6 changes ok 527 - Should find "blow" in plan ok 528 - Should find "blow" at index 5 ok 529 - Last change should be "blow" ok 530 - Should have nice stringification of "blow [booyah]" ok 531 - The new change should have been appended to the lines, too ok 532 - Add change "jive" with dupe dependency ok 533 - Should have 7 changes ok 534 - Should find "jive" in plan ok 535 - Should find "jive" at index 6 ok 536 - jive change should be "jive" ok 537 - Should have dependency "blow" ok 538 - Should have nice stringification of "jive [blow]" ok 539 - The new change should have been appended to the lines, too ok 540 - Add change "moo" with dupe dependencies ok 541 - Should have 8 changes ok 542 - Should find "moo" in plan ok 543 - Should find "moo" at index 7 ok 544 - moo change should be "moo" ok 545 - Should require "ext:whu" ok 546 - Should conflict with "blow" and "ext:whu" ok 547 - Should have nice stringification of "moo [ext:foo !blow !ext:whu]" ok 548 - The new change should have been appended to the lines, too ok 549 - Should get error trying to add duplicate change ok 550 - Duplicate change error ident should be "plan" ok 551 - And the error message should suggest "rework" ok 552 - Should get error for invalid change "^foo" ok 553 - Invalid name "^foo" error ident should be "plan" ok 554 - And the "^foo" error message should be correct ok 555 - Should get error for invalid change "foo^" ok 556 - Invalid name "foo^" error ident should be "plan" ok 557 - And the "foo^" error message should be correct ok 558 - Should get error for invalid change "foo^6" ok 559 - Invalid name "foo^6" error ident should be "plan" ok 560 - And the "foo^6" error message should be correct ok 561 - Should get error for invalid change "foo^666" ok 562 - Invalid name "foo^666" error ident should be "plan" ok 563 - And the "foo^666" error message should be correct ok 564 - Should get error for invalid change "%hi" ok 565 - Invalid name "%hi" error ident should be "plan" ok 566 - And the "%hi" error message should be correct ok 567 - Should get error for invalid change "hi!" ok 568 - Invalid name "hi!" error ident should be "plan" ok 569 - And the "hi!" error message should be correct ok 570 - Should get error for invalid change "foo@bar" ok 571 - Invalid name "foo@bar" error ident should be "plan" ok 572 - And the "foo@bar" error message should be correct ok 573 - Should get error for invalid change "foo:bar" ok 574 - Invalid name "foo:bar" error ident should be "plan" ok 575 - And the "foo:bar" error message should be correct ok 576 - Should get error for invalid change "+foo" ok 577 - Invalid name "+foo" error ident should be "plan" ok 578 - And the "+foo" error message should be correct ok 579 - Should get error for invalid change "-foo" ok 580 - Invalid name "-foo" error ident should be "plan" ok 581 - And the "-foo" error message should be correct ok 582 - Should get error for invalid change "@foo" ok 583 - Invalid name "@foo" error ident should be "plan" ok 584 - And the "@foo" error message should be correct ok 585 - Should get error for reserved name "HEAD" ok 586 - Reserved name "HEAD" error ident should be "plan" ok 587 - And the reserved name "HEAD" message should be correct ok 588 - Should get error for reserved name "ROOT" ok 589 - Reserved name "ROOT" error ident should be "plan" ok 590 - And the reserved name "ROOT" message should be correct ok 591 - Should get error for reserved name "FIRST" ok 592 - Reserved name "FIRST" error ident should be "plan" ok 593 - And the reserved name "FIRST" message should be correct ok 594 - Should get error for reserved name "LAST" ok 595 - Reserved name "LAST" error ident should be "plan" ok 596 - And the reserved name "LAST" message should be correct ok 597 - Should get failure for failed dependency ok 598 - Dependency error ident should be "plan" ok 599 - The dependency error should be correct ok 600 - Should get failure for invalid dependency ok 601 - Invalid dependency error ident should be "plan" ok 602 - The invalid dependency error should be correct ok 603 - Should get failure for invalid conflict ok 604 - Invalid conflict error ident should be "plan" ok 605 - The invalid conflict error should be correct ok 606 - Should get failure for failed tag dependency ok 607 - Tag dependency error ident should be "plan" ok 608 - The tag dependency error should be correct ok 609 - Should get error for a SHA1 change ok 610 - SHA1 tag error ident should be "plan" ok 611 - And the reserved name error should be output ok 612 - App::Sqitch::Plan->can('rework') ok 613 - Rework change "you" ok 614 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 615 - Reworked change should be "you" ok 616 - Get original "you" change ok 617 - It should also be named "you" ok 618 - And it should have the one rework tag ok 619 - The original file should now be named you@bar.sql ok 620 - It should require the previous "you" change ok 621 - The new "you" should have been appended to the lines, too ok 622 - Should find "you@HEAD" in plan ok 623 - It should be at position 8 ok 624 - The plan count should be 9 ok 625 - Tag @beta1 ok 626 - Rework change "you" again ok 627 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 628 - New reworked change should be "you" ok 629 - Get original "you" change again ok 630 - It should still be named "you" ok 631 - And it should have the one rework tag ok 632 - Get you@beta1 ok 633 - The second "you" should be named that ok 634 - And the second change should have the rework_tag "@beta1" ok 635 - But the new reworked change should have no rework tags ok 636 - It should require the previous "you" change ok 637 - The new reworking should have been appended to the lines ok 638 - Should find "you@HEAD" in plan ok 639 - It should be at position 9 ok 640 - The plan count should be 10 ok 641 - rework should die on nonexistent change ok 642 - Nonexistent change error ident should be "plan" ok 643 - And the error should suggest "sqitch add" ok 644 - rework_stpe should die on lack of intervening tag ok 645 - Missing tag error ident should be "plan" ok 646 - And the error should suggest "sqitch tag" ok 647 - rework should die on failed dependency ok 648 - Rework dependency error ident should be "plan" ok 649 - The rework dependency error should be correct ok 650 - Should get failure for invalid dependency ok 651 - Invalid dependency error ident should be "plan" ok 652 - The invalid dependency error should be correct ok 653 - Should get failure for invalid conflict ok 654 - Invalid conflict error ident should be "plan" ok 655 - The invalid conflict error should be correct ok 656 - 'Plan shoud work plan with dupe change across tags' isa 'App::Sqitch::Plan' ok 657 - File should be coopied from Sqitch ok 658 - Project name should be set ok 659 - Lines with dupe change should be read from file ok 660 - Noes with dupe change should be read from file ok 661 - Should have sorted changes three times ok 662 - Should find "whatever" in plan ok 663 - Should get an error trying to find dupe key. ok 664 - Dupe key error ident should be "plan" ok 665 - Dupe key error message should be correct ok 666 - Should get 3 for whatever@HEAD ok 667 - Should get 0 for whatever@bar ok 668 - Should get an error seeking dupe key. ok 669 - Dupe key error ident should be "plan" ok 670 - Dupe key error message should be correct ok 671 - Should find whatever@HEAD at index 3 ok 672 - Should find whatever@HEAD at index 0 ok 673 - Should find first instance of whatever at index 0 ok 674 - Should find first instance of whatever after @bar at index 5 ok 675 - Seek whatever@HEAD ok 676 - Position should be 3 ok 677 - Seek whatever@bar ok 678 - Position should be 0 ok 679 - Last tagged change should be "hi" ok 680 - App::Sqitch::Plan->can('open_script') ok 681 - Open bar.sql ok 682 - It should be the right file ok 683 - Open baz.sql ok 684 - It should be empty ok 685 - open_script() should die on nonexistent file ok 686 - Nonexistent file error ident should be "io" ok 687 - Nonexistent file error message should be correct ok 688 - App::Sqitch::Plan->can('check_changes') ok 689 - Should get original order when no dependencies ok 690 - Should get original order when no prepreqs ok 691 - Should get original order when that requires this ok 692 - Should get original order when other requires that ok 693 - Should get error for out-of-order dependency ok 694 - Unordered dependency error ident should be "parse" ok 695 - And the unordered dependency error message should be correct ok 696 - Should get error for multiple dependency errors ok 697 - Multiple dependency error ident should be "parse" ok 698 - And the multiple dependency error message should be correct ok 699 - Should get original order when requiring a tag ok 700 - Should get original order when requiring a step as-of a tag ok 701 - Should get failure for a step after a tag ok 702 - Step after tag error ident should be "parse" ok 703 - And we the unknown change as-of a tag message should be correct ok 704 - Should get failure for a cycle ok 705 - Cycle error ident should be "parse" ok 706 - The cycle error message should be correct ok 707 - Should get failure for a two-hop cycle ok 708 - Two-hope cycle error ident should be "parse" ok 709 - The two-hop cycle error message should be correct ok 710 - Should get original order with earlier dependency ok 711 - Should get error with misordered and seen dependencies ok 712 - Misorderd and seen error ident should be "parse" ok 713 - And the misordered and seen error message should be correct ok 714 - Should die on unknown dependency ok 715 - Unknown dependency error ident should be "parse" ok 716 - And the error should point to the offending change ok 717 - Should die on unknown tag dependency ok 718 - Unknown tag dependency error ident should be "parse" ok 719 - And the error should point to the offending change ok 720 - Should get original order with external dependency ok 721 - Should die on self dependency ok 722 - Self dependency error ident should be "parse" ok 723 - And the self dependency error should be correct ok 724 - Should get original order with cascading dependencies ok 725 - Should get original order with multiple cascading dependencies ok 726 - App::Sqitch::Plan->can('_check_dependencies') ok 727 - Depend "hi" should be in project "dupe_change_diff_tag" ok 728 - Dependency on "hi" should succeed ok 729 - Depend "greets" should be in project "dupe_change_diff_tag" ok 730 - Dependency on "greets" should succeed ok 731 - Depend "whatever" should be in project "dupe_change_diff_tag" ok 732 - Dependency on "whatever" should succeed ok 733 - Depend "@foo" should be in project "dupe_change_diff_tag" ok 734 - Dependency on "@foo" should succeed ok 735 - Depend "whatever@foo" should be in project "dupe_change_diff_tag" ok 736 - Dependency on "whatever@foo" should succeed ok 737 - Depend "ext:larry" should be in project "ext" ok 738 - Dependency on "ext:larry" should succeed ok 739 - Depend "ext:greets" should be in project "ext" ok 740 - Dependency on "ext:greets" should succeed ok 741 - Should get error trying to depend on "wanker" ok 742 - Dependency "req" error ident should be "plan" ok 743 - And should get unknown dependency message for "wanker" ok 744 - Should get error trying to depend on "@blah" ok 745 - Dependency "req" error ident should be "plan" ok 746 - And should get unknown dependency message for "@blah" ok 747 - Should get error trying to depend on "greets@foo" ok 748 - Dependency "req" error ident should be "plan" ok 749 - And should get unknown dependency message for "greets@foo" ok 750 - Should have undef URI when no pragma ok 751 - 'Plan with sqitch with plan file with dependencies' isa 'App::Sqitch::Plan' ok 752 - File should be coopied from Sqitch ok 753 - syntax_version should be set ok 754 - Project should be set ok 755 - Should have URI from pragma ok 756 - 'It' isa 'URI' ok 757 - Should die on plan with no project pragma ok 758 - Missing prorject error ident should be "parse" ok 759 - The missing project error message should be correct ok 760 - Should die on invalid project name "^foo" ok 761 - Ident for bad proj "^foo" should be "parse" ok 762 - Error message for bad project "^foo" should be correct ok 763 - Should die on invalid project name "foo^" ok 764 - Ident for bad proj "foo^" should be "parse" ok 765 - Error message for bad project "foo^" should be correct ok 766 - Should die on invalid project name "foo^6" ok 767 - Ident for bad proj "foo^6" should be "parse" ok 768 - Error message for bad project "foo^6" should be correct ok 769 - Should die on invalid project name "foo^666" ok 770 - Ident for bad proj "foo^666" should be "parse" ok 771 - Error message for bad project "foo^666" should be correct ok 772 - Should die on invalid project name "%hi" ok 773 - Ident for bad proj "%hi" should be "parse" ok 774 - Error message for bad project "%hi" should be correct ok 775 - Should die on invalid project name "hi!" ok 776 - Ident for bad proj "hi!" should be "parse" ok 777 - Error message for bad project "hi!" should be correct ok 778 - Should die on invalid project name "foo@bar" ok 779 - Ident for bad proj "foo@bar" should be "parse" ok 780 - Error message for bad project "foo@bar" should be correct ok 781 - Should die on invalid project name "foo:bar" ok 782 - Ident for bad proj "foo:bar" should be "parse" ok 783 - Error message for bad project "foo:bar" should be correct ok 784 - Should die on invalid project name "+foo" ok 785 - Ident for bad proj "+foo" should be "parse" ok 786 - Error message for bad project "+foo" should be correct ok 787 - Should die on invalid project name "-foo" ok 788 - Ident for bad proj "-foo" should be "parse" ok 789 - Error message for bad project "-foo" should be correct ok 790 - Should die on invalid project name "@foo" ok 791 - Ident for bad proj "@foo" should be "parse" ok 792 - Error message for bad project "@foo" should be correct 1..792 ok t/plan_command.t .... 1..215 ok 1 - require App::Sqitch::Command::plan; ok 2 - Load a sqitch sqitch object ok 3 - 'plan command' isa 'App::Sqitch::Command::plan' ok 4 - App::Sqitch::Command::plan->can(...) ok 5 - Options should be correct ok 6 - 'Formatter' isa 'App::Sqitch::ItemFormatter' ok 7 - Should get empty hash for no config or options ok 8 - Should get error for invalid date format in config ok 9 - Invalid date format error ident should be "datetime" ok 10 - Invalid date format error message should be correct ok 11 - Should get error for invalid date format in optsions ok 12 - Invalid date format error ident should be "plan" ok 13 - Invalid date format error message should be correct ok 14 - Should get error for invalid format in config ok 15 - Invalid format error ident should be "plan" ok 16 - Invalid format error message should be correct ok 17 - Should get error for invalid format in optsions ok 18 - Invalid format error ident should be "plan" ok 19 - Invalid format error message should be correct ok 20 - Configuration should respect --no-color, setting "never" ok 21 - --oneline should set format ok 22 - --oneline should set abbrev to 6 ok 23 - --oneline should not override --format ok 24 - --oneline should not overrride --abbrev ok 25 - Configuration should respect --no-color even when configure is set ok 26 - Configuration should respect color option ok 27 - Configuration should respect color config ok 28 - Configuration should respect color option ok 29 - Configuration should respect color config ok 30 - Configuration should respect color option ok 31 - Configuration should respect color config ok 32 - Configuration should respect color option ok 33 - Configuration should respect color config ok 34 - Instantiate with format "raw" ok 35 - Format "raw" should output correctly ok 36 - Format "raw" should output correctly without tags ok 37 - Instantiate with format "full" ok 38 - Format "full" should output correctly ok 39 - Instantiate with format "full" and date format "rfc" ok 40 - Format "full" and date format "rfc" should output correctly ok 41 - Instantiate with format "full" and date format "long" ok 42 - Format "full" and date format "long" should output correctly ok 43 - Instantiate with format "full" and date format "medium" ok 44 - Format "full" and date format "medium" should output correctly ok 45 - Format "full" should output correctly without tags ok 46 - Instantiate with format "long" ok 47 - Format "long" should output correctly ok 48 - Format "long" should output correctly without tags ok 49 - Instantiate with format "medium" ok 50 - Format "medium" should output correctly ok 51 - Instantiate with format "medium" and date format "rfc" ok 52 - Format "medium" and date format "rfc" should output correctly ok 53 - Instantiate with format "medium" and date format "long" ok 54 - Format "medium" and date format "long" should output correctly ok 55 - Instantiate with format "medium" and date format "medium" ok 56 - Format "medium" and date format "medium" should output correctly ok 57 - Instantiate with format "short" ok 58 - Format "short" should output correctly ok 59 - Instantiate with format "oneline" ok 60 - Format "oneline" should output correctly ok 61 - Format "oneline" should output correctly without tags ok 62 - Format "%e" should output "deploy" ok 63 - Format "%e" should output "revert" ok 64 - Format "%e" should output "fail" ok 65 - Format "%L" should output "Deploy" ok 66 - Format "%L" should output "Revert" ok 67 - Format "%L" should output "Fail" ok 68 - Format "%l" should output "deploy" ok 69 - Format "%l" should output "revert" ok 70 - Format "%l" should output "fail" ok 71 - Format "%{event}_" should output "Event: " ok 72 - Format "%{change}_" should output "Change: " ok 73 - Format "%{planner}_" should output "Planner: " ok 74 - Format "%{by}_" should output "By: " ok 75 - Format "%{date}_" should output "Date: " ok 76 - Format "%{planned}_" should output "Planned: " ok 77 - Format "%{name}_" should output "Name: " ok 78 - Format "%{email}_" should output "Email: " ok 79 - Format "%{requires}_" should output "Requires: " ok 80 - Format "%{conflicts}_" should output "Conflicts:" ok 81 - Format "%H" should output "123456789" ok 82 - Format "%h" should output "123456789" ok 83 - Format "%{5}h" should output "12345" ok 84 - Format "%{7}h" should output "1234567" ok 85 - Format "%n" should output "foo" ok 86 - Format "%n" should output "bar" ok 87 - Format "%o" should output "foo" ok 88 - Format "%o" should output "bar" ok 89 - Format "%p" should output "larry " ok 90 - Format "%{n}p" should output "damian" ok 91 - Format "%{name}p" should output "chip" ok 92 - Format "%{e}p" should output "larry@example.com" ok 93 - Format "%{email}p" should output "damian@example.com" ok 94 - Format "%{date}p" should output "2015-02-12 05:07:29 -0800" ok 95 - Format "%{date:rfc}p" should output "Thu, 12 Feb 2015 05:07:29 -0800" ok 96 - Format "%{d:long}p" should output "February 12, 2015 5:07:29 AM PST" ok 97 - Format "%{d:cldr:HH'h' mm'm'}p" should output "05h 07m" ok 98 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Thu at 05:07:29" ok 99 - Format "%t" should output "" ok 100 - Format "%t" should output " @foo" ok 101 - Format "%t" should output " @foo, @bar" ok 102 - Format "%{|}t" should output "" ok 103 - Format "%{|}t" should output " @foo" ok 104 - Format "%{|}t" should output " @foo|@bar" ok 105 - Format "%T" should output "" ok 106 - Format "%T" should output " (@foo)" ok 107 - Format "%T" should output " (@foo, @bar)" ok 108 - Format "%{|}T" should output "" ok 109 - Format "%{|}T" should output " (@foo)" ok 110 - Format "%{|}T" should output " (@foo|@bar)" ok 111 - Format "%r" should output "" ok 112 - Format "%r" should output " foo" ok 113 - Format "%r" should output " foo, bar" ok 114 - Format "%{|}r" should output "" ok 115 - Format "%{|}r" should output " foo" ok 116 - Format "%{|}r" should output " foo|bar" ok 117 - Format "%R" should output "" ok 118 - Format "%R" should output "Requires: foo[newline]" ok 119 - Format "%R" should output "Requires: foo, bar[newline]" ok 120 - Format "%{|}R" should output "" ok 121 - Format "%{|}R" should output "Requires: foo[newline]" ok 122 - Format "%{|}R" should output "Requires: foo|bar[newline]" ok 123 - Format "%x" should output "" ok 124 - Format "%x" should output " foo" ok 125 - Format "%x" should output " foo, bax" ok 126 - Format "%{|}x" should output "" ok 127 - Format "%{|}x" should output " foo" ok 128 - Format "%{|}x" should output " foo|bax" ok 129 - Format "%X" should output "" ok 130 - Format "%X" should output "Conflicts: foo[newline]" ok 131 - Format "%X" should output "Conflicts: foo, bar[newline]" ok 132 - Format "%{|}X" should output "" ok 133 - Format "%{|}X" should output "Conflicts: foo[newline]" ok 134 - Format "%{|}X" should output "Conflicts: foo|bar[newline]" ok 135 - Format "%{yellow}C" should output "" ok 136 - Format "%{:event}C" should output "" ok 137 - Format "%v" should output "[newline]" ok 138 - Format "%%" should output "%" ok 139 - Format "%s" should output "hi there" ok 140 - Format "%s" should output "hi there" ok 141 - Format "%s" should output "subject line" ok 142 - Format "%{ }s" should output " hi there" ok 143 - Format "%{xx}s" should output "xxhi there" ok 144 - Format "%b" should output "" ok 145 - Format "%b" should output "yo" ok 146 - Format "%b" should output "first graph[newline][newline]second graph[newline][newline]" ok 147 - Format "%{ }b" should output "" ok 148 - Format "%{xxx }b" should output "xxx yo" ok 149 - Format "%{x}b" should output "xfirst graph[newline]x[newline]xsecond graph[newline]x[newline]" ok 150 - Format "%{ }b" should output " yo" ok 151 - Format "%B" should output "hi there" ok 152 - Format "%B" should output "hi there[newline]yo" ok 153 - Format "%B" should output "subject line[newline][newline]first graph[newline][newline]second graph[newline][newline]" ok 154 - Format "%{ }B" should output " hi there" ok 155 - Format "%{xxx }B" should output "xxx hi there[newline]xxx yo" ok 156 - Format "%{x}B" should output "xsubject line[newline]x[newline]xfirst graph[newline]x[newline]xsecond graph[newline]x[newline]" ok 157 - Format "%{ }B" should output " hi there [newline] yo" ok 158 - Format "%{change}a" should output "change lolz[newline]" ok 159 - Format "%{change_id}a" should output "change_id 000011112222333444[newline]" ok 160 - Format "%{event}a" should output "event deploy[newline]" ok 161 - Format "%{tags}a" should output "tags @beta, @gamma[newline]" ok 162 - Format "%{requires}a" should output "requires foo, bar[newline]" ok 163 - Format "%{conflicts}a" should output "" ok 164 - Should get exception for format "%_" ok 165 - %_ error ident should be "format" ok 166 - %_ error message should be correct ok 167 - Should get exception for unknown label in format "%_" ok 168 - Invalid %_ label error ident should be "format" ok 169 - Invalid %_ label error message should be correct ok 170 - Instantiate with abbrev => 4 ok 171 - %h should respect abbrev ok 172 - %H should not respect abbrev ok 173 - Instantiate with date_format => "rfc" ok 174 - %{date}p should respect the date_format attribute ok 175 - %{iso}p should override the date_format attribute ok 176 - Should get exception for unknown attribute passed to %a ok 177 - %a error ident should be "format" ok 178 - %a error message should be correct ok 179 - Format "%{yellow}C" should output yellow ok 180 - Format "%{red}C" should output red ok 181 - Format "%{blue}C" should output blue ok 182 - Format "%{cyan}C" should output cyan ok 183 - Format "%{magenta}C" should output magenta ok 184 - Format "%{:event}C" on "deploy" should output green ok 185 - Format "%{:event}C" on "revert" should output blue ok 186 - Format "%{:event}C" on "fail" should output red ok 187 - Instantiate with format "full" again ok 188 - Format "full" should output correctly with color ok 189 - Instantiate with format "long" again ok 190 - Format "long" should output correctly with color ok 191 - Instantiate with format "medium" again ok 192 - Format "medium" should output correctly with color ok 193 - Instantiate with format "short" again ok 194 - Format "short" should output correctly with color ok 195 - Instantiate with format "oneline" again ok 196 - Format "oneline" should output correctly with color ok 197 - Should get an error for an invalid color ok 198 - Invalid color error ident should be "format" ok 199 - Invalid color error message should be correct ok 200 - Should get error for no changes ok 201 - no changes error ident should be "plan" ok 202 - no changes exit val should be 1 ok 203 - no changes error message should be correct ok 204 - Execute plan ok 205 - The proper args should have been passed to search_events ok 206 - The event should have been paged ok 207 - 'plan with attributes' isa 'App::Sqitch::Command::plan' ok 208 - Execute plan with attributes ok 209 - All params should have been passed to search_events ok 210 - Both events should have been paged ok 211 - 'plan with bad format' isa 'App::Sqitch::Command::plan' ok 212 - Should get an exception for a bad format code ok 213 - bad format code format error ident should be "format" ok 214 - bad format code format error message should be correct ok 215 - no warnings ok t/pragma.t .......... 1..10 ok 1 - require App::Sqitch::Plan::Pragma; ok 2 - App::Sqitch::Plan::Pragma->can(...) ok 3 - An object of class 'App::Sqitch::Plan::Pragma' isa 'App::Sqitch::Plan::Pragma' ok 4 - An object of class 'App::Sqitch::Plan::Pragma' isa 'App::Sqitch::Plan::Line' ok 5 - Name should format as "%foo" ok 6 - Value should format as "" ok 7 - should stringify to "%foo" ok 8 - Create pragma with more stuff ok 9 - It should stringify correctly ok 10 - no warnings ok t/rebase.t .......... ok 1 - require App::Sqitch::Command::rebase; ok 2 - The class (or class-like) 'App::Sqitch::Command::rebase' isa 'App::Sqitch::Command' ok 3 - App::Sqitch::Command::rebase->can(...) ok 4 - Options should be correct ok 5 - Should have empty default configuration with no config or opts ok 6 - Should have set option ok 7 - Should have mode, deploy_variables, verify, no_prompt, and log_only ok 8 - Should have set_revert option and no_prompt false ok 9 - set_deploy and set_revert should overrid set ok 10 - set_deploy and set_revert should merge with set ok 11 - set_revert should merge with set_deploy ok 12 - Should have deploy configuration ok 13 - Should have merged variables ok 14 - Should get warning for deprecated --onto-target ok 15 - Should have merged --set, deploy, rebase ok 16 - An object of class 'App::Sqitch::Command::rebase' isa 'App::Sqitch::Command::rebase' ok 17 - Should pick up deploy variables from configuration ok 18 - Should pick up revert variables from configuration ok 19 - Should have no_prompt true ok 20 - Should have false no_prompt, verify, and true prompt_accept from rebase config ok 21 - Should have true no_prompt, verify, and false prompt_accept from rebase from deploy ok 22 - Should have no_prompt, prompt_accept false and mode all again ok 23 - Should have no_prompt false and prompt_accept true for revert config ok 24 - Should have no_prompt true with -y ok 25 - 'new status with target' isa 'App::Sqitch::Command::rebase' ok 26 - Should have target "foo" ok 27 - An object of class 'App::Sqitch::Command::rebase' isa 'App::Sqitch::Command::rebase' ok 28 - Should have undef target ok 29 - onto_change should be undef ok 30 - upto_change should be undef ok 31 - Execute to "@alpha" ok 32 - undef, and "all" should be passed to the engine deploy ok 33 - "@alpha" should be passed to the engine revert ok 34 - Engine should prompt ok 35 - Engine should no be log only ok 36 - Should have no warnings ok 37 - Execute with target ok 38 - undef, and "all" should be passed to the engine deploy ok 39 - undef should be passed to the engine revert ok 40 - Engine should prompt ok 41 - Engine should no be log only ok 42 - The target name should be as passed ok 43 - Should have no warnings ok 44 - Execute with onto and target ok 45 - undef, and "all" should be passed to the engine deploy ok 46 - "widgets" should be passed to the engine revert ok 47 - Engine should prompt ok 48 - Engine should no be log only ok 49 - The target name should be as passed ok 50 - Should have no warnings ok 51 - Execute with three args ok 52 - "widgets", and "all" should be passed to the engine deploy ok 53 - "roles" should be passed to the engine revert ok 54 - Engine should prompt ok 55 - Engine should no be log only ok 56 - The target name should be as passed ok 57 - Should have no warnings ok 58 - Execute ok 59 - undef and "all" should be passed to the engine deploy ok 60 - undef and = should be passed to the engine revert ok 61 - No vars should have been passed through to the engine ok 62 - Should have no warnings ok 63 - 'Object with to and variables' isa 'App::Sqitch::Command::rebase' ok 64 - Execute again ok 65 - Target name should be from option ok 66 - Engine should be no_prompt ok 67 - Engine should be log_only ok 68 - Engine should verify ok 69 - "bar", "tag", and 1 should be passed to the engine deploy ok 70 - "foo" and 1 should be passed to the engine revert ok 71 - Variables should have been passed to the engine twice ok 72 - The revert vars should have been passed first ok 73 - The deploy vars should have been next ok 74 - Should have no warnings ok 75 - Execute with three args ok 76 - Target name should be from option ok 77 - Engine should be no_prompt ok 78 - Engine should be log_only ok 79 - Engine should verify ok 80 - "bar", "tag", and 1 should be passed to the engine deploy ok 81 - "foo" and 1 should be passed to the engine revert ok 82 - Variables should have been passed to the engine twice ok 83 - The revert vars should have been passed first ok 84 - The deploy vars should have been next ok 85 - Should have two warnings ok 86 - Should get an exception for unknown arg ok 87 - Unknow arg ident should be "rebase" ok 88 - Should get an exeption for two unknown arg ok 89 - Should get an exception for unknown args ok 90 - Unknow args ident should be "rebase" ok 91 - Should get an exeption for two unknown args ok 92 - Execute once more ok 93 - "bar", "tag", and 1 should be passed to the engine deploy ok 94 - Variables should have been passed to the engine twice ok 95 - The revert vars should have been passed first ok 96 - The deploy vars should have been next ok 97 - Should have emitted info for non-fatal revert exception ok 98 - Should rethrow confirm exception ok 99 - Should rethrow fatal exception ok 100 - Should rethrow unknown exception 1..100 ok t/revert.t .......... ok 1 - require App::Sqitch::Command::revert; ok 2 - The class (or class-like) 'App::Sqitch::Command::revert' isa 'App::Sqitch::Command' ok 3 - App::Sqitch::Command::revert->can(...) ok 4 - Options should be correct ok 5 - Should have empty default configuration with no config or opts ok 6 - Should have set option ok 7 - Should have no_prompt false, prompt_accept true ok 8 - Should have merged variables ok 9 - Should have merged --set, deploy, revert ok 10 - An object of class 'App::Sqitch::Command::revert' isa 'App::Sqitch::Command::revert' ok 11 - Should pick up variables from configuration ok 12 - Should have no_prompt true, prompt_accept false ok 13 - Should have no_prompt false again ok 14 - Should have no_prompt false for false config ok 15 - Should have no_prompt true with -y ok 16 - 'new revert with target' isa 'App::Sqitch::Command::revert' ok 17 - Should have target "foo" ok 18 - to_change should be undef ok 19 - An object of class 'App::Sqitch::Command::revert' isa 'App::Sqitch::Command::revert' ok 20 - Should have undef default target ok 21 - to_change should be undef ok 22 - Execute to "@alpha" ok 23 - Engine should be no_prompt ok 24 - Engine should not be log_only ok 25 - "@alpha" should be passed to the engine ok 26 - Should have no warnings ok 27 - Execute ok 28 - undef should be passed to the engine ok 29 - No vars should have been passed through to the engine ok 30 - Should still have no warnings ok 31 - Execute to target ok 32 - Engine should be no_prompt ok 33 - Engine should not be log_only ok 34 - undef" should be passed to the engine ok 35 - Target name should be as passed ok 36 - Should have no warnings ok 37 - Execute with change and target ok 38 - Engine should be no_prompt ok 39 - Engine should not be log_only ok 40 - "widgets" should be passed to the engine ok 41 - Target name should be as passed ok 42 - Should have no warnings ok 43 - Execute with target and change ok 44 - Engine should be no_prompt ok 45 - Engine should not be log_only ok 46 - "widgets" should be passed to the engine ok 47 - Target name should be as passed ok 48 - Should have no warnings ok 49 - 'Object with to and variables' isa 'App::Sqitch::Command::revert' ok 50 - Execute again ok 51 - Engine should not be no_prompt ok 52 - Engine should be log_only ok 53 - "foo" and 1 should be passed to the engine ok 54 - Vars should have been passed through to the engine ok 55 - Target name should be from option ok 56 - Should have no warnings ok 57 - Execute with options and args ok 58 - Engine should not be no_prompt ok 59 - Engine should be log_only ok 60 - "foo" and 1 should be passed to the engine ok 61 - Vars should have been passed through to the engine ok 62 - Target name should be from option ok 63 - Should have two warnings ok 64 - Should get an exception for unknown arg ok 65 - Unknow arg ident should be "revert" ok 66 - Should get an exeption for two unknown arg ok 67 - Should get an exception for unknown args ok 68 - Unknow args ident should be "revert" ok 69 - Should get an exeption for two unknown args 1..69 ok t/rework.t .......... 1..95 ok 1 - Load a sqitch sqitch object ok 2 - 'rework command' isa 'App::Sqitch::Command::rework' ok 3 - App::Sqitch::Command::rework->can(...) ok 4 - Options should be set up ok 5 - Should have default configuration with no config or opts ok 6 - Should have get requires, conflicts, and note options ok 7 - Grabs rework.open_editor from config ok 8 - 'rework command' isa 'App::Sqitch::Command::rework' ok 9 - Coerces rework.open_editor from config string boolean ok 10 - Requires should be an arrayref ok 11 - Conflicts should be an arrayref ok 12 - Note should be an arrayref ok 13 - Should get an example for nonexistent change ok 14 - Nonexistent change error ident should be "plan" ok 15 - Fail message should say the step does not exist ok 16 - Create another add with template_directory ok 17 - test-rework\deploy\foo.sql does not exist ok 18 - test-rework\revert\foo.sql does not exist ok 19 - test-rework\verify\foo.sql does not exist ok 20 - test-rework\deploy\foo.sql exists ok 21 - test-rework\revert\foo.sql exists ok 22 - test-rework\verify\foo.sql exists ok 23 - Get the "foo" change ok 24 - Should get an example for duplicate change ok 25 - Duplicate change error ident should be "plan" ok 26 - Fail message should say a tag is needed ok 27 - Tag it ok 28 - test-rework\deploy\foo@alpha.sql does not exist ok 29 - test-rework\revert\foo@alpha.sql does not exist ok 30 - test-rework\verify\foo@alpha.sql does not exist ok 31 - Rework "foo" ok 32 - test-rework\deploy\foo.sql exists ok 33 - test-rework\revert\foo.sql exists ok 34 - test-rework\verify\foo.sql exists ok 35 - test-rework\deploy\foo@alpha.sql exists ok 36 - test-rework\revert\foo@alpha.sql exists ok 37 - test-rework\verify\foo@alpha.sql exists ok 38 - test-rework\deploy\foo@alpha.sql and test-rework\deploy\foo.sql contents are the same ok 39 - test-rework\verify\foo@alpha.sql and test-rework\verify\foo.sql contents are the same ok 40 - test-rework\revert\foo.sql and test-rework\deploy\foo.sql contents are the same ok 41 - New revert should revert ok 42 - It should have prompted for a note ok 43 - Reload the plan file ok 44 - Get the steps ok 45 - Should have two steps ok 46 - First step should be "foo" ok 47 - Second step should also be "foo" ok 48 - Reworked step should require the previous step ok 49 - And the info message should suggest editing the old files ok 50 - Debug should show file copying ok 51 - Create another add with template_directory ok 52 - test-rework\deploy\bar.sql does not exist ok 53 - test-rework\revert\bar.sql does not exist ok 54 - test-rework\verify\bar.sql does not exist ok 55 - test-rework\deploy\bar.sql exists ok 56 - test-rework\revert\bar.sql does not exist ok 57 - test-rework\verify\bar.sql does not exist ok 58 - Tag it with @beta ok 59 - 'rework command with requirements and conflicts' isa 'App::Sqitch::Command::rework' ok 60 - test-rework\deploy\bar@beta.sql does not exist ok 61 - test-rework\revert\bar@beta.sql does not exist ok 62 - test-rework\verify\bar@beta.sql does not exist ok 63 - Rework "bar" ok 64 - test-rework\deploy\bar.sql exists ok 65 - test-rework\revert\bar.sql does not exist ok 66 - test-rework\verify\bar.sql does not exist ok 67 - test-rework\deploy\bar@beta.sql exists ok 68 - test-rework\revert\bar@beta.sql does not exist ok 69 - test-rework\verify\bar@beta.sql does not exist ok 70 - It should have prompted for a note ok 71 - Reload the plan file again ok 72 - Get the steps ok 73 - Should have four steps ok 74 - First step should be "foo" ok 75 - Second step should also be "foo" ok 76 - First step should be "bar" ok 77 - Second step should also be "bar" ok 78 - Requires should have been passed to reworked change ok 79 - Conflicts should have been passed to reworked change ok 80 - Note should have been passed as comment ok 81 - And the info message should show only the one file to modify ok 82 - Should have debug oputput for missing files ok 83 - Create another add with open_editor ok 84 - Tag it ok 85 - test-rework\deploy\bar@gamma.sql does not exist ok 86 - test-rework\revert\bar@gamma.sql does not exist ok 87 - test-rework\verify\bar@gamma.sql does not exist ok 88 - Rework "bar" ok 89 - test-rework\deploy\bar.sql exists ok 90 - test-rework\deploy\bar@gamma.sql exists ok 91 - test-rework\revert\bar@gamma.sql does not exist ok 92 - test-rework\verify\bar@gamma.sql does not exist ok 93 - It should have prompted to edit sql files ok 94 - And the info message should suggest editing the old files ok 95 - no warnings ok t/show.t ............ ok 1 - require App::Sqitch::Command::show; ok 2 - The class (or class-like) 'App::Sqitch::Command::show' isa 'App::Sqitch::Command' ok 3 - App::Sqitch::Command::show->can(...) ok 4 - Options should be correct ok 5 - An object of class 'App::Sqitch::Command::show' isa 'App::Sqitch::Command::show' ok 6 - exists_only should be false by default ok 7 - Construct with exists_only ok 8 - exists_only should be set ok 9 - Should get empty hash for no config or options ok 10 - Should get exists_only => 1 for exist in options ok 11 - Get a change ok 12 - Find change by id ok 13 - The change info should have been emitted ok 14 - Find change by name ok 15 - The change info should have been emitted again ok 16 - Should get an error for an unknown change ok 17 - Unknown change error ident should be "show" ok 18 - Should get proper error for unknown change ok 19 - Should return false for uknown change and exists_only ok 20 - Nothing should have been emitted ok 21 - Find change by tag id ok 22 - The change info should have been emitted ok 23 - Find change by tag ok 24 - The change info should have been emitted ok 25 - Run exists with ID ok 26 - There should be no output ok 27 - Find tag by id ok 28 - The tag info should have been emitted ok 29 - Find tag by id with exists_only ok 30 - Nothing should have been emitted ok 31 - Find tag by name ok 32 - The tag info should have been emitted ok 33 - Find tag by formatted name ok 34 - The tag info should have been emitted ok 35 - Should get error for non-existent tag ok 36 - Unknown tag error ident should be "show" ok 37 - Should get proper error for unknown tag ok 38 - Should return false for non-existent tag and exists_only ok 39 - Nothing should have been emitted ok 40 - Should get error for non-existent tag ID ok 41 - Unknown tag ID error ident should be "show" ok 42 - Should get proper error for unknown tag ID ok 43 - Show a deploy file ok 44 - The deploy file should have been emitted ok 45 - Show a deploy file with exists_only ok 46 - Nothing should have been emitted ok 47 - Show a revert file ok 48 - The revert file should have been emitted ok 49 - Should get error for nonexistent varify file ok 50 - Nonexistent file error ident should be "show" ok 51 - Should get proper error for nonexistent file ok 52 - Should return false for nonexistent file ok 53 - Nothing should have been emitted ok 54 - Should get usage for missing params ok 55 - Nothing should have been passed to usage ok 56 - Should get error for uknown type ok 57 - Unknown type error ident should be "show" ok 58 - Should get proper error for unknown type 1..58 ok t/sqlite.t .......... ok 1 - require App::Sqitch::Engine::sqlite; ok 2 - config_vars should return three vars ok 3 - An object of class 'App::Sqitch::Engine::sqlite' isa 'App::Sqitch::Engine::sqlite' ok 4 - client should default to sqlite3 ok 5 - dbname should be filled in ok 6 - Target attribute should be specified target ok 7 - Destination should be uri stringified ok 8 - Meta target should be registry_uri stringified ok 9 - sqlite3 command should have the proper opts ok 10 - Create another sqlite ok 11 - client should fall back on config ok 12 - dbname should fall back on config ok 13 - Target should be as specified ok 14 - Destination should be configured target name ok 15 - registry_uri should fall back on config ok 16 - Meta target should be configured registry_uri stringified ok 17 - Create another sqlite ok 18 - dbname should fall back on config with no extension ok 19 - Target should be as specified ok 20 - Destination should be configured target name ok 21 - registry_uri should fall back on config wth extension ok 22 - Meta target should be configured registry_uri stringified ok 23 - Create another sqlite ok 24 - dbname should fall back on config with no extension ok 25 - Target should be as specified ok 26 - Destination should be configured target name ok 27 - registry_uri should fall back on config wth extension ok 28 - Meta target should be configured registry_uri stringified ok 29 - Create another sqlite ok 30 - dbname should fall back on config with no extension ok 31 - Target should be as specified ok 32 - Destination should be configured target name ok 33 - registry_uri should fall back on config wth extension ok 34 - Meta target should be configured registry_uri stringified ok 35 - Create sqlite with sqitch with --client and --target ok 36 - The client should be grabbed from --client ok 37 - The registry should be grabbed from --registry ok 38 - sqlite3 command should have option values ok 39 - Instantiate with a temporary database file ok 40 - App::Sqitch::Engine::sqlite->can('_read') ok 41 - _read() should work ok 42 - _read() should SQL-quote the file name ok 43 - _read() should SQL-quote quotes, too ok 44 - App::Sqitch::Engine::sqlite->can(...) ok 45 - Call _run ok 46 - Command should be passed to run() ok 47 - Call _spool ok 48 - Command should be passed to spool() ok 49 - Call _capture ok 50 - Command should be passed to capture() ok 51 - Run foo/bar.sql ok 52 - File should be passed to run() ok 53 - Spool a "file handle" ok 54 - Handle should be passed to spool() ok 55 - Verify foo/bar.sql ok 56 - Verify file should be passed to capture() ok 57 - Verify foo/bar.sql again ok 58 - Verifile file should be passed to run() for high verbosity ok 59 - App::Sqitch::Engine::sqlite->can('_ts2char_format') ok 60 - _ts2char should work ok 61 - App::Sqitch::Engine::sqlite->can('_dt') ok 62 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 63 - DateTime year should be set ok 64 - DateTime month should be set ok 65 - DateTime day should be set ok 66 - DateTime hour should be set ok 67 - DateTime minute should be set ok 68 - DateTime second should be set ok 69 - DateTime TZ should be set ok 70 - Create command for v3.3.9 ok 71 - Should be okay with sqlite v3.3.9 ok 72 - Create command for v3.3.10 ok 73 - Should be okay with sqlite v3.3.10 ok 74 - Create command for v3.3.200 ok 75 - Should be okay with sqlite v3.3.200 ok 76 - Create command for v3.4.0 ok 77 - Should be okay with sqlite v3.4.0 ok 78 - Create command for v3.4.8 ok 79 - Should be okay with sqlite v3.4.8 ok 80 - Create command for v3.7.11 ok 81 - Should be okay with sqlite v3.7.11 ok 82 - Create command for v3.8.12 ok 83 - Should be okay with sqlite v3.8.12 ok 84 - Create command for v3.10.0 ok 85 - Should be okay with sqlite v3.10.0 ok 86 - Create command for v4.1.30 ok 87 - Should be okay with sqlite v4.1.30 ok 88 - Create command for v3.3.8 ok 89 - Should not be okay with v3.3.8 ok 90 - Should get ident "sqlite" for v3.3.8 ok 91 - Should get proper error message for v3.3.8 ok 92 - Create command for v3.3.0 ok 93 - Should not be okay with v3.3.0 ok 94 - Should get ident "sqlite" for v3.3.0 ok 95 - Should get proper error message for v3.3.0 ok 96 - Create command for v3.2.8 ok 97 - Should not be okay with v3.2.8 ok 98 - Should get ident "sqlite" for v3.2.8 ok 99 - Should get proper error message for v3.2.8 ok 100 - Create command for v3.0.1 ok 101 - Should not be okay with v3.0.1 ok 102 - Should get ident "sqlite" for v3.0.1 ok 103 - Should get proper error message for v3.0.1 ok 104 - Create command for v3.0.0 ok 105 - Should not be okay with v3.0.0 ok 106 - Should get ident "sqlite" for v3.0.0 ok 107 - Should get proper error message for v3.0.0 ok 108 - Create command for v2.8.1 ok 109 - Should not be okay with v2.8.1 ok 110 - Should get ident "sqlite" for v2.8.1 ok 111 - Should get proper error message for v2.8.1 ok 112 - Create command for v2.20.0 ok 113 - Should not be okay with v2.20.0 ok 114 - Should get ident "sqlite" for v2.20.0 ok 115 - Should get proper error message for v2.20.0 ok 116 - Create command for v1.0.0 ok 117 - Should not be okay with v1.0.0 ok 118 - Should get ident "sqlite" for v1.0.0 ok 119 - Should get proper error message for v1.0.0 ok 120 - App::Sqitch::Engine::sqlite->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test SQLite engine: "sqlite3.exe" failed to start: "The system cannot find the file specified" # ok 121 # skip Unable to live-test SQLite engine: "sqlite3.exe" failed to start: "The system cannot find the file specified" # 1..121 ok t/status.t .......... 1..113 ok 1 - require App::Sqitch::Command::status; ok 2 - Load a sqitch object ok 3 - 'status command' isa 'App::Sqitch::Command::status' ok 4 - App::Sqitch::Command::status->can(...) ok 5 - Options should be correct ok 6 - Should have error for uninitialized database ok 7 - Uninitialized database error ident should be "status" ok 8 - Uninitialized database error message should be correct ok 9 - 'new status command' isa 'App::Sqitch::Command::status' ok 10 - Should have project "foo" ok 11 - Load a sqitch object with SQLite ok 12 - Create another status command ok 13 - Should get an error for uninitialized db ok 14 - Uninitialized db error ident should be "status" ok 15 - Uninitialized db error message should be correct ok 16 - Should get an error for no registered projects ok 17 - No projects error ident should be "status" ok 18 - No projects error message should be correct ok 19 - Should get an error for too many projects ok 20 - Too many projects error ident should be "status" ok 21 - Too many projects error message should be correct ok 22 - Should find single project ok 23 - Load another sqitch object ok 24 - 'another status command' isa 'App::Sqitch::Command::status' ok 25 - Should have plan project ok 26 - Default target should be undef ok 27 - 'new status with target' isa 'App::Sqitch::Command::status' ok 28 - Should have target "foo" ok 29 - Should get empty hash for no config or options ok 30 - Should get error for invalid date format in config ok 31 - Invalid date format error ident should be "datetime" ok 32 - Invalid date format error message should be correct ok 33 - Should get error for invalid date format in optsions ok 34 - Invalid date format error ident should be "status" ok 35 - Invalid date format error message should be correct ok 36 - Emit the state ok 37 - The state should have been emitted ok 38 - Emit the state with a tag ok 39 - The state should have been emitted with a tag ok 40 - Emit the state with multiple tags ok 41 - The state should have been emitted with multiple tags ok 42 - Create status command with an engine ok 43 - Try to emit changes ok 44 - Should have emitted no changes ok 45 - Create change-showing status command ok 46 - Emit changes again ok 47 - Project "foo" should have been passed to current_changes ok 48 - Should have emitted one change ok 49 - Emit changes thrice ok 50 - Project "foo" again should have been passed to current_changes ok 51 - Should have emitted three changes ok 52 - Try to emit tags ok 53 - No tags should have been emitted ok 54 - Create tag-showing status command ok 55 - Try to emit tags again ok 56 - Project "bar" should be passed to current_tags() ok 57 - Should have emitted a header for no tags ok 58 - Emit tags ok 59 - Project "bar" should again be passed to current_tags() ok 60 - Should have emitted one tag ok 61 - Emit tags again ok 62 - Project "bar" should once more be passed to current_tags() ok 63 - Should have emitted all three tags ok 64 - Create status command with actual plan command ok 65 - Emit status ok 66 - Should have a blank comment line ok 67 - Should emit up-to-date output ok 68 - Emit status again ok 69 - Should have a blank comment line ok 70 - Should emit list of undeployed changes ok 71 - Emit status thrice ok 72 - Should have a blank comment line ok 73 - Should emit list of undeployed changes ok 74 - Die on invalid ID ok 75 - Invalid ID error ident should be "status" ok 76 - The invalid ID error message should be correct ok 77 - Should have a blank comment line ok 78 - Should have a message about inability to find the change ok 79 - Recreate status command ok 80 - Execute ok 81 - The state should have been emitted ok 82 - Should emit list of undeployed changes ok 83 - No target name should have been passed to Target ok 84 - Execute with target arg ok 85 - The state should have been emitted ok 86 - Should emit list of undeployed changes ok 87 - Name "db:sqlite:" should have been passed to Target ok 88 - Create status command with a target option ok 89 - Execute with target attribute ok 90 - The state should have been emitted ok 91 - Should emit list of undeployed changes ok 92 - Name "db:sqlite:" should have been passed to Target ok 93 - Execute with target attribute and arg ok 94 - The state should have been emitted ok 95 - Should emit list of undeployed changes ok 96 - Name "db:sqlite:" should have been passed to Target ok 97 - Should have got warning for two targets ok 98 - Create status command with specified project ok 99 - Execute for specified project ok 100 - The specified project state should have been emitted ok 101 - Should emit unknown status message for specified project ok 102 - Create status command with external project ok 103 - Execute for external project ok 104 - The external project state should have been emitted ok 105 - Should emit unknown status message for external project ok 106 - Die on no state ok 107 - No state error ident should be "status" ok 108 - No state error message should be correct ok 109 - The "On database" comment should have been emitted ok 110 - Should get an error for uninitialized db ok 111 - Uninitialized db error ident should be "status" ok 112 - Uninitialized db error message should be correct ok 113 - no warnings ok t/tag.t ............. 1..27 ok 1 - require App::Sqitch::Plan::Tag; ok 2 - App::Sqitch::Plan::Tag->can(...) ok 3 - An object of class 'App::Sqitch::Plan::Tag' isa 'App::Sqitch::Plan::Tag' ok 4 - An object of class 'App::Sqitch::Plan::Tag' isa 'App::Sqitch::Plan::Line' ok 5 - Name should format as "@foo" ok 6 - 'Timestamp' isa 'App::Sqitch::DateTime' ok 7 - Planner name shoudld default to user name ok 8 - Planner email shoudld default to user email ok 9 - Planner name and email should format properly ok 10 - Should as_string to "@foo" + timstamp + planner ok 11 - Tag info should incldue the URI ok 12 - Old tag info should incldue the URI ok 13 - Create tag with more stuff ok 14 - It should as_string correctly ok 15 - Change should be correct ok 16 - Planner name and email should format properly ok 17 - Change should be for previous change ok 18 - Tag info should include the change ok 19 - Tag ID should be correct ok 20 - Old tag info should include the change ok 21 - Old tag ID should be correct ok 22 - Create tag with UTF-8 name ok 23 - The name should be decoded text in info ok 24 - Tag ID should be hahsed from encoded UTF-8 ok 25 - Old name should be decoded text in info ok 26 - Old tag ID should be hahsed from encoded UTF-8 ok 27 - no warnings ok t/tag_cmd.t ......... 1..39 ok 1 - Load a sqitch sqitch object ok 2 - 'tag command' isa 'App::Sqitch::Command::tag' ok 3 - App::Sqitch::Command::tag->can(...) ok 4 - Should have note option ok 5 - Add change "foo" ok 6 - Tag @alpha ok 7 - Should have tagged "foo" ok 8 - Reload plan ok 9 - New tag should have been written ok 10 - New tag should have empty note ok 11 - Should have requested a note ok 12 - The info message should be correct ok 13 - Execute with no arg ok 14 - The one tag should have been listed ok 15 - Should have requested a note ok 16 - Add tag @beta ok 17 - Execute with no arg again ok 18 - Both tags should have been listed ok 19 - Should have requested a note ok 20 - 'tag command with note' isa 'App::Sqitch::Command::tag' ok 21 - Tag @gamma ok 22 - Gamma tag should be on change "foo" ok 23 - Gamma tag should have note ok 24 - Reload plan ok 25 - Gamma tag should have been written ok 26 - Written tag should have note ok 27 - Should have requested a note ok 28 - The gamma note should be correct ok 29 - 'tag command with note' isa 'App::Sqitch::Command::tag' ok 30 - Add change "bar" ok 31 - Add change "baz" ok 32 - Tag change "bar" with @delta ok 33 - Should have tagged "bar" ok 34 - Reload plan ok 35 - New tag should have been written ok 36 - New tag should have the proper note ok 37 - Should have requested a note ok 38 - The info message should be correct ok 39 - no warnings ok t/target.t .......... ok 1 - use App::Sqitch::Target; ok 2 - Load a sqitch sqitch object ok 3 - An object of class 'App::Sqitch::Target' isa 'App::Sqitch::Target' ok 4 - App::Sqitch::Target->can(...) ok 5 - Name should be "db:sqlite:" ok 6 - Target should be alias for name ok 7 - URI should be "db:sqlite:" ok 8 - Sqitch should be as passed ok 9 - Engine key should be "sqlite" ok 10 - 'Engine' isa 'App::Sqitch::Engine::sqlite' ok 11 - Should have default registry ok 12 - Should have default client ok 13 - Should have default top_dir ok 14 - Should have default deploy_dir ok 15 - Should have default revert_dir ok 16 - Should have default verify_dir ok 17 - Should have default extension ok 18 - Should have default plan file ok 19 - 'Should get plan' isa 'App::Sqitch::Plan' ok 20 - Plan file should be copied from Target ok 21 - DSN should be from URI ok 22 - Username should be from URI ok 23 - Password should be from URI ok 24 - An object of class 'App::Sqitch::Target' isa 'App::Sqitch::Target' ok 25 - Password should be from environment variable ok 26 - Should get error for missing params ok 27 - 'Target with name and URI' isa 'App::Sqitch::Target' ok 28 - Name should be "foo" ok 29 - Target should be alias for name ok 30 - URI should be set as passed ok 31 - Sqitch should be as passed ok 32 - Engine key should be "pg" ok 33 - 'Engine' isa 'App::Sqitch::Engine::pg' ok 34 - DSN should be from URI ok 35 - Username should be from URI ok 36 - Password should be from environment ok 37 - 'Target with URI' isa 'App::Sqitch::Target' ok 38 - Name should be URI without password ok 39 - Target should be alias for name ok 40 - Engine key should be "pg" ok 41 - 'Engine' isa 'App::Sqitch::Engine::pg' ok 42 - DSN should be from URI ok 43 - Username should be from URI ok 44 - Password should be from URI ok 45 - 'Default target' isa 'App::Sqitch::Target' ok 46 - Name should be "db:sqlite:" ok 47 - URI should be "db:sqlite:" ok 48 - Should have tried to get engine target ok 49 - 'Default target' isa 'App::Sqitch::Target' ok 50 - Name should be "db:mysql:" ok 51 - URI should be "db:mysql" ok 52 - Should have tried to get core.target, core.engine and then the target ok 53 - 'Target with URI in name' isa 'App::Sqitch::Target' ok 54 - Name should be "db:pg:" ok 55 - URI should be "db:pg" ok 56 - Should have fetched no config ok 57 - Should have error for no engine in URI ok 58 - Should have target ident ok 59 - Should have message about no engine-less URI ok 60 - Should have error for no engine or target ok 61 - Should have target ident ok 62 - Should have message about no specified engine ok 63 - 'Engineless target' isa 'App::Sqitch::Target' ok 64 - Name should be "db:" ok 65 - URI should be "db:" ok 66 - Should not have tried to get engine target ok 67 - Sqitch should be as passed ok 68 - Engine key should be undef ok 69 - Should get exception for no engine ok 70 - Should have engine ident ok 71 - Should have message about no engine ok 72 - Should have default top_dir ok 73 - Should have default deploy_dir ok 74 - Should have default revert_dir ok 75 - Should have default verify_dir ok 76 - Should have default extension ok 77 - Should have default plan file ok 78 - 'Should get plan' isa 'App::Sqitch::Plan' ok 79 - Plan file should be copied from Target ok 80 - DSN should be empty ok 81 - Username should be undef ok 82 - Password should be undef ok 83 - 'Engine URI target' isa 'App::Sqitch::Target' ok 84 - Name should be "db:pg://a@foo/scat" ok 85 - URI should be "db:pg://a:b@foo/scat" ok 86 - Nothing should have been fetched from config ok 87 - 'Engine URI core.target' isa 'App::Sqitch::Target' ok 88 - Name should be "db:pg://s@ack/shi" ok 89 - URI should be "db:pg://s:b@ack/shi" ok 90 - Should have fetched core.target from config ok 91 - 'Engine name core.target' isa 'App::Sqitch::Target' ok 92 - Name should be "shout" ok 93 - URI should be "db:pg:w:e@we/bar" ok 94 - Should have fetched target.shout.uri from config ok 95 - Should have exception for unknown named target ok 96 - Unknown target error ident should be "target" ok 97 - Unknown target error message should be correct ok 98 - Should have requested target URI from config ok 99 - Should have requested target.foo section ok 100 - Should have exception for URL-less named target ok 101 - URL-less target error ident should be "target" ok 102 - URL-less target error message should be correct ok 103 - Should have requested target URI from config ok 104 - Should have requested target.foo section ok 105 - 'Named target' isa 'App::Sqitch::Target' ok 106 - Name should be "foo" ok 107 - URI should be "db:pg:foo" ok 108 - Should have requested target URI from config ok 109 - Should not have requested deprecated pg section ok 110 - 'Engine named target' isa 'App::Sqitch::Target' ok 111 - Name should be "foo" ok 112 - URI should be "db:sqlite:foo" ok 113 - Should have requested engine target and target URI from config ok 114 - Should not have requested pg section ok 115 - 'Pg target' isa 'App::Sqitch::Target' ok 116 - Should have requested core and engine pg sections ok 117 - Name should be passwordless stringified URI ok 118 - URI should be tweaked by config* options ok 119 - Should have warned on deprecated config options ok 120 - 'Postgres target' isa 'App::Sqitch::Target' ok 121 - Should have requested sqlite core and engine sections ok 122 - Name should be passwordless stringified URI ok 123 - URI should be tweaked by --db-* options ok 124 - Should have warned on deprecated options ok 125 - 'Foo target' isa 'App::Sqitch::Target' ok 126 - Should have requested target URI ok 127 - Should have fetched no section ok 128 - Name should be as passed ok 129 - URI should be tweaked by --db-* options ok 130 - Should have warned on deprecated options ok 131 - Registry should be "myreg" ok 132 - Client should be "pgsql" ok 133 - Plan file should be "my.plan" ok 134 - 'Plan file' isa 'Path::Class::File' ok 135 - 'Plan' isa 'App::Sqitch::Plan' ok 136 - Plan should use target plan file ok 137 - Top dir should be "top" ok 138 - 'Top dir' isa 'Path::Class::Dir' ok 139 - Deploy dir should be "dep" ok 140 - 'Deploy dir' isa 'Path::Class::Dir' ok 141 - Revert dir should be "rev" ok 142 - 'Revert dir' isa 'Path::Class::Dir' ok 143 - Verify dir should be "ver" ok 144 - 'Verify dir' isa 'Path::Class::Dir' ok 145 - Extension should be "ddl" ok 146 - Registry should be "yoreg" ok 147 - Client should be "mycli" ok 148 - Plan file should be "pg.plan" ok 149 - 'Plan file' isa 'Path::Class::File' ok 150 - 'Plan' isa 'App::Sqitch::Plan' ok 151 - Plan should use target plan file ok 152 - Top dir should be "pg" ok 153 - 'Top dir' isa 'Path::Class::Dir' ok 154 - Deploy dir should be "pgdep" ok 155 - 'Deploy dir' isa 'Path::Class::Dir' ok 156 - Revert dir should be "pgrev" ok 157 - 'Revert dir' isa 'Path::Class::Dir' ok 158 - Verify dir should be "pgver" ok 159 - 'Verify dir' isa 'Path::Class::Dir' ok 160 - Extension should be "pgddl" ok 161 - Registry should be "fooreg" ok 162 - Client should be "foocli" ok 163 - Plan file should be "foo.plan" ok 164 - 'Plan file' isa 'Path::Class::File' ok 165 - 'Plan' isa 'App::Sqitch::Plan' ok 166 - Plan should use target plan file ok 167 - Top dir should be "foo" ok 168 - 'Top dir' isa 'Path::Class::Dir' ok 169 - Deploy dir should be "foodep" ok 170 - 'Deploy dir' isa 'Path::Class::Dir' ok 171 - Revert dir should be "foorev" ok 172 - 'Revert dir' isa 'Path::Class::Dir' ok 173 - Verify dir should be "foover" ok 174 - 'Verify dir' isa 'Path::Class::Dir' ok 175 - Extension should be "fooddl" ok 176 - Registry should be "optreg" ok 177 - Client should be "optcli" ok 178 - Plan file should be "opt.plan" ok 179 - 'Plan file' isa 'Path::Class::File' ok 180 - 'Plan' isa 'App::Sqitch::Plan' ok 181 - Plan should use target plan file ok 182 - Top dir should be "top.dir" ok 183 - 'Top dir' isa 'Path::Class::Dir' ok 184 - Deploy dir should be "dep.dir" ok 185 - 'Deploy dir' isa 'Path::Class::Dir' ok 186 - Revert dir should be "rev.dir" ok 187 - 'Revert dir' isa 'Path::Class::Dir' ok 188 - Verify dir should be "ver.dir" ok 189 - 'Verify dir' isa 'Path::Class::Dir' ok 190 - Extension should be "opt" 1..190 ok t/target_cmd.t ...... 1..236 ok 1 - Load a sqitch sqitch object ok 2 - 'Target command' isa 'App::Sqitch::Command::target' ok 3 - App::Sqitch::Command::target->can(...) ok 4 - Options should be correct ok 5 - Default verbosity should be 0 ok 6 - Default properties should be empty ok 7 - configure() should ignore config file ok 8 - Run list() ok 9 - The list of targets should have been output ok 10 - 'Verbose target' isa 'App::Sqitch::Command::target' ok 11 - Run verbose list() ok 12 - The list of targets and their URIs should have been output ok 13 - No name arg to add() should yield usage ok 14 - No args should be passed to usage ok 15 - No URI arg to add() should yield usage ok 16 - No args should be passed to usage ok 17 - Should get error for existing target ok 18 - Existing target error ident should be "target" ok 19 - Existing target error message should be correct ok 20 - Add target "test" ok 21 - Target "test" URI should have been set ok 22 - Target "test" should have no client set ok 23 - Target "test" should have no registry set ok 24 - Target "test" should have no top_dir set ok 25 - Target "test" should have no plan_file set ok 26 - Target "test" should have no deploy_dir set ok 27 - Target "test" should have no revert_dir set ok 28 - Target "test" should have no verify_dir set ok 29 - Target "test" should have no extension set ok 30 - 'Target with registry' isa 'App::Sqitch::Command::target' ok 31 - Add target "withreg" ok 32 - Target "withreg" URI should have been set ok 33 - Target "withreg" registry should have been set ok 34 - Target "test" should have no client set ok 35 - Target "test" should have no top_dir set ok 36 - Target "test" should have no plan_file set ok 37 - Target "test" should have no deploy_dir set ok 38 - Target "test" should have no revert_dir set ok 39 - Target "test" should have no verify_dir set ok 40 - Target "test" should have no extension set ok 41 - 'Target with client' isa 'App::Sqitch::Command::target' ok 42 - Add target "withcli" ok 43 - Target "withcli" URI should have been set ok 44 - Target "withcli" should have client set ok 45 - Target "withcli" should have no registry set ok 46 - Target "withcli" should have no top_dir set ok 47 - Target "withcli" should have no plan_file set ok 48 - Target "withcli" should have no deploy_dir set ok 49 - Target "withcli" should have no revert_dir set ok 50 - Target "withcli" should have no verify_dir set ok 51 - Target "withcli" should have no extension set ok 52 - 'Target with client and registry' isa 'App::Sqitch::Command::target' ok 53 - Add target "withboth" ok 54 - Target "withboth" URI should have been set ok 55 - Target "withboth" registry should have been set ok 56 - Target "withboth" should have client set ok 57 - Target "withboth" should have no top_dir set ok 58 - Target "withboth" should have no plan_file set ok 59 - Target "withboth" should have no deploy_dir set ok 60 - Target "withboth" should have no revert_dir set ok 61 - Target "withboth" should have no verify_dir set ok 62 - Target "withboth" should have no extension set ok 63 - 'Target with all properties' isa 'App::Sqitch::Command::target' ok 64 - Add target "withall" ok 65 - Target "withall" should have plan_file set ok 66 - Target "withall" should have deploy_dir set ok 67 - Target "withall" should have registry set ok 68 - Target "withall" should have client set ok 69 - Target "withall" should have top_dir set ok 70 - Target "withall" should have verify_dir set ok 71 - Target "withall" should have extension set ok 72 - Target "withall" should have revert_dir set ok 73 - No name arg to set_uri() should yield usage ok 74 - No args should be passed to usage ok 75 - No URI arg to set_uri() should yield usage ok 76 - No args should be passed to usage ok 77 - Should get error for nonexistent target ok 78 - Nonexistent target error ident should be "target" ok 79 - Nonexistent target error message should be correct ok 80 - Set new URI ok 81 - Target "withboth" should have new URI ok 82 - Set new URI ok 83 - Target "withboth" should have new DB URI ok 84 - No name arg to set_plan_file() should yield usage ok 85 - No args should be passed to usage ok 86 - No plan_file arg to set_plan_file() should yield usage ok 87 - No args should be passed to usage ok 88 - Should get error for nonexistent target ok 89 - Nonexistent target error ident should be "target" ok 90 - Nonexistent target error message should be correct ok 91 - Set new $key ok 92 - Target "withboth" should have new plan_file ok 93 - No name arg to set_deploy_dir() should yield usage ok 94 - No args should be passed to usage ok 95 - No deploy_dir arg to set_deploy_dir() should yield usage ok 96 - No args should be passed to usage ok 97 - Should get error for nonexistent target ok 98 - Nonexistent target error ident should be "target" ok 99 - Nonexistent target error message should be correct ok 100 - Set new $key ok 101 - Target "withboth" should have new deploy_dir ok 102 - No name arg to set_registry() should yield usage ok 103 - No args should be passed to usage ok 104 - No registry arg to set_registry() should yield usage ok 105 - No args should be passed to usage ok 106 - Should get error for nonexistent target ok 107 - Nonexistent target error ident should be "target" ok 108 - Nonexistent target error message should be correct ok 109 - Set new $key ok 110 - Target "withboth" should have new registry ok 111 - No name arg to set_client() should yield usage ok 112 - No args should be passed to usage ok 113 - No client arg to set_client() should yield usage ok 114 - No args should be passed to usage ok 115 - Should get error for nonexistent target ok 116 - Nonexistent target error ident should be "target" ok 117 - Nonexistent target error message should be correct ok 118 - Set new $key ok 119 - Target "withboth" should have new client ok 120 - No name arg to set_top_dir() should yield usage ok 121 - No args should be passed to usage ok 122 - No top_dir arg to set_top_dir() should yield usage ok 123 - No args should be passed to usage ok 124 - Should get error for nonexistent target ok 125 - Nonexistent target error ident should be "target" ok 126 - Nonexistent target error message should be correct ok 127 - Set new $key ok 128 - Target "withboth" should have new top_dir ok 129 - No name arg to set_verify_dir() should yield usage ok 130 - No args should be passed to usage ok 131 - No verify_dir arg to set_verify_dir() should yield usage ok 132 - No args should be passed to usage ok 133 - Should get error for nonexistent target ok 134 - Nonexistent target error ident should be "target" ok 135 - Nonexistent target error message should be correct ok 136 - Set new $key ok 137 - Target "withboth" should have new verify_dir ok 138 - No name arg to set_extension() should yield usage ok 139 - No args should be passed to usage ok 140 - No extension arg to set_extension() should yield usage ok 141 - No args should be passed to usage ok 142 - Should get error for nonexistent target ok 143 - Nonexistent target error ident should be "target" ok 144 - Nonexistent target error message should be correct ok 145 - Set new $key ok 146 - Target "withboth" should have new extension ok 147 - No name arg to set_revert_dir() should yield usage ok 148 - No args should be passed to usage ok 149 - No revert_dir arg to set_revert_dir() should yield usage ok 150 - No args should be passed to usage ok 151 - Should get error for nonexistent target ok 152 - Nonexistent target error ident should be "target" ok 153 - Nonexistent target error message should be correct ok 154 - Set new $key ok 155 - Target "withboth" should have new revert_dir ok 156 - No name args to rename() should yield usage ok 157 - No args should be passed to usage ok 158 - No second arg to rename() should yield usage ok 159 - No args should be passed to usage ok 160 - Should get error for nonexistent target ok 161 - Nonexistent target error ident should be "target" ok 162 - Nonexistent target error message should be correct ok 163 - Rename ok 164 - Target "àlafois" should now be present ok 165 - Target "withboth" should no longer be present ok 166 - Should get error renaming a target with dependencies ok 167 - Dependency target error ident should be "target" ok 168 - Dependency target error message should be correct ok 169 - No name args to remove() should yield usage ok 170 - No args should be passed to usage ok 171 - Should get error for nonexistent target ok 172 - Nonexistent target error ident should be "target" ok 173 - Nonexistent target error message should be correct ok 174 - Remove ok 175 - Target "àlafois" should now be gone ok 176 - Should get error removing a target with dependencies ok 177 - Dependency target error ident should be "target" ok 178 - Dependency target error message should be correct ok 179 - Run show() ok 180 - Show with no names should emit the list of targets ok 181 - Show dev ok 182 - The "dev" target should have been shown ok 183 - Show withcli ok 184 - The "with_cli" target should have been shown ok 185 - Show withreg ok 186 - The "with_reg" target should have been shown ok 187 - Show three targets ok 188 - All three targets should have been shown ok 189 - 'Simple target' isa 'App::Sqitch::Command::target' ok 190 - Execute undef ok 191 - list() should have been called ok 192 - Execute undef with args ok 193 - list() should have been passed args ok 194 - Execute list ok 195 - list() should have been called ok 196 - Execute list with args ok 197 - list() should have been passed args ok 198 - Execute add ok 199 - add() should have been called ok 200 - Execute add with args ok 201 - add() should have been passed args ok 202 - Execute set-uri ok 203 - set_uri() should have been called ok 204 - Execute set-uri with args ok 205 - set_uri() should have been passed args ok 206 - Execute set-url ok 207 - set_uri() should have been called ok 208 - Execute set-url with args ok 209 - set_uri() should have been passed args ok 210 - Execute set-registry ok 211 - set_registry() should have been called ok 212 - Execute set-registry with args ok 213 - set_registry() should have been passed args ok 214 - Execute set-client ok 215 - set_client() should have been called ok 216 - Execute set-client with args ok 217 - set_client() should have been passed args ok 218 - Execute remove ok 219 - remove() should have been called ok 220 - Execute remove with args ok 221 - remove() should have been passed args ok 222 - Execute rm ok 223 - remove() should have been called ok 224 - Execute rm with args ok 225 - remove() should have been passed args ok 226 - Execute rename ok 227 - rename() should have been called ok 228 - Execute rename with args ok 229 - rename() should have been passed args ok 230 - Execute show ok 231 - show() should have been called ok 232 - Execute show with args ok 233 - show() should have been passed args ok 234 - Should get an exception for a nonexistent action ok 235 - Nonexistent action message should be passed to usage ok 236 - no warnings ok t/upgrade.t ......... 1..19 ok 1 - require App::Sqitch::Command::upgrade; ok 2 - Load a sqitch object ok 3 - 'upgrade command' isa 'App::Sqitch::Command::upgrade' ok 4 - App::Sqitch::Command::upgrade->can(...) ok 5 - Options should be correct ok 6 - Execute upgrade ok 7 - Upgrade should not have been called ok 8 - Should get output for up-to-date registry ok 9 - Execute upgrade with target ok 10 - Upgrade should again not have been called ok 11 - Should get output for up-to-date registry with target ok 12 - 'upgrade command with target' isa 'App::Sqitch::Command::upgrade' ok 13 - Execute upgrade with target option ok 14 - Upgrade should still not have been called ok 15 - Should get output for up-to-date registry with target option ok 16 - Execute upgrade with out-of-date registry ok 17 - Upgrade should now have been called ok 18 - Should get output for the upgrade ok 19 - no warnings ok t/verify.t .......... ok 1 - require App::Sqitch::Command::verify; ok 2 - The class (or class-like) 'App::Sqitch::Command::verify' isa 'App::Sqitch::Command' ok 3 - App::Sqitch::Command::verify->can(...) ok 4 - Options should be correct ok 5 - Should have default configuration with no config or opts ok 6 - Should have changes and variables from options ok 7 - Should have no config if no options ok 8 - Should have merged variables ok 9 - An object of class 'App::Sqitch::Command::verify' isa 'App::Sqitch::Command::verify' ok 10 - Should pick up variables from configuration ok 11 - 'new status with target' isa 'App::Sqitch::Command::verify' ok 12 - Should have target "foo" ok 13 - An object of class 'App::Sqitch::Command::verify' isa 'App::Sqitch::Command::verify' ok 14 - Default target should be undef ok 15 - from_change should be undef ok 16 - to_change should be undef ok 17 - Execute with nothing. ok 18 - Two undefs should be passed to the engine ok 19 - Should have no warnings ok 20 - Execute from "@alpha" ok 21 - "@alpha" and undef should be passed to the engine ok 22 - Should again have no warnings ok 23 - Execute from "@alpha" to "@beta" ok 24 - "@alpha" and "@beat" should be passed to the engine ok 25 - Should still have no warnings ok 26 - 'Object with from, to, and variables' isa 'App::Sqitch::Command::verify' ok 27 - Execute again ok 28 - "foo" and "bar" should be passed to the engine ok 29 - Vars should have been passed through to the engine ok 30 - Still should have no warnings ok 31 - Execute with command-line args ok 32 - "foo" and "bar" should be passed to the engine ok 33 - Vars should have been passed through to the engine ok 34 - Should have warning about which roles are used ok 35 - Execute with target arg ok 36 - The target should have been passed to the engine ok 37 - "foo" and "bar" should be passed to the engine ok 38 - Vars should have been passed through to the engine ok 39 - Should once again have no warnings ok 40 - 'Object with target' isa 'App::Sqitch::Command::verify' ok 41 - Execute with no args ok 42 - The target option should have been passed to the engine ok 43 - Undefs should be passed to the engine ok 44 - No vars should have been passed through to the engine ok 45 - Should once again have no warnings ok 46 - Execute with two targegs and two changes ok 47 - The target option should have been passed to the engine ok 48 - The two changes should be passed to the engine ok 49 - No vars should have been passed through to the engine ok 50 - Should have warning about too many targets ok 51 - Should get an exception for unknown arg ok 52 - Unknow arg ident should be "verify" ok 53 - Should get an exeption for two unknown arg ok 54 - Should get an exception for unknown args ok 55 - Unknow args ident should be "verify" ok 56 - Should get an exeption for two unknown args 1..56 ok t/vertica.t ......... ok 1 - require App::Sqitch::Engine::vertica; ok 2 - config_vars should return three vars ok 3 - An object of class 'App::Sqitch::Engine::vertica' isa 'App::Sqitch::Engine::vertica' ok 4 - client should default to vsql ok 5 - registry default should be "sqitch" ok 6 - DB URI should be "db:vertica:" ok 7 - Destination should fall back on environment variables ok 8 - Registry destination should be the same as destination ok 9 - vsql command should be std opts-only ok 10 - An object of class 'App::Sqitch::Engine::vertica' isa 'App::Sqitch::Engine::vertica' ok 11 - Set some variables ok 12 - Variables should be passed to vsql via --set ok 13 - Target name should not read $VERTICADATABASE ok 14 - Meta target should be the same as destination ok 15 - Target name should not read $VERTICAUSER ok 16 - Meta target should be the same as destination ok 17 - Target name should not fall back on sysuser ok 18 - Meta target should be the same as destination ok 19 - Target name should be the default ok 20 - Meta target should be the same as destination ok 21 - Create another vertica ok 22 - client should be as configured ok 23 - uri should be as configured ok 24 - registry should be as configured ok 25 - vsql command should be configured from URI config ok 26 - Create a vertica with sqitch with options ok 27 - client should be as optioned ok 28 - vsql command should be as optioned ok 29 - App::Sqitch::Engine::vertica->can(...) ok 30 - VSQL_PASSWORD should be "s3cr3t" ok 31 - Call _run ok 32 - Command should be passed to run() ok 33 - VSQL_PASSWORD should be "s3cr3t" ok 34 - Call _spool ok 35 - Command should be passed to spool() ok 36 - VSQL_PASSWORD should be "s3cr3t" ok 37 - Call _capture ok 38 - Command should be passed to capture() ok 39 - Create a vertica with sqitch with no pw ok 40 - VSQL_PASSWORD should not exist ok 41 - Call _run again ok 42 - Command should be passed to run() again ok 43 - VSQL_PASSWORD should not exist ok 44 - Call _spool again ok 45 - Command should be passed to spool() again ok 46 - VSQL_PASSWORD should not exist ok 47 - Call _capture again ok 48 - Command should be passed to capture() again ok 49 - VSQL_PASSWORD should not exist ok 50 - Run foo/bar.sql ok 51 - File should be passed to run() ok 52 - VSQL_PASSWORD should not exist ok 53 - Spool a "file handle" ok 54 - Handle should be passed to spool() ok 55 - VSQL_PASSWORD should not exist ok 56 - Verify foo/bar.sql ok 57 - Verify file should be passed to capture() ok 58 - VSQL_PASSWORD should not exist ok 59 - Verify foo/bar.sql again ok 60 - Verifile file should be passed to run() for high verbosity ok 61 - App::Sqitch::Engine::vertica->can('_ts2char') ok 62 - _ts2char should work ok 63 - App::Sqitch::Engine::vertica->can('_dt') ok 64 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 65 - DateTime year should be set ok 66 - DateTime month should be set ok 67 - DateTime day should be set ok 68 - DateTime hour should be set ok 69 - DateTime minute should be set ok 70 - DateTime second should be set ok 71 - DateTime TZ should be set ok 72 - App::Sqitch::Engine::vertica->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test Vertica engine: Can't connect to data source 'dbname=password@localhost/dbadmin' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at t/vertica.t line 298. # ok 73 # skip Unable to live-test Vertica engine: Can't connect to data source 'dbname=password@localhost/dbadmin' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at t/vertica.t line 298. # 1..73 ok t/x.t ............... ok 1 - require App::Sqitch::X; ok 2 - 'X object' isa 'App::Sqitch::X' ok 3 - X object does Throwable ok 4 - X object does StackTrace::Auto ok 5 - Create X without ident ok 6 - Default ident should be "DEV" ok 7 - threw App::Sqitch::X ok 8 - 'Thrown object' isa 'App::Sqitch::X' ok 9 - Ident should be "basic" ok 10 - The message should have been passed ok 11 - It should have a stack trace ok 12 - Exit val should be 2 ok 13 - The trace should start in this file ok 14 - threw App::Sqitch::X ok 15 - 'Thrown object' isa 'App::Sqitch::X' ok 16 - Ident should be "DEV" ok 17 - The message should have been passed ok 18 - Exit val should again be 2 ok 19 - Previous exception should have been passed ok 20 - threw App::Sqitch::X ok 21 - 'Thrown object' isa 'App::Sqitch::X' ok 22 - The params should have been passed ok 23 - Exit val should be 1 ok 24 - Stringification should work ok 25 - Stringification should work ok 26 - Should be an "io" exception ok 27 - Should catch error called via &goto 1..27 ok All tests successful. Files=42, Tests=5823, 62 wallclock secs ( 0.86 usr + 0.06 sys = 0.92 CPU) Result: PASS DWHEELER/App-Sqitch-0.999.tar.gz Tests succeeded but one dependency not OK (IO::Pager) DWHEELER/App-Sqitch-0.999.tar.gz [dependencies] -- NA Finished 2015-02-13T05:07:49