PATH=C:\cpanfly-5.24-32\var\megalib\bin;C:\Perl-5.24-32\site\bin;C:\Perl-5.24-32\bin;C:\MinGW-32\bin;C:\cygwin\bin;C:\instantclient_11_2-32;C:\cpanfly-5.24-32\var\megalib\bin;C:\Perl-5.24-32\site\bin;C:\Perl-5.24-32\bin;C:\MinGW-32\bin;C:\cygwin\bin;C:\instantclient_11_2-32;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files (x86)\CMake\bin Start 2016-06-15T15:06:41 ActivePerl-2400 CPAN-2.10 PATH=C:/CPANFL~2.24-/var/libs/bin;C:\CPANFL~2.24-\var\megalib\bin;C:\PERL-5~2.24-\site\bin;C:\PERL-5~2.24-\bin;C:\MinGW-32\bin;C:\cygwin\bin;C:\INSTAN~3;C:\CPANFL~2.24-\var\megalib\bin;C:\PERL-5~2.24-\site\bin;C:\PERL-5~2.24-\bin;C:\MinGW-32\bin;C:\cygwin\bin;C:\INSTAN~3;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WINDOW~1\v1.0\;C:\PROGRA~1\Git\cmd;C:\PROGRA~2\CMake\bin Reading 'C:\cpanfly-5.24-32\var\cpan\Metadata' Database was generated on Wed, 15 Jun 2016 03:41:02 GMT Checksum for C:\cpanfly-5.24-32\var\cpan\sources\authors\id\D\DW\DWHEELER\App-Sqitch-0.9994.tar.gz ok App-Sqitch-0.9994/t App-Sqitch-0.9994/t/x.t App-Sqitch-0.9994/t/pg.t App-Sqitch-0.9994 App-Sqitch-0.9994/README App-Sqitch-0.9994/Changes App-Sqitch-0.9994/t/add.t App-Sqitch-0.9994/t/log.t App-Sqitch-0.9994/t/tag.t App-Sqitch-0.9994/LICENSE App-Sqitch-0.9994/t/base.t App-Sqitch-0.9994/t/die.pl App-Sqitch-0.9994/t/help.t App-Sqitch-0.9994/t/init.t App-Sqitch-0.9994/t/plan.t App-Sqitch-0.9994/t/show.t App-Sqitch-0.9994/t/sqitch App-Sqitch-0.9994/META.yml App-Sqitch-0.9994/MANIFEST App-Sqitch-0.9994/Build.PL App-Sqitch-0.9994/README.md App-Sqitch-0.9994/t/blank.t App-Sqitch-0.9994/t/echo.pl App-Sqitch-0.9994/t/mysql.t App-Sqitch-0.9994/t/read.pl App-Sqitch-0.9994/META.json App-Sqitch-0.9994/bin App-Sqitch-0.9994/bin/sqitch App-Sqitch-0.9994/t/bundle.t App-Sqitch-0.9994/t/change.t App-Sqitch-0.9994/t/config.t App-Sqitch-0.9994/t/depend.t App-Sqitch-0.9994/t/deploy.t App-Sqitch-0.9994/t/engine.t App-Sqitch-0.9994/t/oracle.t App-Sqitch-0.9994/t/pragma.t App-Sqitch-0.9994/t/rebase.t App-Sqitch-0.9994/t/revert.t App-Sqitch-0.9994/t/rework.t App-Sqitch-0.9994/t/sqlite.t App-Sqitch-0.9994/t/status.t App-Sqitch-0.9994/t/target.t App-Sqitch-0.9994/t/verify.t App-Sqitch-0.9994/t/command.t App-Sqitch-0.9994/t/core.conf App-Sqitch-0.9994/t/options.t App-Sqitch-0.9994/t/tag_cmd.t App-Sqitch-0.9994/t/upgrade.t App-Sqitch-0.9994/t/user.conf App-Sqitch-0.9994/t/vertica.t App-Sqitch-0.9994/t/lib App-Sqitch-0.9994/t/lib/LC.pm App-Sqitch-0.9994/t/checkout.t App-Sqitch-0.9994/t/datetime.t App-Sqitch-0.9994/t/firebird.t App-Sqitch-0.9994/t/linelist.t App-Sqitch-0.9994/t/local.conf App-Sqitch-0.9994/t/engine.conf App-Sqitch-0.9994/t/rework.conf App-Sqitch-0.9994/t/sqitch.conf App-Sqitch-0.9994/t/target.conf App-Sqitch-0.9994/lib App-Sqitch-0.9994/lib/sqitch.pod App-Sqitch-0.9994/t/changelist.t App-Sqitch-0.9994/t/engine_cmd.t App-Sqitch-0.9994/t/target_cmd.t App-Sqitch-0.9994/dist App-Sqitch-0.9994/dist/sqitch.spec App-Sqitch-0.9994/t/multiplan.conf App-Sqitch-0.9994/t/plan_command.t App-Sqitch-0.9994/t/templates.conf App-Sqitch-0.9994/t/plans App-Sqitch-0.9994/t/plans/dos.plan App-Sqitch-0.9994/xt/release App-Sqitch-0.9994/xt/release/pod.t App-Sqitch-0.9994/lib/App App-Sqitch-0.9994/lib/App/Sqitch.pm App-Sqitch-0.9994/t/add_change.conf App-Sqitch-0.9994/t/configuration.t App-Sqitch-0.9994/t/sql App-Sqitch-0.9994/t/sql/sqitch.plan App-Sqitch-0.9994/lib/sqitch-add.pod App-Sqitch-0.9994/lib/sqitch-log.pod App-Sqitch-0.9994/lib/sqitch-tag.pod App-Sqitch-0.9994/t/core_target.conf App-Sqitch-0.9994/t/item_formatter.t App-Sqitch-0.9994/t/plans/multi.plan App-Sqitch-0.9994/lib/sqitch-help.pod App-Sqitch-0.9994/lib/sqitch-init.pod App-Sqitch-0.9994/lib/sqitch-plan.pod App-Sqitch-0.9994/lib/sqitch-show.pod App-Sqitch-0.9994/lib/sqitchusage.pod App-Sqitch-0.9994/lib/App/Sqitch App-Sqitch-0.9994/lib/App/Sqitch/X.pm App-Sqitch-0.9994/t/lib/MockOutput.pm App-Sqitch-0.9994/lib/sqitchguides.pod App-Sqitch-0.9994/t/engine App-Sqitch-0.9994/t/engine/sqitch.plan App-Sqitch-0.9994/t/plans/pragmas.plan App-Sqitch-0.9994/t/plans/widgets.plan App-Sqitch-0.9994/lib/sqitch-bundle.pod App-Sqitch-0.9994/lib/sqitch-config.pod App-Sqitch-0.9994/lib/sqitch-deploy.pod App-Sqitch-0.9994/lib/sqitch-engine.pod App-Sqitch-0.9994/lib/sqitch-rebase.pod App-Sqitch-0.9994/lib/sqitch-revert.pod App-Sqitch-0.9994/lib/sqitch-rework.pod App-Sqitch-0.9994/lib/sqitch-status.pod App-Sqitch-0.9994/lib/sqitch-target.pod App-Sqitch-0.9994/lib/sqitch-verify.pod App-Sqitch-0.9994/lib/sqitchchanges.pod App-Sqitch-0.9994/t/plans/dupe-tag.plan App-Sqitch-0.9994/lib/sqitch-upgrade.pod App-Sqitch-0.9994/lib/sqitchcommands.pod App-Sqitch-0.9994/lib/sqitchtutorial.pod App-Sqitch-0.9994/lib/App/Sqitch/Plan.pm App-Sqitch-0.9994/t/lib/DBIEngineTest.pm App-Sqitch-0.9994/t/sql/deploy App-Sqitch-0.9994/t/sql/deploy/roles.sql App-Sqitch-0.9994/t/sql/deploy/users.sql App-Sqitch-0.9994/t/sql/verify App-Sqitch-0.9994/t/sql/verify/users.sql App-Sqitch-0.9994/lib/sqitch-checkout.pod App-Sqitch-0.9994/lib/App/Sqitch/Types.pm App-Sqitch-0.9994/t/plans/bad-change.plan App-Sqitch-0.9994/lib/sqitch-add-usage.pod App-Sqitch-0.9994/lib/sqitch-log-usage.pod App-Sqitch-0.9994/lib/sqitch-passwords.pod App-Sqitch-0.9994/lib/sqitch-tag-usage.pod App-Sqitch-0.9994/lib/App/Sqitch/Config.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine.pm App-Sqitch-0.9994/lib/App/Sqitch/Target.pm App-Sqitch-0.9994/t/plans/dupe-change.plan App-Sqitch-0.9994/t/sql/deploy/widgets.sql App-Sqitch-0.9994/lib/sqitch-help-usage.pod App-Sqitch-0.9994/lib/sqitch-init-usage.pod App-Sqitch-0.9994/lib/sqitch-plan-usage.pod App-Sqitch-0.9994/lib/sqitch-show-usage.pod App-Sqitch-0.9994/lib/App/Sqitch/Command.pm App-Sqitch-0.9994/t/engine/deploy App-Sqitch-0.9994/t/engine/deploy/users.sql App-Sqitch-0.9994/t/engine/revert App-Sqitch-0.9994/t/engine/revert/users.sql App-Sqitch-0.9994/t/plans/changes-only.plan App-Sqitch-0.9994/t/plans/dependencies.plan App-Sqitch-0.9994/t/plans/project_deps.plan App-Sqitch-0.9994/t/plans/reserved-tag.plan App-Sqitch-0.9994/xt/release/pod-coverage.t App-Sqitch-0.9994/xt/release/pod-spelling.t App-Sqitch-0.9994/inc/Module/Build App-Sqitch-0.9994/inc/Module/Build/Sqitch.pm App-Sqitch-0.9994/lib/sqitch-environment.pod App-Sqitch-0.9994/lib/App/Sqitch/DateTime.pm App-Sqitch-0.9994/lib/App/Sqitch/Plan App-Sqitch-0.9994/lib/App/Sqitch/Plan/Tag.pm App-Sqitch-0.9994/lib/sqitch-bundle-usage.pod App-Sqitch-0.9994/lib/sqitch-config-usage.pod App-Sqitch-0.9994/lib/sqitch-deploy-usage.pod App-Sqitch-0.9994/lib/sqitch-engine-usage.pod App-Sqitch-0.9994/lib/sqitch-rebase-usage.pod App-Sqitch-0.9994/lib/sqitch-revert-usage.pod App-Sqitch-0.9994/lib/sqitch-rework-usage.pod App-Sqitch-0.9994/lib/sqitch-status-usage.pod App-Sqitch-0.9994/lib/sqitch-target-usage.pod App-Sqitch-0.9994/lib/sqitch-verify-usage.pod App-Sqitch-0.9994/lib/App/Sqitch/Engine App-Sqitch-0.9994/lib/App/Sqitch/Engine/pg.pm App-Sqitch-0.9994/lib/App/Sqitch/Plan/Line.pm App-Sqitch-0.9994/t/engine/deploy/widgets.sql App-Sqitch-0.9994/t/engine/revert/widgets.sql App-Sqitch-0.9994/etc/templates/deploy App-Sqitch-0.9994/etc/templates/deploy/pg.tmpl App-Sqitch-0.9994/etc/templates/revert App-Sqitch-0.9994/etc/templates/revert/pg.tmpl App-Sqitch-0.9994/etc/templates/verify App-Sqitch-0.9994/etc/templates/verify/pg.tmpl App-Sqitch-0.9994/lib/sqitch-configuration.pod App-Sqitch-0.9994/lib/sqitch-upgrade-usage.pod App-Sqitch-0.9994/lib/sqitchtutorial-mysql.pod App-Sqitch-0.9994/lib/App/Sqitch/Engine/pg.sql App-Sqitch-0.9994/lib/App/Sqitch/Plan/Blank.pm App-Sqitch-0.9994/lib/sqitch-checkout-usage.pod App-Sqitch-0.9994/lib/sqitchtutorial-oracle.pod App-Sqitch-0.9994/lib/sqitchtutorial-sqlite.pod App-Sqitch-0.9994/lib/App/Sqitch/Command App-Sqitch-0.9994/lib/App/Sqitch/Command/add.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/log.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/tag.pm App-Sqitch-0.9994/lib/App/Sqitch/Plan/Change.pm App-Sqitch-0.9994/lib/App/Sqitch/Plan/Depend.pm App-Sqitch-0.9994/lib/App/Sqitch/Plan/Pragma.pm App-Sqitch-0.9994/lib/sqitchtutorial-vertica.pod App-Sqitch-0.9994/lib/App/Sqitch/Command/help.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/init.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/plan.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/show.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/mysql.pm App-Sqitch-0.9994/t/lib/App/Sqitch/Engine App-Sqitch-0.9994/t/lib/App/Sqitch/Engine/bad.pm App-Sqitch-0.9994/t/plans/deploy-and-revert.plan App-Sqitch-0.9994/etc/templates/deploy/mysql.tmpl App-Sqitch-0.9994/etc/templates/revert/mysql.tmpl App-Sqitch-0.9994/etc/templates/verify/mysql.tmpl App-Sqitch-0.9994/lib/sqitchtutorial-firebird.pod App-Sqitch-0.9994/lib/App/Sqitch/ItemFormatter.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/mysql.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/oracle.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/sqlite.pm App-Sqitch-0.9994/lib/App/Sqitch/Plan/LineList.pm App-Sqitch-0.9994/t/lib/App/Sqitch/Command App-Sqitch-0.9994/t/lib/App/Sqitch/Command/bad.pm App-Sqitch-0.9994/t/lib/App/Sqitch/Engine/good.pm App-Sqitch-0.9994/etc/templates/deploy/oracle.tmpl App-Sqitch-0.9994/etc/templates/deploy/sqlite.tmpl App-Sqitch-0.9994/etc/templates/revert/oracle.tmpl App-Sqitch-0.9994/etc/templates/revert/sqlite.tmpl App-Sqitch-0.9994/etc/templates/verify/oracle.tmpl App-Sqitch-0.9994/etc/templates/verify/sqlite.tmpl App-Sqitch-0.9994/lib/App/Sqitch/Command/bundle.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/config.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/deploy.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/engine.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/rebase.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/revert.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/rework.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/status.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/target.pm App-Sqitch-0.9994/lib/App/Sqitch/Command/verify.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/oracle.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/sqlite.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/vertica.pm App-Sqitch-0.9994/lib/App/Sqitch/Role App-Sqitch-0.9994/lib/App/Sqitch/Role/DBIEngine.pm App-Sqitch-0.9994/t/lib/App/Sqitch/Command/good.pm App-Sqitch-0.9994/etc/templates/deploy/vertica.tmpl App-Sqitch-0.9994/etc/templates/revert/vertica.tmpl App-Sqitch-0.9994/etc/templates/verify/vertica.tmpl App-Sqitch-0.9994/lib/App/Sqitch/Command/upgrade.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/firebird.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/vertica.sql App-Sqitch-0.9994/lib/App/Sqitch/Plan/ChangeList.pm App-Sqitch-0.9994/t/engine/deploy/func App-Sqitch-0.9994/t/engine/deploy/func/add_user.sql App-Sqitch-0.9994/t/engine/revert/func App-Sqitch-0.9994/t/engine/revert/func/add_user.sql App-Sqitch-0.9994/t/plans/dupe-change-diff-tag.plan App-Sqitch-0.9994/etc/templates/deploy/firebird.tmpl App-Sqitch-0.9994/etc/templates/revert/firebird.tmpl App-Sqitch-0.9994/etc/templates/verify/firebird.tmpl App-Sqitch-0.9994/lib/App/Sqitch/Command/checkout.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/firebird.sql App-Sqitch-0.9994/t/lib/upgradable_registries App-Sqitch-0.9994/t/lib/upgradable_registries/pg.sql App-Sqitch-0.9994/t/lib/upgradable_registries/mysql.sql App-Sqitch-0.9994/t/lib/upgradable_registries/oracle.sql App-Sqitch-0.9994/t/lib/upgradable_registries/sqlite.sql App-Sqitch-0.9994/t/lib/upgradable_registries/vertica.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/pg-1.0.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/pg-1.1.sql App-Sqitch-0.9994/t/engine/reworked/deploy App-Sqitch-0.9994/t/engine/reworked/deploy/users@alpha.sql App-Sqitch-0.9994/t/engine/reworked/revert App-Sqitch-0.9994/t/engine/reworked/revert/users@alpha.sql App-Sqitch-0.9994/t/lib/upgradable_registries/firebird.sql App-Sqitch-0.9994/lib/App/Sqitch/Role/RevertDeployCommand.pm App-Sqitch-0.9994/lib/App/Sqitch/Role/TargetConfigCommand.pm App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/mysql-1.0.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/mysql-1.1.sql App-Sqitch-0.9994/lib/LocaleData/de/LC_MESSAGES App-Sqitch-0.9994/lib/LocaleData/de/LC_MESSAGES/App-Sqitch.mo App-Sqitch-0.9994/lib/LocaleData/fr/LC_MESSAGES App-Sqitch-0.9994/lib/LocaleData/fr/LC_MESSAGES/App-Sqitch.mo App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/oracle-1.0.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/oracle-1.1.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/sqlite-1.0.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/sqlite-1.1.sql App-Sqitch-0.9994/etc/tools App-Sqitch-0.9994/etc/tools/upgrade-registry-to-mysql-5.5.0.sql App-Sqitch-0.9994/etc/tools/upgrade-registry-to-mysql-5.6.4.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/vertica-1.0.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/vertica-1.1.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/firebird-1.0.sql App-Sqitch-0.9994/lib/App/Sqitch/Engine/Upgrade/firebird-1.1.sql Configuring D/DW/DWHEELER/App-Sqitch-0.9994.tar.gz with Build.PL >>> C:\Perl-5.24-32\bin\perl.exe Build.PL Checking prerequisites... requires: ! Win32::Locale is not installed 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.9994' DWHEELER/App-Sqitch-0.9994.tar.gz C:\Perl-5.24-32\bin\perl.exe Build.PL -- OK Running Build for D/DW/DWHEELER/App-Sqitch-0.9994.tar.gz ---- Unsatisfied dependencies detected during ---- ---- DWHEELER/App-Sqitch-0.9994.tar.gz ---- Win32::Locale [requires] Running test for module 'Win32::Locale' Checksum for C:\cpanfly-5.24-32\var\cpan\sources\authors\id\S\SB\SBURKE\Win32-Locale-0.04.tar.gz ok Win32-Locale-0.04/ Win32-Locale-0.04/Makefile.PL Win32-Locale-0.04/ChangeLog Win32-Locale-0.04/t/ Win32-Locale-0.04/t/00winlocale.t Win32-Locale-0.04/Locale.pm Win32-Locale-0.04/MANIFEST.SKIP Win32-Locale-0.04/README Win32-Locale-0.04/MANIFEST Configuring S/SB/SBURKE/Win32-Locale-0.04.tar.gz with Makefile.PL >>> C:\Perl-5.24-32\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Win32::Locale Writing MYMETA.yml and MYMETA.json SBURKE/Win32-Locale-0.04.tar.gz C:\Perl-5.24-32\bin\perl.exe Makefile.PL -- OK Running make for S/SB/SBURKE/Win32-Locale-0.04.tar.gz >>> dmake cp Locale.pm blib\lib\Win32\Locale.pm SBURKE/Win32-Locale-0.04.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.24-32\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00winlocale.t .. 1..2 ok 1 Win32::Locale version: 0.04 ok 2 Current locale 0x00000409 (1033 => en_us) => Lang en-us ok All tests successful. Files=1, Tests=2, 0 wallclock secs ( 0.06 usr + 0.00 sys = 0.06 CPU) Result: PASS SBURKE/Win32-Locale-0.04.tar.gz dmake test TEST_VERBOSE=1 -- OK Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/S/SB/SBURKE/CHECKSUMS Picked up version from Makefile Picked up distname from Makefile Picked up abstract from Makefile Sean M. Burke <sburke@cpan.org> get the current MSWin locale or language >>> (cd C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm && tar cvf - Win32-Locale-0.04.ppd blib) | gzip -c >C:/cpanfly-5.24-32/var/REPO/S/SB/SBURKE/Win32-Locale-0.04.tar.gz Win32-Locale-0.04.ppd blib/ blib/lib/ blib/lib/Win32/ blib/lib/Win32/Locale.pm DWHEELER/App-Sqitch-0.9994.tar.gz Has already been unwrapped into directory C:\cpanfly-5.24-32\var\tmp\cpan_build\App-Sqitch-0.9994-T_U57t DWHEELER/App-Sqitch-0.9994.tar.gz Has already been prepared Running Build for D/DW/DWHEELER/App-Sqitch-0.9994.tar.gz Prepending C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/arch C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/lib to PERL5LIB for 'make' >>> C:\Perl-5.24-32\bin\perl.exe ./Build Building App-Sqitch DWHEELER/App-Sqitch-0.9994.tar.gz C:\Perl-5.24-32\bin\perl.exe ./Build -- OK Prepending C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/arch C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/lib to PERL5LIB for 'test' Running Build test >>> C:\Perl-5.24-32\bin\perl.exe ./Build test verbose=1 t/add.t ............. 1..226 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 undef 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 undef 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 - Should get an error on unkonwn argument ok 122 - Unkown argument error ident should be "add" ok 123 - Unknown argument error message should be correct ok 124 - Create another add with open_editor ok 125 - Should not have "open_editor" in plan ok 126 - Add change "open_editor" ok 127 - 'Added change' isa 'App::Sqitch::Plan::Change' ok 128 - Change name should be set ok 129 - It should have prompted to edit sql files ok 130 - test-add\deploy\open_editor.sql exists ok 131 - test-add\revert\open_editor.sql exists ok 132 - test-add\verify\open_editor.sql exists ok 133 - Deploy script should look right ok 134 - Revert script should look right ok 135 - Verify script should look right ok 136 - Info should have reported file creation ok 137 - Create another add with custom script and no verify ok 138 - Add change "custom_script" ok 139 - 'Added change' isa 'App::Sqitch::Plan::Change' ok 140 - Change name should be set ok 141 - It should have no requires ok 142 - It should have no conflicts ok 143 - It should have prompted for a note ok 144 - test-add\deploy\custom_script.sql exists ok 145 - test-add\revert\custom_script.sql exists ok 146 - test-add\whatev\custom_script.sql exists ok 147 - test-add\verify\custom_script.sql does not exist ok 148 - Deploy script should look right ok 149 - Revert script should look right ok 150 - Whatev script should look right ok 151 - Whatev script should be based on the MySQL verify script ok 152 - Info should have reported file creation ok 153 - 'Added change in reloaded plan' isa 'App::Sqitch::Plan::Change' ok 154 - Create another add with custom multiplan config ok 155 - Should have three targets ok 156 - Add change "widgets" to all plans ok 157 - Should have "widgets" in pg plan ok 158 - Should have "widgets" in sqlite plan ok 159 - Should have "widgets" in mysql plan ok 160 - pg\deploy\widgets.sql exists ok 161 - pg\revert\widgets.sql exists ok 162 - pg\verify\widgets.sql exists ok 163 - sqlite\deploy\widgets.sql exists ok 164 - sqlite\revert\widgets.sql exists ok 165 - sqlite\verify\widgets.sql exists ok 166 - mysql\deploy\widgets.sql exists ok 167 - mysql\revert\widgets.sql exists ok 168 - mysql\verify\widgets.sql exists ok 169 - Info should have reported all script creations and plan updates ok 170 - Should get an error for --all and a target arg ok 171 - Mixed arguments error ident should be "add" ok 172 - Mixed arguments error message should be correct ok 173 - Create yet another add with custom multiplan config ok 174 - Add change "choc" to the sqlite plan ok 175 - Should still have three targets ok 176 - Should not have "choc" in the pg plan ok 177 - Should not have "choc" in the mysql plan ok 178 - Should have "choc" in the sqlite plan ok 179 - sqlite\deploy\choc.sql exists ok 180 - sqlite\revert\choc.sql exists ok 181 - sqlite\verify\choc.sql exists ok 182 - pg\deploy\choc.sql does not exist ok 183 - pg\revert\choc.sql does not exist ok 184 - pg\verify\choc.sql does not exist ok 185 - mysql\deploy\choc.sql does not exist ok 186 - mysql\revert\choc.sql does not exist ok 187 - mysql\verify\choc.sql does not exist ok 188 - Info should have reported sqlite choc script creations and plan updates ok 189 - Create another add with single plan, multi-target config ok 190 - Should have two targets ok 191 - Targets should use the same plan file ok 192 - Add change "widgets" to all plans ok 193 - Should have "widgets" in the plan ok 194 - pg\deploy\widgets.sql exists ok 195 - pg\revert\widgets.sql exists ok 196 - pg\verify\widgets.sql exists ok 197 - sqlite\deploy\widgets.sql exists ok 198 - sqlite\revert\widgets.sql exists ok 199 - sqlite\verify\widgets.sql exists ok 200 - Should have the proper files listed in the note promt ok 201 - Info should have reported all script creations and one plan update ok 202 - Create another add with two targets, one top dir ok 203 - Should have two targets ok 204 - First target plan should be in pg.plan ok 205 - Second target plan should be in sqlite.plan ok 206 - Add change "widgets" to all plans ok 207 - Should have "widgets" in pg plan ok 208 - Should have "widgets" in sqlite plan ok 209 - deploy\widgets.sql exists ok 210 - revert\widgets.sql exists ok 211 - verify\widgets.sql exists ok 212 - Should have the proper files listed in the note promt ok 213 - Info should have script creations and skips ok 214 - App::Sqitch::Command::add->can(...) ok 215 - Create a App::Sqitch::Command::add object again ok 216 - Base _parse_opts should return an empty hash ok 217 - _parse_opts() hould use options spec ok 218 - _parse_opts() should parse options spec ok 219 - Args array should be cleared of options ok 220 - _parse_opts() should parse --set options ok 221 - Args array should be cleared of options ok 222 - _parse_opts() should parse --set options with repeting key ok 223 - Args array should be cleared of options ok 224 - _parse_opts() should parse --with, --without, and --user ok 225 - Args array should be cleared of options ok 226 - 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..304 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 default target 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 default target plan file with from arg ok 70 - Statement of the bits written should have been emitted ok 71 - Plan should contain only changes from "widgets" on ok 72 - '--to bundle command' isa 'App::Sqitch::Command::bundle' ok 73 - To should be "users" ok 74 - Bundle the default target plan file with to arg 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\reworked\deploy\users@alpha.sql does not exist ok 78 - _build\sql\engine\reworked\revert\users@alpha.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 - _build\sql\engine\deploy\users.sql does not exist ok 84 - _build\sql\engine\revert\users.sql does not exist ok 85 - Load engine sqitch object ok 86 - 'another bundle command' isa 'App::Sqitch::Command::bundle' ok 87 - Bundle default target scripts ok 88 - _build\sql\engine\reworked\deploy\users@alpha.sql exists ok 89 - _build\sql\engine\reworked\revert\users@alpha.sql exists ok 90 - _build\sql\engine\deploy\widgets.sql exists ok 91 - _build\sql\engine\revert\widgets.sql exists ok 92 - _build\sql\engine\deploy\func\add_user.sql exists ok 93 - _build\sql\engine\revert\func\add_user.sql exists ok 94 - _build\sql\engine\deploy\users.sql exists ok 95 - _build\sql\engine\revert\users.sql exists ok 96 - Should have change notices ok 97 - 'bundle from "widgets"' isa 'App::Sqitch::Command::bundle' ok 98 - Bundle scripts ok 99 - _build\sql\engine\reworked\deploy\users@alpha.sql does not exist ok 100 - _build\sql\engine\reworked\revert\users@alpha.sql does not exist ok 101 - _build\sql\engine\deploy\widgets.sql exists ok 102 - _build\sql\engine\revert\widgets.sql exists ok 103 - Should have changes only from "widets" onward in notices ok 104 - 'bundle to "users"' isa 'App::Sqitch::Command::bundle' ok 105 - Bundle scripts ok 106 - _build\sql\engine\reworked\deploy\users@alpha.sql exists ok 107 - _build\sql\engine\reworked\revert\users@alpha.sql exists ok 108 - _build\sql\engine\deploy\widgets.sql does not exist ok 109 - _build\sql\engine\revert\widgets.sql does not exist ok 110 - Should have only "users" in change notices ok 111 - Should die on nonexistent from change ok 112 - Nonexistent from change ident should be "bundle" ok 113 - Nonexistent from message change should be correct ok 114 - Should die on nonexistent to change ok 115 - Nonexistent to change ident should be "bundle" ok 116 - Nonexistent to message change should be correct ok 117 - _build\sql\sqitch.conf does not exist ok 118 - _build\sql\engine\sqitch.plan does not exist ok 119 - _build\sql\engine\reworked\deploy\users@alpha.sql does not exist ok 120 - _build\sql\engine\reworked\revert\users@alpha.sql does not exist ok 121 - _build\sql\engine\deploy\widgets.sql does not exist ok 122 - _build\sql\engine\revert\widgets.sql does not exist ok 123 - _build\sql\engine\deploy\func\add_user.sql does not exist ok 124 - _build\sql\engine\revert\func\add_user.sql does not exist ok 125 - _build\sql\engine\deploy\users.sql does not exist ok 126 - _build\sql\engine\revert\users.sql does not exist ok 127 - 'another bundle command' isa 'App::Sqitch::Command::bundle' ok 128 - Execute! ok 129 - _build\sql\sqitch.conf exists ok 130 - _build\sql\engine\sqitch.plan exists ok 131 - _build\sql\engine\reworked\deploy\users@alpha.sql exists ok 132 - _build\sql\engine\reworked\revert\users@alpha.sql exists ok 133 - _build\sql\engine\deploy\widgets.sql exists ok 134 - _build\sql\engine\revert\widgets.sql exists ok 135 - _build\sql\engine\deploy\func\add_user.sql exists ok 136 - _build\sql\engine\revert\func\add_user.sql exists ok 137 - _build\sql\engine\deploy\users.sql exists ok 138 - _build\sql\engine\revert\users.sql exists ok 139 - Should have all notices ok 140 - _build\multiplan.conf does not exist ok 141 - _build\sql\sqitch.plan does not exist ok 142 - _build\sql\deploy\roles.sql does not exist ok 143 - _build\sql\deploy\users.sql does not exist ok 144 - _build\sql\verify\users.sql does not exist ok 145 - _build\sql\deploy\widgets.sql does not exist ok 146 - _build\engine\sqitch.plan does not exist ok 147 - _build\engine\reworked\deploy\users@alpha.sql does not exist ok 148 - _build\engine\reworked\revert\users@alpha.sql does not exist ok 149 - _build\engine\deploy\widgets.sql does not exist ok 150 - _build\engine\revert\widgets.sql does not exist ok 151 - _build\engine\deploy\func\add_user.sql does not exist ok 152 - _build\engine\revert\func\add_user.sql does not exist ok 153 - _build\engine\deploy\users.sql does not exist ok 154 - _build\engine\revert\users.sql does not exist ok 155 - 'all xmultiplan bundle command' isa 'App::Sqitch::Command::bundle' ok 156 - Execute multi-target bundle! ok 157 - _build\multiplan.conf exists ok 158 - _build\sql\sqitch.plan exists ok 159 - _build\sql\deploy\roles.sql exists ok 160 - _build\sql\deploy\users.sql exists ok 161 - _build\sql\verify\users.sql exists ok 162 - _build\sql\deploy\widgets.sql exists ok 163 - _build\engine\sqitch.plan exists ok 164 - _build\engine\reworked\deploy\users@alpha.sql exists ok 165 - _build\engine\reworked\revert\users@alpha.sql exists ok 166 - _build\engine\deploy\widgets.sql exists ok 167 - _build\engine\revert\widgets.sql exists ok 168 - _build\engine\deploy\func\add_user.sql exists ok 169 - _build\engine\revert\func\add_user.sql exists ok 170 - _build\engine\deploy\users.sql exists ok 171 - _build\engine\revert\users.sql exists ok 172 - Should get an error for --all and a target arg ok 173 - Mixed arguments error ident should be "bundle" ok 174 - Mixed arguments error message should be correct ok 175 - 'multiplan bundle command' isa 'App::Sqitch::Command::bundle' ok 176 - Execute with no arg ok 177 - _build\multiplan.conf exists ok 178 - _build\engine\sqitch.plan exists ok 179 - _build\engine\reworked\deploy\users@alpha.sql exists ok 180 - _build\engine\reworked\revert\users@alpha.sql exists ok 181 - _build\engine\deploy\widgets.sql exists ok 182 - _build\engine\revert\widgets.sql exists ok 183 - _build\engine\deploy\func\add_user.sql exists ok 184 - _build\engine\revert\func\add_user.sql exists ok 185 - _build\engine\deploy\users.sql exists ok 186 - _build\engine\revert\users.sql exists ok 187 - _build\sql\sqitch.plan does not exist ok 188 - _build\sql\deploy\roles.sql does not exist ok 189 - _build\sql\deploy\users.sql does not exist ok 190 - _build\sql\verify\users.sql does not exist ok 191 - _build\sql\deploy\widgets.sql does not exist ok 192 - Execute with bundle.all config ok 193 - _build\multiplan.conf exists ok 194 - _build\engine\sqitch.plan exists ok 195 - _build\engine\reworked\deploy\users@alpha.sql exists ok 196 - _build\engine\reworked\revert\users@alpha.sql exists ok 197 - _build\engine\deploy\widgets.sql exists ok 198 - _build\engine\revert\widgets.sql exists ok 199 - _build\engine\deploy\func\add_user.sql exists ok 200 - _build\engine\revert\func\add_user.sql exists ok 201 - _build\engine\deploy\users.sql exists ok 202 - _build\engine\revert\users.sql exists ok 203 - _build\sql\sqitch.plan exists ok 204 - _build\sql\deploy\roles.sql exists ok 205 - _build\sql\deploy\users.sql exists ok 206 - _build\sql\verify\users.sql exists ok 207 - _build\sql\deploy\widgets.sql exists ok 208 - Execute with target arg "pg" ok 209 - _build\multiplan.conf exists ok 210 - _build\engine\sqitch.plan exists ok 211 - _build\engine\reworked\deploy\users@alpha.sql exists ok 212 - _build\engine\reworked\revert\users@alpha.sql exists ok 213 - _build\engine\deploy\widgets.sql exists ok 214 - _build\engine\revert\widgets.sql exists ok 215 - _build\engine\deploy\func\add_user.sql exists ok 216 - _build\engine\revert\func\add_user.sql exists ok 217 - _build\engine\deploy\users.sql exists ok 218 - _build\engine\revert\users.sql exists ok 219 - _build\sql\sqitch.plan does not exist ok 220 - _build\sql\deploy\roles.sql does not exist ok 221 - _build\sql\deploy\users.sql does not exist ok 222 - _build\sql\verify\users.sql does not exist ok 223 - _build\sql\deploy\widgets.sql does not exist ok 224 - Execute with plan file arg "engine\sqitch.plan" ok 225 - _build\multiplan.conf exists ok 226 - _build\engine\sqitch.plan exists ok 227 - _build\engine\reworked\deploy\users@alpha.sql exists ok 228 - _build\engine\reworked\revert\users@alpha.sql exists ok 229 - _build\engine\deploy\widgets.sql exists ok 230 - _build\engine\revert\widgets.sql exists ok 231 - _build\engine\deploy\func\add_user.sql exists ok 232 - _build\engine\revert\func\add_user.sql exists ok 233 - _build\engine\deploy\users.sql exists ok 234 - _build\engine\revert\users.sql exists ok 235 - _build\sql\sqitch.plan does not exist ok 236 - _build\sql\deploy\roles.sql does not exist ok 237 - _build\sql\deploy\users.sql does not exist ok 238 - _build\sql\verify\users.sql does not exist ok 239 - _build\sql\deploy\widgets.sql does not exist ok 240 - Execute with target arg "mysql" ok 241 - _build\multiplan.conf exists ok 242 - _build\sql\sqitch.plan exists ok 243 - _build\sql\deploy\roles.sql exists ok 244 - _build\sql\deploy\users.sql exists ok 245 - _build\sql\verify\users.sql exists ok 246 - _build\sql\deploy\widgets.sql exists ok 247 - _build\engine\sqitch.plan does not exist ok 248 - _build\engine\reworked\deploy\users@alpha.sql does not exist ok 249 - _build\engine\reworked\revert\users@alpha.sql does not exist ok 250 - _build\engine\deploy\widgets.sql does not exist ok 251 - _build\engine\revert\widgets.sql does not exist ok 252 - _build\engine\deploy\func\add_user.sql does not exist ok 253 - _build\engine\revert\func\add_user.sql does not exist ok 254 - _build\engine\deploy\users.sql does not exist ok 255 - _build\engine\revert\users.sql does not exist ok 256 - Execute with plan file arg "sql\sqitch.plan" ok 257 - _build\multiplan.conf exists ok 258 - _build\sql\sqitch.plan exists ok 259 - _build\sql\deploy\roles.sql exists ok 260 - _build\sql\deploy\users.sql exists ok 261 - _build\sql\verify\users.sql exists ok 262 - _build\sql\deploy\widgets.sql exists ok 263 - _build\engine\sqitch.plan does not exist ok 264 - _build\engine\reworked\deploy\users@alpha.sql does not exist ok 265 - _build\engine\reworked\revert\users@alpha.sql does not exist ok 266 - _build\engine\deploy\widgets.sql does not exist ok 267 - _build\engine\revert\widgets.sql does not exist ok 268 - _build\engine\deploy\func\add_user.sql does not exist ok 269 - _build\engine\revert\func\add_user.sql does not exist ok 270 - _build\engine\deploy\users.sql does not exist ok 271 - _build\engine\revert\users.sql does not exist ok 272 - 'to/from bundle command' isa 'App::Sqitch::Command::bundle' ok 273 - Execute to/from bundle! ok 274 - _build\multiplan.conf exists ok 275 - _build\engine\sqitch.plan exists ok 276 - _build\engine\deploy\widgets.sql exists ok 277 - _build\engine\revert\widgets.sql exists ok 278 - _build\engine\reworked\deploy\users@alpha.sql does not exist ok 279 - _build\engine\reworked\revert\users@alpha.sql does not exist ok 280 - _build\engine\deploy\func\add_user.sql does not exist ok 281 - _build\engine\revert\func\add_user.sql does not exist ok 282 - _build\engine\deploy\users.sql does not exist ok 283 - _build\engine\revert\users.sql does not exist ok 284 - Plan should have written only "widgets" ok 285 - 'another bundle command' isa 'App::Sqitch::Command::bundle' ok 286 - Execute bundle with to/from args! ok 287 - _build\multiplan.conf exists ok 288 - _build\engine\sqitch.plan exists ok 289 - _build\engine\deploy\widgets.sql exists ok 290 - _build\engine\revert\widgets.sql exists ok 291 - _build\engine\deploy\func\add_user.sql exists ok 292 - _build\engine\revert\func\add_user.sql exists ok 293 - _build\engine\deploy\users.sql exists ok 294 - _build\engine\revert\users.sql exists ok 295 - _build\engine\reworked\deploy\users@alpha.sql does not exist ok 296 - _build\engine\reworked\revert\users@alpha.sql does not exist ok 297 - Plan should have written "widgets" and "func/add_user" ok 298 - Should get an exception for unknown argument ok 299 - Unknown argument error ident shoud be "bundle" ok 300 - Unknown argument error message should be correct ok 301 - Should get an exception for unknown arguments ok 302 - Unknown arguments error ident shoud be "bundle" ok 303 - Unknown arguments error message should be correct ok 304 - no warnings ok t/change.t .......... 1..93 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 dir should be correct ok 11 - The deploy file should be correct ok 12 - The revert dir should be correct ok 13 - The revert file should be correct ok 14 - The verify dir should be correct ok 15 - The verify file should be correct ok 16 - The change should not be reworked ok 17 - path_segments should not include suffix ok 18 - Nonexistent deploy script hash should be undef ok 19 - Deploy script hash should be correct ok 20 - Add a rework tag ok 21 - Reworked tag should be stored ok 22 - The change should be reworked ok 23 - path_segments should now include suffix ok 24 - The change should not be reworked ok 25 - Add two rework tags ok 26 - The change should again be reworked ok 27 - path_segments should now include the correct suffixc ok 28 - Name should format as "foo" ok 29 - Name should format with tags as "foo" ok 30 - Dependencies should format as "" ok 31 - Name should format with dependencies as "foo" ok 32 - Name should format op without dependencies as "foo" ok 33 - Change content should format correctly without dependencies ok 34 - Planner name shoudld default to user name ok 35 - Planner email shoudld default to user email ok 36 - Planner name and email should format properly ok 37 - should stringify to "foo" + planner ok 38 - Since tag should be undef ok 39 - Parent should be undef ok 40 - Old change info should be correct ok 41 - Old change ID should be correct ok 42 - Change info should be correct ok 43 - Change ID should be correct ok 44 - Create change with more stuff ok 45 - It should stringify correctly ok 46 - It should not be a deploy change ok 47 - It should be a revert change ok 48 - It should say so ok 49 - It should have a since tag ok 50 - It should have a parent ok 51 - Old info should not since tag ok 52 - Info should include parent and dependencies ok 53 - Should have no tags ok 54 - Add a tag ok 55 - Should have the tag ok 56 - Should format name with tags ok 57 - Add another tag ok 58 - Should have both tags ok 59 - Should format name with both tags ok 60 - Planner name and email should format properly ok 61 - Dependencies should format as "[foo bar @baz !dr_evil]" ok 62 - Name should format with dependencies as "yo/howdy [foo bar @baz !dr_evil]" ok 63 - Name should format op with dependencies as "yo/howdy [foo bar @baz !dr_evil]" ok 64 - Change content should format correctly with dependencies ok 65 - path_segments should include directories ok 66 - Deploy dir should be in rworked dir ok 67 - Deploy file should be in rworked dir and include suffix ok 68 - Revert dir should be in rworked dir ok 69 - Revert file should be in rworked dir and include suffix ok 70 - Verify dir should be in rworked dir ok 71 - Verify file should be in rworked dir and include suffix ok 72 - Create change "baz" ok 73 - Create change "bar" ok 74 - Get deploy handle ok 75 - It should be the deploy file ok 76 - Get revert handle ok 77 - It should be the revert file ok 78 - Get verify handle ok 79 - It should be the verify file ok 80 - Create a change with explicit requires and conflicts ok 81 - requires should be set ok 82 - conflicts should be set ok 83 - Dependencies should include requires and conflicts ok 84 - Should find changes for requires ok 85 - Should find changes for conflicts ok 86 - Create change with UTF-8 name ok 87 - The name should be decoded text in old info ok 88 - Old change ID should be hashed from encoded UTF-8 ok 89 - The name should be decoded text in info ok 90 - Change ID should be hashed from encoded UTF-8 ok 91 - note_prompt() should work ok 92 - note_prompt() should work ok 93 - 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..163 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 no args should return default target ok 89 - Single unknown arg raise an error ok 90 - Unknown error ident should be "" ok 91 - Unknown error message should be correct ok 92 - Single change should be recognized as change ok 93 - Single target should be recognized as target ok 94 - URI target should be recognized as target, too ok 95 - Target and change should be recognized ok 96 - Change and target should be recognized ok 97 - Change, target, and unknown name should be recognized ok 98 - Multiple changes, target, and unknown name should be recognized ok 99 - Multiple names should be recognized ok 100 - Should get an error with name and unknown ok 101 - Unknown error ident should be "" ok 102 - Unknown error message should be correct ok 103 - Should get an error with name and two unknowns ok 104 - Two unknowns error ident should be "" ok 105 - Two unknowns error message should be correct ok 106 - Load Sqitch with config ok 107 - Load cmd with config ok 108 - Change following target should be recognized from target plan ok 109 - Passed target should always be returned ok 110 - Passed and specified targets should always be returned ok 111 - Change unknown to passed target should error ok 112 - Change unknown error ident should be "" ok 113 - Change unknown error message should be correct ok 114 - Should get known changes from default target (t/sql/sqitch.plan) ok 115 - Change seen after target should error if not in that target ok 116 - Change after target error ident should be "" ok 117 - Change after target error message should be correct ok 118 - Should resolve plan file to a target ok 119 - SHould resolve default plan file to target ok 120 - Should resolve engine "pg" file to its target ok 121 - Should resolve engine "sqlite" file to its target ok 122 - Call _pod2usage on base object ok 123 - Default params should be passed to Pod::Usage ok 124 - Call _pod2usage on "whu" command object ok 125 - Default params should be passed to Pod::Usage ok 126 - 'Config command object' isa 'App::Sqitch::Command::config' ok 127 - Call _pod2usage on "config" command object ok 128 - Should find sqitch-config docs to pass to Pod::Usage ok 129 - 'Good command object' isa 'App::Sqitch::Command::good' ok 130 - Call _pod2usage on "good" command object ok 131 - Should find App::Sqitch::Command::good docs to pass to Pod::Usage ok 132 - App::Sqitch::Command::good->can('usage') ok 133 - Should find App::Sqitch::Command::good docs to pass to Pod::Usage ok 134 - App::Sqitch::Command->can('verbosity') ok 135 - Verbosity should be from sqitch ok 136 - Verbosity should change with sqitch ok 137 - trace should work ok 138 - Should get no trace output for verbosity 2 ok 139 - trace_literal should work ok 140 - Should get no trace_literal output for verbosity 2 ok 141 - debug should work ok 142 - Should get no debug output for verbosity 1 ok 143 - debug_literal should work ok 144 - Should get no debug_literal output for verbosity 1 ok 145 - info should work ok 146 - Should get no info output for verbosity 0 ok 147 - info_literal should work ok 148 - Should get no info_literal output for verbosity 0 ok 149 - comment should work ok 150 - comment should work with verbosity 0 ok 151 - comment_literal should work ok 152 - comment_literal should work with verbosity 0 ok 153 - emit should work ok 154 - emit should work even with verbosity 0 ok 155 - emit_literal should work ok 156 - emit_literal should work even with verbosity 0 ok 157 - warn should work ok 158 - warn_literal should work ok 159 - threw Regexp ((?^:EXITED: 2)) ok 160 - usage should work ok 161 - threw Regexp ((?^:EXITED: 2)) ok 162 - usage should prefer sqitch-$command-usage ok 163 - 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 "Wednesday, June 15, 2016 at 3:07:29 PM America/Los_Angeles" ok 5 - Format "full" should be valid ok 6 - Date format "long" should yield "June 15, 2016 at 3:07:29 PM PDT" ok 7 - Format "long" should be valid ok 8 - Date format "medium" should yield "Jun 15, 2016, 3:07:29 PM" ok 9 - Format "medium" should be valid ok 10 - Date format "short" should yield "6/15/16, 3:07 PM" ok 11 - Format "short" should be valid ok 12 - Date format "raw" should yield "2016-06-15T22:07:29Z" ok 13 - Format "raw" should be valid ok 14 - Date format "" should yield "2016-06-15T22:07:29Z" ok 15 - Date format "iso" should yield "2016-06-15 15:07:29 -0700" ok 16 - Format "iso" should be valid ok 17 - Date format "iso8601" should yield "2016-06-15 15:07:29 -0700" ok 18 - Format "iso8601" should be valid ok 19 - Date format "rfc" should yield "Wed, 15 Jun 2016 15:07:29 -0700" ok 20 - Format "rfc" should be valid ok 21 - Date format "rfc2822" should yield "Wed, 15 Jun 2016 15:07:29 -0700" ok 22 - Format "rfc2822" should be valid ok 23 - Date format "cldr:HH'h' mm'm'" should yield "15h 07m" ok 24 - Format "cldr:HH'h' mm'm'" should be valid ok 25 - Date format "strftime:%a at %H:%M:%S" should yield "Wed at 15:07:29" 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..639 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 non-existent registry ok 52 - Non-existent registry error ident should be "engine" ok 53 - Non-existent registry error message should be correct ok 54 - Should get error for out-of-date registry ok 55 - Out-of-date registry error ident should be "engine" ok 56 - Out-of-date registry error message should be correct ok 57 - Should get error for future registry ok 58 - Future registry error ident should be "engine" ok 59 - Future registry error message should be correct ok 60 - Create a App::Sqitch::Engine object again ok 61 - Should get an unimplemented exception from initialized() ok 62 - Should get an unimplemented exception from initialize() ok 63 - Should get an unimplemented exception from register_project() ok 64 - Should get an unimplemented exception from run_file() ok 65 - Should get an unimplemented exception from run_handle() ok 66 - Should get an unimplemented exception from log_deploy_change() ok 67 - Should get an unimplemented exception from log_fail_change() ok 68 - Should get an unimplemented exception from log_revert_change() ok 69 - Should get an unimplemented exception from log_new_tags() ok 70 - Should get an unimplemented exception from is_deployed_tag() ok 71 - Should get an unimplemented exception from is_deployed_change() ok 72 - Should get an unimplemented exception from are_deployed_changes() ok 73 - Should get an unimplemented exception from change_id_for() ok 74 - Should get an unimplemented exception from changes_requiring_change() ok 75 - Should get an unimplemented exception from earliest_change_id() ok 76 - Should get an unimplemented exception from latest_change_id() ok 77 - Should get an unimplemented exception from deployed_changes() ok 78 - Should get an unimplemented exception from deployed_changes_since() ok 79 - Should get an unimplemented exception from load_change() ok 80 - Should get an unimplemented exception from name_for_change_id() ok 81 - Should get an unimplemented exception from current_state() ok 82 - Should get an unimplemented exception from current_changes() ok 83 - Should get an unimplemented exception from current_tags() ok 84 - Should get an unimplemented exception from search_events() ok 85 - Should get an unimplemented exception from registered_projects() ok 86 - Should get an unimplemented exception from change_offset_from_id() ok 87 - Should get an unimplemented exception from change_id_offset_from_id() ok 88 - App::Sqitch::Engine->can('_load_changes') ok 89 - Should load changes with no change ok 90 - Should load changes with undef ok 91 - Should load changes with no tags ok 92 - Should load changes with multiple hashes with no tags ok 93 - Should load changes with tags ok 94 - Should load changes with tags with leading @ ok 95 - Should load changes with multiple hashes with tags ok 96 - Should load changes with reworked change ok 97 - Should load changes with reworked change & multiple tags ok 98 - Should load changes with doubly reworked change ok 99 - Rework change "you" ok 100 - Tag @beta1 ok 101 - Should load changes with Unplanned change ok 102 - Should load changes with reworked change without reworked version deployed ok 103 - Should load changes with reworked change with reworked version deployed ok 104 - Create a subclass name object again ok 105 - App::Sqitch::Engine::whu->can(...) ok 106 - Deploy a change ok 107 - deploy_change should have called the proper methods ok 108 - Output should reflect the deployment ok 109 - Output should reflect success ok 110 - Only log a change ok 111 - log-only deploy_change should not have called run_file ok 112 - Output should reflect the logging ok 113 - Output should reflect deploy success ok 114 - Enable verification ok 115 - Deploy a change to be verified ok 116 - deploy_change with verification should run the verify file ok 117 - Output should reflect the logging ok 118 - Output should reflect deploy success ok 119 - Enable log_only ok 120 - Verify and log a change ok 121 - deploy_change with verification and log-only should not run deploy ok 122 - Output should reflect the logging ok 123 - Output should reflect deploy success ok 124 - Deploy change with error ok 125 - Error should be from run_file ok 126 - Should have logged change failure ok 127 - Output should reflect the deployment, even with failure ok 128 - Output should reflect deploy failure ok 129 - Deploy change with failed verification ok 130 - Error should be from deploy_change ok 131 - Should have logged verify failure ok 132 - Output should reflect the deployment, even with verify failure ok 133 - Output should reflect deploy failure ok 134 - Verify error should have been vented ok 135 - Enable log_only ok 136 - Deploy change with log-only and failed verification ok 137 - Error should be from deploy_change ok 138 - Should have logged verify failure but not reverted ok 139 - Output should reflect the deployment, even with verify failure ok 140 - Output should reflect deploy failure ok 141 - Verify error should have been vented ok 142 - Deploy a change with no verify script ok 143 - deploy_change with no verify file should not run it ok 144 - Output should reflect the logging ok 145 - Output should reflect deploy success ok 146 - A warning about no verify file should have been emitted ok 147 - Revert a change ok 148 - revert_change should have called the proper methods ok 149 - Output should reflect reversion ok 150 - Output should acknowldge revert success ok 151 - Enable log_only ok 152 - Revert a change with log-only ok 153 - Log-only revert_change should not have run the change script ok 154 - Output should reflect logged reversion ok 155 - Output should acknowldge revert success ok 156 - Engine with sqitch with plan file ok 157 - Should get proper change from latest_change() ok 158 - Latest change ID should have been called with no arg ok 159 - Should again get proper change from latest_change() ok 160 - Latest change ID should have been called with offset arg ok 161 - Should get proper change from earliest_change() ok 162 - Earliest change ID should have been called with no arg ok 163 - Should again get proper change from earliest_change() ok 164 - Earliest change ID should have been called with offset arg ok 165 - App::Sqitch::Engine->can('_sync_plan') ok 166 - Plan should start at position -1 ok 167 - start_at should be undef ok 168 - Sync the plan ok 169 - Plan should still be at position -1 ok 170 - start_at should still be undef ok 171 - Should not have updated IDs or hashes ok 172 - Sync the plan again ok 173 - Plan should again be at position -1 ok 174 - start_at should again be undef ok 175 - Still should not have updated IDs or hashes ok 176 - Sync the plan to a tag ok 177 - Plan should now be at position 1 ok 178 - start_at should now be widgets@beta ok 179 - Should have updated IDs 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 but not hashes ok 184 - Sync the plan with a random script hash ok 185 - Plan should now be at position 1 ok 186 - start_at should now be widgets@beta ok 187 - Should have updated IDs and hashes ok 188 - Sync the plan ok 189 - Plan should be at position 1 ok 190 - start_at should be users@alpha ok 191 - Should have updated hashes but not IDs ok 192 - App::Sqitch::Engine->can('deploy') ok 193 - Deploy to @alpha ok 194 - Plan should be at position 1 ok 195 - Should have deployed through @alpha ok 196 - Should have called _deploy_all() ok 197 - Should have seen the output of the deploy to @alpha ok 198 - Both change names should be output ok 199 - Enable log_only ok 200 - Log-only deploy in $mode mode to @alpha ok 201 - Plan should be at position 1 ok 202 - Should have deployed through @alpha without running files ok 203 - Should have called _deploy_by_change() ok 204 - Should have seen the output of the deploy to @alpha ok 205 - Both change names should be output ok 206 - Enable log_only ok 207 - Log-only deploy in $mode mode to @alpha ok 208 - Plan should be at position 1 ok 209 - Should have deployed through @alpha without running files ok 210 - Should have called _deploy_by_tag() ok 211 - Should have seen the output of the deploy to @alpha ok 212 - Both change names should be output ok 213 - Enable log_only ok 214 - Log-only deploy in $mode mode to @alpha ok 215 - Plan should be at position 1 ok 216 - Should have deployed through @alpha without running files ok 217 - Should have called _deploy_all() ok 218 - Should have seen the output of the deploy to @alpha ok 219 - Both change names should be output ok 220 - Deploy to @alpha with tag mode ok 221 - Plan should again be at position 1 ok 222 - Should have deployed through @alpha without initialization ok 223 - Should have called _deploy_by_tag() ok 224 - Should have seen the output of the deploy to @alpha ok 225 - Both change names should be output ok 226 - Should get an error for an unknown change ok 227 - The exception should report the unknown change ok 228 - Only latest_item() should have been called ok 229 - Deploy to alpha thrice ok 230 - Only latest_item() should have been called ok 231 - Should notify user that already at @alpha ok 232 - Should fail changeing older change ok 233 - Should be a "deploy" error ok 234 - It should suggest using "revert" ok 235 - Should have called latest_item() and latest_tag() ok 236 - Deploy everything by change ok 237 - Plan should be at position 3 ok 238 - Should have deployed everything ok 239 - Should have called _deploy_by_change() ok 240 - Should have emitted deploy announcement and successes ok 241 - Should have seen the output of the deploy to the end ok 242 - Should return success for deploy to up-to-date DB ok 243 - Should have emitted deploy announcement and successes ok 244 - It should have just fetched the latest change ID ok 245 - Should fail on invalid mode ok 246 - Should be a "deploy" error ok 247 - And the message should reflect the unknown mode ok 248 - It should have check for initialization ok 249 - Should have announced destination ok 250 - Engine with sqitch with no file ok 251 - Should die with no changes ok 252 - Should have the localized message ok 253 - It should have checked for the latest item ok 254 - Deploy changewise to index 1 ok 255 - Should changewise deploy to index 2 ok 256 - Should have seen output of each change ok 257 - Output should reflect deploy successes ok 258 - Deploy changewise to index 2 ok 259 - Should changewise deploy to from index 2 to index 3 ok 260 - Should have seen output of changes 2-3 ok 261 - Output should reflect deploy successes ok 262 - Die in _deploy_by_change ok 263 - It should have died in run_file ok 264 - It should have logged the failure ok 265 - Should have seen output for first change ok 266 - Output should reflect deploy failure ok 267 - Deploy tagwise to index 1 ok 268 - Should tagwise deploy to index 1 ok 269 - Should have seen output of each change ok 270 - Output should reflect deploy successes ok 271 - Deploy tagwise to index 3 ok 272 - Should tagwise deploy from index 2 to index 3 ok 273 - Should have seen output of changes 3-3 ok 274 - Output should reflect deploy successes ok 275 - Die in log_deploy_change ok 276 - Should get final deploy failure message ok 277 - It should have reverted back to the last deployed tag ok 278 - Should have seen deploy and revert messages (excluding curry revert) ok 279 - Output should reflect deploy successes and failure ok 280 - The original error should have been vented ok 281 - Enable log_only ok 282 - Die in log_deploy_change log-only ok 283 - Should get final deploy failure message ok 284 - It should have run no deploy or revert scripts ok 285 - Should have seen deploy and revert messages (excluding curry revert) ok 286 - Output should reflect deploy successes and failure ok 287 - The original error should have been vented ok 288 - Die in _deploy_by_tag again ok 289 - Should again get final deploy failure message ok 290 - Should have logged back to the beginning ok 291 - Should have seen deploy and revert messages ok 292 - Output should reflect deploy successes and failure ok 293 - Should have one vented message ok 294 - And it should be the underlying error ok 295 - And it should had notified that all changes were reverted ok 296 - Die in _deploy_by_tag yet again ok 297 - Should die "Deploy failed" again ok 298 - Should have reverted back to last tag ok 299 - Should have user change reversion messages ok 300 - Output should reflect deploy successes and failure ok 301 - Should see underlying error and reversion message ok 302 - Die in _deploy_by_tag again ok 303 - Should once again get final deploy failure message ok 304 - Should have tried to revert one change ok 305 - Should have seen revert message ok 306 - Output should reflect deploy successes and failure ok 307 - Should get reversion failure message ok 308 - Deploy all to index 1 ok 309 - Should tagwise deploy to index 1 ok 310 - Should have seen output of each change ok 311 - Output should reflect deploy successes ok 312 - Deploy tagwise to index 2 ok 313 - Should tagwise deploy to from index 1 to index 2 ok 314 - Should have seen output of changes 3-4 ok 315 - Output should reflect deploy successe ok 316 - Die in _deploy_all ok 317 - Should get final deploy failure message ok 318 - It should have logged up to the failure ok 319 - Should have seen deploy and revert messages excluding revert for failed logging ok 320 - Output should reflect deploy successes and failures ok 321 - The original error should have been vented ok 322 - Enable log_only ok 323 - Die in log-only _deploy_all ok 324 - Should get final deploy failure message ok 325 - It should have run no deploys or reverts ok 326 - Should have seen deploy and revert messages excluding revert for failed logging ok 327 - Output should reflect deploy successes and failures ok 328 - The original error should have been vented ok 329 - Die in _deploy_all again ok 330 - Should again get final deploy failure message ok 331 - Should have reveted all changes and tags ok 332 - Should see all changes revert ok 333 - Output should reflect deploy successes and failures ok 334 - Should notifiy user of error and rollback ok 335 - Die in _deploy_all on the last change ok 336 - Should once again get final deploy failure message ok 337 - Should have deployed to dr_evil and revered down to @alpha ok 338 - Should see changes revert back to @alpha ok 339 - Output should reflect deploy successes and failures ok 340 - Should notifiy user of error and rollback to @alpha ok 341 - Test is_deployed(tag) ok 342 - It should have called is_deployed_tag() ok 343 - Test is_deployed(change) ok 344 - It should have called is_deployed_change() ok 345 - App::Sqitch::Engine::whu->can('deploy_change') ok 346 - Deploy a change ok 347 - It should have been deployed ok 348 - Should have shown change name ok 349 - Output should reflect deploy success ok 350 - Shuld die on deploy failure ok 351 - Should be told the deploy failed ok 352 - It should failed to have been deployed ok 353 - Should have vented the original error ok 354 - Should have shown change name ok 355 - Output should reflect deploy failure ok 356 - App::Sqitch::Engine::whu->can('revert_change') ok 357 - Revert the change ok 358 - It should have been reverted ok 359 - Should have shown reverted change name ok 360 - And the revert failure should be "ok" ok 361 - App::Sqitch::Engine::whu->can('revert') ok 362 - Should get exception for no changes to revert ok 363 - Should be a revert exception ok 364 - Should have notified that there is nothing to revert ok 365 - Exit val should be 1 ok 366 - It should only have called deployed_changes() ok 367 - Nothing should have been output ok 368 - Revert should die on unknown change ok 369 - Should be another "revert" error ok 370 - The message should mention it is an unknown change ok 371 - Should have called change_id_for() with change name ok 372 - Nothing should have been output ok 373 - Revert should die on unknown change ID ok 374 - Should be another "revert" error ok 375 - The message should mention it is an unknown change ok 376 - Shoudl have called change_id_for() with change ID ok 377 - Nothing should have been output ok 378 - Revert should die on undeployed change ok 379 - Should be another "revert" error ok 380 - The message should mention that the change is not deployed ok 381 - change_id_for ok 382 - Nothing should have been output ok 383 - Should get error reverting when no subsequent changes ok 384 - No subsequent change error ident should be "revert" ok 385 - No subsequent change error exitval should be 1 ok 386 - No subsequent change error message should be correct ok 387 - Should have called change_id_for and deployed_changes_since ok 388 - Should get error for known but undeployed change ok 389 - No changes error should be "revert" ok 390 - No changes exitval should be 1 ok 391 - No changes message should be correct ok 392 - Should have called deployed_changes ok 393 - Revert all changes ok 394 - Should have reverted the changes in reverse order ok 395 - Should have prompted to revert all changes ok 396 - It should have said it was reverting all changes and listed them ok 397 - And the revert successes should be emitted ok 398 - Enable log_only ok 399 - Revert all changes log-only ok 400 - Log-only Should have reverted the changes in reverse order ok 401 - Log-only should have prompted to revert all changes ok 402 - It should have said it was reverting all changes and listed them ok 403 - And the revert successes should be emitted ok 404 - Should abort declined revert ok 405 - Declined revert ident should be "revert" ok 406 - Should have exited with value 1 ok 407 - Should have exited with proper message ok 408 - Should have called deployed_changes only ok 409 - Should have prompt to revert all changes ok 410 - It should have emitted nothing else ok 411 - Revert all changes with no prompt ok 412 - Should have reverted the changes in reverse order ok 413 - Should have no prompt ok 414 - It should have said it was reverting all changes and listed them ok 415 - And the revert successes should be emitted ok 416 - Revert to @alpha ok 417 - Should have reverted only changes after @alpha ok 418 - Should have prompt to revert to change ok 419 - Output should show what it reverts to ok 420 - And the revert successes should be emitted ok 421 - Should abort declined revert to @alpha ok 422 - Declined revert ident should be "revert:confirm" ok 423 - Should have exited with value 1 ok 424 - Should have exited with proper message ok 425 - Should have called revert methods ok 426 - Should have prompt to revert to @alpha ok 427 - It should have emitted nothing else ok 428 - Revert to @HEAD^ ok 429 - Should have reverted one changes for @HEAD^ ok 430 - Should have no prompt ok 431 - Output should show what it reverts to ok 432 - And the header and "ok" should be emitted ok 433 - App::Sqitch::Engine->can('change_id_for_depend') ok 434 - Should get error from change_id_for_depend when change not in plan ok 435 - Should get ident "plan" from change_id_for_depend ok 436 - Should have proper message from change_id_for_depend error ok 437 - Should get error from change_id_for_depend when no ID ok 438 - Should get ident "engine" when no ID ok 439 - Should have proper messag from change_id_for_depend error ok 440 - Get a change id ok 441 - Should have passed dependency params to change_id_for() ok 442 - App::Sqitch::Engine->can('find_change') ok 443 - find_change() should work ok 444 - Its parameters should have been passed to change_id_for and change_offset_from_id ok 445 - find_change() should work ok 446 - Project and offset should have been passed off ok 447 - App::Sqitch::Engine->can('find_change_id') ok 448 - find_change_id() should work ok 449 - Its parameters should have been passed to change_id_for and change_offset_from_id ok 450 - find_change_id() should work ok 451 - Project and offset should have been passed off ok 452 - App::Sqitch::Engine->can('verify_change') ok 453 - Verify a change ok 454 - The change file should have been run ok 455 - Should have no info output ok 456 - Verify a change with no verify script. ok 457 - No abstract methods should be called ok 458 - Should have no info output ok 459 - A warning about no verify file should have been emitted ok 460 - App::Sqitch::Engine::whu->can('check_deploy_dependencies') ok 461 - All planned changes should be okay ok 462 - Should have called are_deployed_changes ok 463 - Dependencies should check out even when within those to be deployed ok 464 - Resolved ID should be populated ok 465 - Conflict should throw exception ok 466 - Should be a "deploy" error ok 467 - Should have localized message about the local conflict ok 468 - Conflict should throw exception ok 469 - Should be a "deploy" error ok 470 - Should have localized message about conflicts ok 471 - Should have called change_id_for() twice ok 472 - Conflicting dependencies should have no resolved IDs ok 473 - Conflict should throw another exception ok 474 - Should be a "deploy" error ok 475 - Should have localized message about all three conflicts ok 476 - Should have called change_id_for() twice ok 477 - Conflicting dependencies should have no resolved IDs ok 478 - Missing dependencies should throw exception ok 479 - Should be another "deploy" error ok 480 - Should have localized message missing dependencies ok 481 - Should have called check_requires ok 482 - Missing requirements should not have resolved ok 483 - Missing dependencies should throw exception ok 484 - Should be another "deploy" error ok 485 - Should have localized conflicts and required error messages ok 486 - Should have called check_requires ok 487 - Missing requirements should not have resolved ok 488 - App::Sqitch::Engine::whu->can('check_revert_dependencies') ok 489 - Should get error reverting change another depend on ok 490 - Dependent error ident should be "revert" ok 491 - Dependent error message should be correct ok 492 - It should have check for requiring changes ok 493 - Should get error reverting change others depend on ok 494 - Dependent error ident should be "revert" ok 495 - Dependent error message should be correct ok 496 - It should have check for requiring changes ok 497 - Should get error reverting change others depend on ok 498 - Dependent error ident should be "revert" ok 499 - Dependent error message should be correct ok 500 - It should have checked twice for requiring changes ok 501 - App::Sqitch::Engine::whu->can('_trim_to') ok 502 - _trim_to should complain about a nonexistent change key ok 503 - _trim_to nonexistent key error ident should be "foo" ok 504 - _trim_to nonexistent key error message should be correct ok 505 - It should have passed the change name to change_id_for ok 506 - _trim_to should complain about an undeployed change key ok 507 - _trim_to undeployed change error ident should be "yep" ok 508 - _trim_to undeployed change error message should be correct ok 509 - It should have passed change "blah" change_id_for ok 510 - _trim_to should complain about an unplanned change key ok 511 - _trim_to unplanned change error ident should be "oop" ok 512 - _trim_to unplanned change error message should be correct ok 513 - It should have passed "whatever" to change_id_offset_from_id ok 514 - _trim_to should find "roles" at index 0 ok 515 - Changes should be untrimmed ok 516 - It should have passed change 0 ID to change_id_offset_from_id ok 517 - _trim_to should find "widgets" at index 2 ok 518 - First two changes should be shifted off ok 519 - It should have passed change 2 ID to change_id_offset_from_id ok 520 - _trim_to should find "dr_evil" at last index ok 521 - Changes should be untrimmed ok 522 - It should have passed change -1 ID to change_id_offset_from_id ok 523 - _trim_to should find "tacos" at index 4 ok 524 - Last two changes should be popped off ok 525 - It should have passed change -3 ID to change_id_offset_from_id ok 526 - _trim_to should find "lolz^" at index 4 ok 527 - Should pass change -3 ID and offset -1 to change_id_offset_from_id ok 528 - _trim_to should find "curry~" at index 4 ok 529 - Should pass change -3 ID and offset 1 to change_id_offset_from_id ok 530 - _trim_to should find "@HEAD" at index 2 ok 531 - First two changes should be shifted off ok 532 - Should pass tag HEAD to change_id_for ok 533 - _trim_to should find "HEAD" at index 2 ok 534 - First two changes should be shifted off ok 535 - Should pass tag @HEAD to change_id_for ok 536 - _trim_to should find "@ROOT" at index 2 ok 537 - All but First three changes should be popped off ok 538 - Should pass tag ROOT to change_id_for ok 539 - _trim_to should find "ROOT" at index 2 ok 540 - All but First three changes should be popped off ok 541 - Should pass tag @ROOT to change_id_for ok 542 - App::Sqitch::Engine::whu->can('_verify_changes') ok 543 - Verify of a single change should return errcount 0 ok 544 - Declared output should list the change ok 545 - Emitted Output should reflect the verification of the change ok 546 - Should have no comments ok 547 - The verify script should have been run ok 548 - Verify of another single change should return errcount 0 ok 549 - Declared output should list the change ok 550 - Emitted Output should reflect the verification of the change ok 551 - Should have no comments ok 552 - A warning about no verify file should have been emitted ok 553 - The verify script should not have been run ok 554 - Verify of two changes should return errcount 0 ok 555 - Declared output should list both changes ok 556 - Emitted Output should reflect the verification of the changes ok 557 - Should have no comments ok 558 - A warning about no verify file should have been emitted ok 559 - Only one verify script should have been run ok 560 - Verify of two changes and show pending ok 561 - Delcared output should list deployed changes ok 562 - Emitted output should include list of pending changes ok 563 - Should have no comments ok 564 - A warning about no verify file should have been emitted ok 565 - Only one verify script should have been run ok 566 - Verify of a change not in the plan should return errcount 1 ok 567 - Declared Output should reflect the verification of the change ok 568 - Emitted Output should reflect the failure of the verify ok 569 - Should have a comment about the change missing from the plan ok 570 - No verify script should have been run ok 571 - Verify of an out-of-order change should return errcount 1 ok 572 - Declared output should reflect the verification of the change ok 573 - Emitted Output should reflect the failure of the verify ok 574 - Should have a comment about the out-of-order change ok 575 - The verify script should have been run ok 576 - Verify of a change with 2 issues should return 2 ok 577 - Declared output should reflect the verification of the change ok 578 - Emitted Output should reflect the failure of the verify ok 579 - Should have comment about the out-of-order change and script failure ok 580 - No abstract methods should have been called ok 581 - Verify of 2 changes with 2 issues each should return 4 ok 582 - Declraed output should reflect the verification of both changes ok 583 - Emitted Output should reflect the failure of both verifies ok 584 - Should have comment about the out-of-order changes and script failures ok 585 - No abstract methods should have been called ok 586 - _verify_changes with two undeployed changes should returne 2 ok 587 - Listed changes should be both deployed and undeployed ok 588 - Emitted Output should reflect 1 pass ok 589 - Should have comments for undeployed changes ok 590 - No abstract methods should have been called ok 591 - App::Sqitch::Engine::whu->can('verify') ok 592 - Should get error for no deployed changes ok 593 - No deployed changes ident should be "verify" ok 594 - No deployed changes exitval should be 1 ok 595 - No deployed changes message should be correct ok 596 - Notification of the verify should be emitted ok 597 - Should get error for no changes ok 598 - No changes ident should be "verify" ok 599 - No changes exitval should be 1 ok 600 - No changes message should be correct ok 601 - Notification of the verify should be emitted ok 602 - Should get error for no planned changes ok 603 - No planned changes ident should be "verify" ok 604 - No planned changes exitval should be 2 ok 605 - No planned changes message should be correct ok 606 - Notification of the verify should be emitted ok 607 - Verify one change ok 608 - Notification of the verify should be emitted ok 609 - The one change name should be declared ok 610 - Success should be emitted ok 611 - Should have no comments ok 612 - Verify two changes ok 613 - Notification of the verify should be emitted ok 614 - The two change names should be declared ok 615 - Both successes should be emitted ok 616 - Should have no comments ok 617 - Should have warning about missing verify script ok 618 - Verify with a reworked change changes ok 619 - Notification of the verify should be emitted ok 620 - The two change names should be emitted ok 621 - Both successes should be emitted ok 622 - Should have no comments ok 623 - Should have no warnings ok 624 - Verify two specific changes ok 625 - Notification of the verify should be emitted ok 626 - The two change names should be emitted ok 627 - Both successes should be emitted ok 628 - Should have no comments ok 629 - Should have warning about missing verify script ok 630 - Should get failure for failing verify scripts ok 631 - Failed verify ident should be "verify" ok 632 - Failed verify exitval should be 2 ok 633 - Faield verify message should be correct ok 634 - Notification of the verify should be emitted ok 635 - Both change names should be declared ok 636 - Output should include the failure report ok 637 - Should have the errors in comments ok 638 - Nothing should have been vented ok 639 - no warnings ok t/engine_cmd.t ...... 1..282 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 config should contain empty properties ok 6 - configure() should ignore config file ok 7 - Get full config ok 8 - Should have properties ok 9 - 'plan_file file attribute' isa 'Path::Class::File' ok 10 - 'top_dir directory attribute' isa 'Path::Class::Dir' ok 11 - 'reworked_dir directory attribute' isa 'Path::Class::Dir' ok 12 - 'deploy_dir directory attribute' isa 'Path::Class::Dir' ok 13 - 'reworked_deploy_dir directory attribute' isa 'Path::Class::Dir' ok 14 - 'revert_dir directory attribute' isa 'Path::Class::Dir' ok 15 - 'reworked_revert_dir directory attribute' isa 'Path::Class::Dir' ok 16 - 'verify_dir directory attribute' isa 'Path::Class::Dir' ok 17 - 'reworked_verify_dir directory attribute' isa 'Path::Class::Dir' ok 18 - Should fail on invalid directory name ok 19 - Invalid directory ident should be "engine" ok 20 - The invalid directory messsage should be correct ok 21 - Should fail on invalid directory names ok 22 - Invalid directories ident should be "engine" ok 23 - The invalid properties messsage should be correct ok 24 - Run list() ok 25 - The list of engines should have been output ok 26 - 'Verbose engine' isa 'App::Sqitch::Command::engine' ok 27 - Run verbose list() ok 28 - The list of engines and their targets should have been output ok 29 - No name arg to add() should yield usage ok 30 - No args should be passed to usage ok 31 - Should get error for existing engine ok 32 - Existing engine error ident should be "engine" ok 33 - Existing engine error message should be correct ok 34 - dir deploy does not exist ok 35 - dir revert does not exist ok 36 - dir verify does not exist ok 37 - Add engine "vertica" ok 38 - dir deploy exists ok 39 - dir revert exists ok 40 - dir verify exists ok 41 - Engine "test" target should have been set ok 42 - Engine "test" should have no client set ok 43 - Engine "test" should have no registry set ok 44 - Engine "test" should have no top_dir set ok 45 - Engine "test" should have no plan_file set ok 46 - Engine "test" should have no deploy_dir set ok 47 - Engine "test" should have no revert_dir set ok 48 - Engine "test" should have no verify_dir set ok 49 - Engine "test" should have no extension set ok 50 - 'Engine with target property' isa 'App::Sqitch::Command::engine' ok 51 - Should get error for engine/target mismatch ok 52 - Target mismatch ident should be "engine" ok 53 - Target mismatch message should be correct ok 54 - 'Engine with all properties' isa 'App::Sqitch::Command::engine' ok 55 - my.plan does not exist ok 56 - dir top\deploy does not exist ok 57 - dir top\revert does not exist ok 58 - dir top\verify does not exist ok 59 - dir r\d does not exist ok 60 - dir r\revert does not exist ok 61 - dir r\verify does not exist ok 62 - Add engine "firebird" ok 63 - dir top\deploy exists ok 64 - dir top\revert exists ok 65 - dir top\verify exists ok 66 - dir r\d exists ok 67 - dir r\revert exists ok 68 - dir r\verify exists ok 69 - my.plan exists ok 70 - Engine "firebird" should have plan_file set ok 71 - Engine "firebird" should have extension set ok 72 - Engine "firebird" should have target set ok 73 - Engine "firebird" should have reworked_deploy_dir set ok 74 - Engine "firebird" should have client set ok 75 - Engine "firebird" should have registry set ok 76 - Engine "firebird" should have verify_dir set ok 77 - Engine "firebird" should have deploy_dir set ok 78 - Engine "firebird" should have revert_dir set ok 79 - Engine "firebird" should have reworked_dir set ok 80 - Engine "firebird" should have top_dir set ok 81 - 'Engine with no properties' isa 'App::Sqitch::Command::engine' ok 82 - No name arg to add() should yield usage ok 83 - No args should be passed to usage ok 84 - Should get error from alter for nonexistent engine ok 85 - Nonexistent engine error ident should be "engine" ok 86 - Nonexistent engine error message should be correct ok 87 - Should get error for missing engine ok 88 - Missing engine error ident should be "engine" ok 89 - Missing engine error message should be correct ok 90 - 'Engine with more properties' isa 'App::Sqitch::Command::engine' ok 91 - Alter engine "firebird" ok 92 - Engine "firebird" should have registry set ok 93 - Engine "firebird" should have verify_dir set ok 94 - Engine "firebird" should have client set ok 95 - Engine "firebird" should have reworked_dir set ok 96 - Engine "firebird" should have top_dir set ok 97 - Engine "firebird" should have deploy_dir set ok 98 - Engine "firebird" should have revert_dir set ok 99 - Engine "firebird" should have plan_file set ok 100 - Engine "firebird" should have target set ok 101 - Engine "firebird" should have reworked_deploy_dir set ok 102 - Engine "firebird" should have extension set ok 103 - 'Engine with new top_dir property' isa 'App::Sqitch::Command::engine' ok 104 - dir pg does not exist ok 105 - dir pg\deploy does not exist ok 106 - dir pg\revert does not exist ok 107 - dir pg\verify does not exist ok 108 - Alter engine "pg" ok 109 - dir pg exists ok 110 - dir pg\deploy exists ok 111 - dir pg\revert exists ok 112 - dir pg\verify exists ok 113 - The pg top_dir should have been set ok 114 - Should again get error for missing engine ok 115 - Missing engine error ident should still be "engine" ok 116 - Missing engine error message should include target property ok 117 - 'Engine with target property' isa 'App::Sqitch::Command::engine' ok 118 - Should get error for engine/target mismatch ok 119 - Target mismatch ident should be "engine" ok 120 - Target mismatch message should be correct ok 121 - No name arg to set_target() should yield usage ok 122 - No args should be passed to usage ok 123 - No target arg to set_target() should yield usage ok 124 - No args should be passed to usage ok 125 - Should get error for nonexistent engine ok 126 - Nonexistent engine error ident should be "engine" ok 127 - Nonexistent engine error message should be correct ok 128 - Set new target ok 129 - Engine "pg" should have new target ok 130 - Set new target ok 131 - Engine "pg" should have new DB target ok 132 - Should get an error for an unknown target ok 133 - Nonexistent target error ident should be "engine" ok 134 - Nonexistent target error message should be correct ok 135 - No name arg to set_registry() should yield usage ok 136 - No args should be passed to usage ok 137 - No registry arg to set_registry() should yield usage ok 138 - No args should be passed to usage ok 139 - Should get error for nonexistent engine ok 140 - Nonexistent engine error ident should be "engine" ok 141 - Nonexistent engine error message should be correct ok 142 - Set new $key ok 143 - Engine "pg" should have new registry ok 144 - No name arg to set_verify_dir() should yield usage ok 145 - No args should be passed to usage ok 146 - No verify_dir arg to set_verify_dir() should yield usage ok 147 - No args should be passed to usage ok 148 - Should get error for nonexistent engine ok 149 - Nonexistent engine error ident should be "engine" ok 150 - Nonexistent engine error message should be correct ok 151 - Set new $key ok 152 - Engine "pg" should have new verify_dir ok 153 - No name arg to set_client() should yield usage ok 154 - No args should be passed to usage ok 155 - No client arg to set_client() should yield usage ok 156 - No args should be passed to usage ok 157 - Should get error for nonexistent engine ok 158 - Nonexistent engine error ident should be "engine" ok 159 - Nonexistent engine error message should be correct ok 160 - Set new $key ok 161 - Engine "pg" should have new client ok 162 - No name arg to set_top_dir() should yield usage ok 163 - No args should be passed to usage ok 164 - No top_dir arg to set_top_dir() should yield usage ok 165 - No args should be passed to usage ok 166 - Should get error for nonexistent engine ok 167 - Nonexistent engine error ident should be "engine" ok 168 - Nonexistent engine error message should be correct ok 169 - Set new $key ok 170 - Engine "pg" should have new top_dir ok 171 - No name arg to set_deploy_dir() should yield usage ok 172 - No args should be passed to usage ok 173 - No deploy_dir arg to set_deploy_dir() should yield usage ok 174 - No args should be passed to usage ok 175 - Should get error for nonexistent engine ok 176 - Nonexistent engine error ident should be "engine" ok 177 - Nonexistent engine error message should be correct ok 178 - Set new $key ok 179 - Engine "pg" should have new deploy_dir ok 180 - No name arg to set_revert_dir() should yield usage ok 181 - No args should be passed to usage ok 182 - No revert_dir arg to set_revert_dir() should yield usage ok 183 - No args should be passed to usage ok 184 - Should get error for nonexistent engine ok 185 - Nonexistent engine error ident should be "engine" ok 186 - Nonexistent engine error message should be correct ok 187 - Set new $key ok 188 - Engine "pg" should have new revert_dir ok 189 - No name arg to set_plan_file() should yield usage ok 190 - No args should be passed to usage ok 191 - No plan_file arg to set_plan_file() should yield usage ok 192 - No args should be passed to usage ok 193 - Should get error for nonexistent engine ok 194 - Nonexistent engine error ident should be "engine" ok 195 - Nonexistent engine error message should be correct ok 196 - Set new $key ok 197 - Engine "pg" should have new plan_file ok 198 - No name arg to set_target() should yield usage ok 199 - No args should be passed to usage ok 200 - No target arg to set_target() should yield usage ok 201 - No args should be passed to usage ok 202 - Should get error for nonexistent engine ok 203 - Nonexistent engine error ident should be "engine" ok 204 - Nonexistent engine error message should be correct ok 205 - Set new $key ok 206 - Engine "pg" should have new target ok 207 - No name arg to set_extension() should yield usage ok 208 - No args should be passed to usage ok 209 - No extension arg to set_extension() should yield usage ok 210 - No args should be passed to usage ok 211 - Should get error for nonexistent engine ok 212 - Nonexistent engine error ident should be "engine" ok 213 - Nonexistent engine error message should be correct ok 214 - Set new $key ok 215 - Engine "pg" should have new extension ok 216 - No name args to remove() should yield usage ok 217 - No args should be passed to usage ok 218 - Should get error for nonexistent engine ok 219 - Nonexistent engine error ident should be "engine" ok 220 - Nonexistent engine error message should be correct ok 221 - Remove ok 222 - Engine "mysql" should now be gone ok 223 - Run show() ok 224 - Show with no names should emit the list of engines ok 225 - Show sqlite ok 226 - The full "sqlite" engine should have been shown ok 227 - Set vertica client ok 228 - Show three engines ok 229 - All three engines should have been shown ok 230 - 'Simple engine' isa 'App::Sqitch::Command::engine' ok 231 - Execute undef ok 232 - list() should have been called ok 233 - Execute undef with args ok 234 - list() should have been passed args ok 235 - Execute list ok 236 - list() should have been called ok 237 - Execute list with args ok 238 - list() should have been passed args ok 239 - Execute add ok 240 - add() should have been called ok 241 - Execute add with args ok 242 - add() should have been passed args ok 243 - Execute set-target ok 244 - set_target() should have been called ok 245 - Execute set-target with args ok 246 - set_target() should have been passed args ok 247 - Execute set-registry ok 248 - set_registry() should have been called ok 249 - Execute set-registry with args ok 250 - set_registry() should have been passed args ok 251 - Execute set-client ok 252 - set_client() should have been called ok 253 - Execute set-client with args ok 254 - set_client() should have been passed args ok 255 - Execute remove ok 256 - remove() should have been called ok 257 - Execute remove with args ok 258 - remove() should have been passed args ok 259 - Execute rm ok 260 - remove() should have been called ok 261 - Execute rm with args ok 262 - remove() should have been passed args ok 263 - Execute rename ok 264 - rename() should have been called ok 265 - Execute rename with args ok 266 - rename() should have been passed args ok 267 - Execute show ok 268 - show() should have been called ok 269 - Execute show with args ok 270 - show() should have been passed args ok 271 - Should get an exception for a nonexistent action ok 272 - Nonexistent action message should be passed to usage ok 273 - Update the config ok 274 - The core.mysql config should still be present ok 275 - MySQL config should have been rewritten without deprecated keys ok 276 - Update the config again ok 277 - The core.mysql config should again remain ok 278 - MySQL config should have been rewritten with an integrated target ok 279 - Update the config again ok 280 - The core.mysql config should again remain ok 281 - MySQL config should have been rewritten with a default target ok 282 - 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.24-32\var\tmp\cpan_build\App-Sqitch-0.9994-T_U57t\blib\lib C:\cpanfly-5.24-32\var\tmp\cpan_build\App-Sqitch-0.9994-T_U57t\blib\arch inc C:\cpanfly-5.24-32\var\megalib C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/arch C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/lib C:/cpanfly-5.24-32/var/megalib C:/Perl-5.24-32/site/lib C:/Perl-5.24-32/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.24-32\var\tmp\cpan_build\App-Sqitch-0.9994-T_U57t\blib\lib C:\cpanfly-5.24-32\var\tmp\cpan_build\App-Sqitch-0.9994-T_U57t\blib\arch inc C:\cpanfly-5.24-32\var\megalib C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/arch C:\cpanfly-5.24-32\var\tmp\cpan_build\Win32-Locale-0.04-vbD0jm/blib/lib C:/cpanfly-5.24-32/var/megalib C:/Perl-5.24-32/site/lib C:/Perl-5.24-32/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..187 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 contain empty properties ok 7 - Should accept a URI in options ok 8 - Get full config ok 9 - 'uri propertiy' isa 'URI' ok 10 - Should have properties ok 11 - 'plan_file file attribute' isa 'Path::Class::File' ok 12 - 'top_dir directory attribute' isa 'Path::Class::Dir' ok 13 - 'reworked_dir directory attribute' isa 'Path::Class::Dir' ok 14 - 'deploy_dir directory attribute' isa 'Path::Class::Dir' ok 15 - 'reworked_deploy_dir directory attribute' isa 'Path::Class::Dir' ok 16 - 'revert_dir directory attribute' isa 'Path::Class::Dir' ok 17 - 'reworked_revert_dir directory attribute' isa 'Path::Class::Dir' ok 18 - 'verify_dir directory attribute' isa 'Path::Class::Dir' ok 19 - 'reworked_verify_dir directory attribute' isa 'Path::Class::Dir' ok 20 - Should fail on invalid directory name ok 21 - Invalid directory ident should be "init" ok 22 - The invalid directory messsage should be correct ok 23 - Should fail on invalid directory names ok 24 - Invalid directories ident should be "init" ok 25 - The invalid properties messsage should be correct ok 26 - 'default target' isa 'App::Sqitch::Target' ok 27 - App::Sqitch::Command::init->can('make_directories_for') ok 28 - dir init.mkdir does not exist ok 29 - dir init.mkdir\deploy does not exist ok 30 - dir init.mkdir\revert does not exist ok 31 - dir init.mkdir\verify does not exist ok 32 - dir init.mkdir\reworked\deploy does not exist ok 33 - dir init.mkdir\reworked\revert does not exist ok 34 - dir init.mkdir\reworked\verify does not exist ok 35 - Make the directories ok 36 - dir init.mkdir\deploy exists ok 37 - dir init.mkdir\revert exists ok 38 - dir init.mkdir\verify exists ok 39 - dir init.mkdir\reworked\deploy exists ok 40 - dir init.mkdir\reworked\revert exists ok 41 - dir init.mkdir\reworked\verify exists ok 42 - Each should have been sent to info ok 43 - Make the directories again ok 44 - Nothing should have been sent to info ok 45 - Make the directories once more ok 46 - revert dir exists again ok 47 - Should have noted creation of revert dir ok 48 - Should fail on permission issue ok 49 - Permission error should have ident "init" ok 50 - The permission error should be formatted properly ok 51 - App::Sqitch::Command::init->can('write_config') ok 52 - Another init object ok 53 - nonexistent.conf does not exist ok 54 - Write the config ok 55 - nonexistent.conf exists ok 56 - The configuration file should have no variables ok 57 - The creation should be sent to info ok 58 - All in core section should be commented-out ok 59 - Another init object ok 60 - Write the config ok 61 - nonexistent.conf exists ok 62 - The configuration should have been written with the one setting ok 63 - The creation should be sent to info ok 64 - Other settings should be commented-out ok 65 - Write the config again ok 66 - The configuration should be unchanged ok 67 - Nothing should have been sent to info ok 68 - Make an init object with user config ok 69 - nonexistent.conf does not exist ok 70 - Write the config with a user conf ok 71 - nonexistent.conf exists ok 72 - The configuration should just have core.top_dir ok 73 - The creation should be sent to info again ok 74 - Other settings should be commented-out ok 75 - Make an init object with system config ok 76 - Get target ok 77 - nonexistent.conf does not exist ok 78 - Write the config with a system conf ok 79 - nonexistent.conf exists ok 80 - The configuration should have local and system config ok 81 - The creation should be sent to info again ok 82 - Other settings should be commented-out ok 83 - Create new init with sqitch non-default attributes ok 84 - Write the config with core attrs ok 85 - The creation should be sent to info once more ok 86 - The configuration should have been written with core and engine values ok 87 - Create new init with sqitch with non-default engine attributes ok 88 - Write the config with engine attrs ok 89 - The creation should be sent to info yet again ok 90 - Config should have been written with sqlite and target values ok 91 - Create new init with sqitch with default engine attributes ok 92 - Write the config with engine attrs ok 93 - The creation should be sent to info again again ok 94 - The configuration should have been written with only the engine var ok 95 - Engine section should be present but commented-out ok 96 - Make an init with sqlite and user config ok 97 - nonexistent.conf does not exist ok 98 - Write the config with sqlite config ok 99 - The creation should be sent to info once more ok 100 - New config should have been written with sqlite values ok 101 - Configured client should be included in a comment ok 102 - Configured target should be included in a comment ok 103 - Configured registry should be included in a comment ok 104 - Create new init with sqitch with more non-default engine attributes ok 105 - Write the config with more engine attrs ok 106 - The creation should be sent to info one more time ok 107 - The configuration should have been written with client values ok 108 - registry should be included in a comment ok 109 - Create new init with sqitch with default engine attributes ok 110 - Write the config with engine attrs ok 111 - The creation should be sent to info again again again ok 112 - The configuration should have been written with only the engine var ok 113 - Engine section should be present but commented-out ok 114 - Make an init with pg and user config ok 115 - nonexistent.conf does not exist ok 116 - Write the config with pg config ok 117 - The pg config creation should be sent to info ok 118 - The configuration should have been written with pg options ok 119 - Configured registry should be in a comment ok 120 - Configured target should be in a comment ok 121 - App::Sqitch::Command::init->can('write_plan') ok 122 - Plan file should not yet exist ok 123 - Write the plan file ok 124 - The plan creation should be sent to info ok 125 - Plan file should now exist ok 126 - The contents should be correct ok 127 - Write the plan file again ok 128 - Plan file should still exist ok 129 - The contents should be identical ok 130 - Should get an error initialing a different project ok 131 - Initialization error ident should be "init" ok 132 - Initialzation error message should be correct ok 133 - Should get an error initialzing a non-plan file ok 134 - Non-plan file error ident should be "init" ok 135 - Non-plan file error message should be correct ok 136 - The file should not be overwritten ok 137 - Create new init with sqitch with project and URI ok 138 - Write the plan file again ok 139 - The plan creation should be sent to info againq ok 140 - Plan file should again exist ok 141 - The plan should include the project and uri pragmas ok 142 - App::Sqitch::Command::init->can('_validate_project') ok 143 - No project should yield usage ok 144 - No args should be passed to usage ok 145 - Should get error for invalid project name "^foo" ok 146 - Bad project "^foo" ident should be "init" ok 147 - Bad project "^foo" error message should be correct ok 148 - Should get error for invalid project name "foo^" ok 149 - Bad project "foo^" ident should be "init" ok 150 - Bad project "foo^" error message should be correct ok 151 - Should get error for invalid project name "foo^6" ok 152 - Bad project "foo^6" ident should be "init" ok 153 - Bad project "foo^6" error message should be correct ok 154 - Should get error for invalid project name "foo^666" ok 155 - Bad project "foo^666" ident should be "init" ok 156 - Bad project "foo^666" error message should be correct ok 157 - Should get error for invalid project name "%hi" ok 158 - Bad project "%hi" ident should be "init" ok 159 - Bad project "%hi" error message should be correct ok 160 - Should get error for invalid project name "hi!" ok 161 - Bad project "hi!" ident should be "init" ok 162 - Bad project "hi!" error message should be correct ok 163 - Should get error for invalid project name "foo@bar" ok 164 - Bad project "foo@bar" ident should be "init" ok 165 - Bad project "foo@bar" error message should be correct ok 166 - Should get error for invalid project name "foo:bar" ok 167 - Bad project "foo:bar" ident should be "init" ok 168 - Bad project "foo:bar" error message should be correct ok 169 - Should get error for invalid project name "+foo" ok 170 - Bad project "+foo" ident should be "init" ok 171 - Bad project "+foo" error message should be correct ok 172 - Should get error for invalid project name "-foo" ok 173 - Bad project "-foo" ident should be "init" ok 174 - Bad project "-foo" error message should be correct ok 175 - Should get error for invalid project name "@foo" ok 176 - Bad project "@foo" ident should be "init" ok 177 - Bad project "@foo" error message should be correct ok 178 - Execute! ok 179 - dir plan.dir exists ok 180 - dir plan.dir\deploy exists ok 181 - dir plan.dir\revert exists ok 182 - dir plan.dir\verify exists ok 183 - nonexistent.conf exists ok 184 - plan.dir\sqitch.plan exists ok 185 - Should have status messages ok 186 - The plan should have the --project name ok 187 - 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 "2016-06-15 15:07:41 -0700" ok 41 - Format "%{date:rfc}c" should output "Wed, 15 Jun 2016 15:07:41 -0700" ok 42 - Format "%{d:long}c" should output "June 15, 2016 at 3:07:41 PM PDT" ok 43 - Format "%{d:cldr:HH'h' mm'm'}c" should output "15h 07m" ok 44 - Format "%{d:strftime:%a at %H:%M:%S}c" should output "Wed at 15:07:41" 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 "2016-06-14 15:07:41 -0700" ok 51 - Format "%{date:rfc}p" should output "Tue, 14 Jun 2016 15:07:41 -0700" ok 52 - Format "%{d:long}p" should output "June 14, 2016 at 3:07:41 PM PDT" ok 53 - Format "%{d:cldr:HH'h' mm'm'}p" should output "15h 07m" ok 54 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Tue at 15:07:41" 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 2016-06-15T22:07:41Z[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 "2016-06-15 15:07:44 -0700" ok 99 - Format "%{date:rfc}c" should output "Wed, 15 Jun 2016 15:07:44 -0700" ok 100 - Format "%{d:long}c" should output "June 15, 2016 at 3:07:44 PM PDT" ok 101 - Format "%{d:cldr:HH'h' mm'm'}c" should output "15h 07m" ok 102 - Format "%{d:strftime:%a at %H:%M:%S}c" should output "Wed at 15:07:44" 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 "2016-06-14 15:07:44 -0700" ok 109 - Format "%{date:rfc}p" should output "Tue, 14 Jun 2016 15:07:44 -0700" ok 110 - Format "%{d:long}p" should output "June 14, 2016 at 3:07:44 PM PDT" ok 111 - Format "%{d:cldr:HH'h' mm'm'}p" should output "15h 07m" ok 112 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Tue at 15:07:44" 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 2016-06-15T22:07:44Z[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 - Create another mysql ok 13 - client should be as configured ok 14 - URI should be as configured ok 15 - target name should be the URI ok 16 - destination should be the URI ok 17 - registry should be as configured ok 18 - Sqitch DB URI should be the same as uri but with DB name "meta" ok 19 - registry_destination should be the sqitch DB URL ok 20 - mysql command should be configured ok 21 - Create a mysql with query params ok 22 - mysql command should be configured with query vals ok 23 - Create a mysql with disabled query params ok 24 - mysql command should not have disabled param options ok 25 - Create a mysql with sqitch with options ok 26 - client should be as optioned ok 27 - registry should be as configured ok 28 - Sqitch DB URI should be the same as uri but with DB name "meta" ok 29 - registry_destination should be the sqitch DB URL sans password ok 30 - registry should still be as configured ok 31 - mysql command should be as optioned ok 32 - App::Sqitch::Engine::mysql->can(...) ok 33 - Create a mysql with sqitch with options ok 34 - MYSQL_PWD should be "s3cr3t" ok 35 - Call _run ok 36 - Command should be passed to run() ok 37 - MYSQL_PWD should be "s3cr3t" ok 38 - Call _spool ok 39 - Command should be passed to spool() ok 40 - MYSQL_PWD should be "s3cr3t" ok 41 - Call _spool with variables ok 42 - Get variables file handle ok 43 - Command should be passed to spool() after variables handle ok 44 - Variables should have been escaped and set ok 45 - MYSQL_PWD should be "s3cr3t" ok 46 - Call _capture ok 47 - Command should be passed to capture() ok 48 - Create a mysql with sqitch with no pw ok 49 - MYSQL_PWD should not exist ok 50 - Call _run again ok 51 - Command should be passed to run() again ok 52 - MYSQL_PWD should not exist ok 53 - Call _spool again ok 54 - Command should be passed to spool() again ok 55 - MYSQL_PWD should not exist ok 56 - Call _capture again ok 57 - Command should be passed to capture() again ok 58 - MYSQL_PWD should not exist ok 59 - Run foo/bar.sql ok 60 - File should be passed to run() ok 61 - MYSQL_PWD should not exist ok 62 - Spool a "file handle" ok 63 - Handle should be passed to spool() ok 64 - MYSQL_PWD should not exist ok 65 - Verify foo/bar.sql ok 66 - Verify file should be passed to capture() ok 67 - MYSQL_PWD should not exist ok 68 - Verify foo/bar.sql again ok 69 - Verifile file should be passed to run() for high verbosity ok 70 - MYSQL_PWD should not exist ok 71 - Run foo/bar.sql with vars ok 72 - Variabls and file should be passed to run() ok 73 - MYSQL_PWD should not exist ok 74 - Spool a "file handle" ok 75 - Get variables file handle ok 76 - File handle should be passed to spool() after variables handle ok 77 - Variables should have been escaped and set ok 78 - MYSQL_PWD should not exist ok 79 - Verbosely verify foo/bar.sql with vars ok 80 - Variables and verify file should be passed to run() ok 81 - MYSQL_PWD should not exist ok 82 - Verify foo/bar.sql with vars ok 83 - Verify file should be passed to capture() ok 84 - App::Sqitch::Engine::mysql->can('_ts2char_format') ok 85 - _ts2char_format should work ok 86 - App::Sqitch::Engine::mysql->can('_dt') ok 87 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 88 - DateTime year should be set ok 89 - DateTime month should be set ok 90 - DateTime day should be set ok 91 - DateTime hour should be set ok 92 - DateTime minute should be set ok 93 - DateTime second should be set ok 94 - DateTime TZ should be set ok 95 - 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 370. # ok 96 # 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 370. # 1..96 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 - Database-only URI should produce proper DSN ok 22 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 23 - _script should assemble connection string with just dbname ok 24 - Database and double-slash URI should produce proper DSN ok 25 - An object of class 'App::Sqitch::Engine::oracle' isa 'App::Sqitch::Engine::oracle' ok 26 - _script should assemble connection string with double-slash and dbname ok 27 - Target name should not read $TWO_TASK ok 28 - Destination should read $TWO_TASK ok 29 - Registry destination should be the same as destination ok 30 - Target name should not read $ORACLE_SID ok 31 - Destination should read $ORACLE_SID ok 32 - Registry destination should be the same as destination ok 33 - Target name should not fall back on sysuser ok 34 - Destination should fall back on sysuser ok 35 - Registry destination should be the same as destination ok 36 - Target should be the default ok 37 - Destination should prefer $TWO_TASK to username ok 38 - Registry destination should be the same as destination ok 39 - Create another ora ok 40 - client should be as configured ok 41 - DB URI should be as configured ok 42 - Target name should be the passwordless URI stringified ok 43 - Destination should be the URI without the password ok 44 - registry_destination should replace be the same URI ok 45 - registry should be as configured ok 46 - sqlplus command should be configured ok 47 - Create yet another ora ok 48 - client should be as configured ok 49 - registry should be as configured ok 50 - sqlplus command should be configured ok 51 - Create a ora with sqitch with options ok 52 - client should be as optioned ok 53 - registry should still be as configured ok 54 - sqlplus command should be as optioned ok 55 - App::Sqitch::Engine::oracle->can(...) ok 56 - Call _run ok 57 - SQLPlus command should be passed to spool() ok 58 - The script should be spooled ok 59 - Call _capture ok 60 - Command and script should be passed to run3() ok 61 - _capture should actually capture ok 62 - _capture should die when sqlplus dies ok 63 - STDERR should be emitted by _capture ok 64 - App::Sqitch::Engine::oracle->can('_file_for_script') ok 65 - File without special characters should be used directly ok 66 - Double quotes should be SQL-escaped ok 67 - Get temp dir ok 68 - 'Temp dir' isa 'Path::Class::Dir' ok 69 - File with special char should be aliased ok 70 - File with special char and quotes should be aliased ok 71 - Run foo/bar.sql ok 72 - File should be passed to run() ok 73 - Run foo/"bar".sql ok 74 - Double quotes in file passed to run() should be escaped ok 75 - Spool a "file handle" ok 76 - sqlplus command should be passed to spool() ok 77 - 'Array ove handles should be passed to spool' isa 'ARRAY' ok 78 - First file handle should be script ok 79 - Second should be the passed handle ok 80 - Verify foo/bar.sql ok 81 - Verify file should be passed to capture() ok 82 - Verify foo/bar.sql again ok 83 - Verifile file should be passed to run() for high verbosity ok 84 - App::Sqitch::Engine::oracle->can('_ts2char') ok 85 - _ts2char should work ok 86 - App::Sqitch::Engine::oracle->can('_dt') ok 87 - 'Return value of _dt()' isa 'App::Sqitch::DateTime' ok 88 - DateTime year should be set ok 89 - DateTime month should be set ok 90 - DateTime day should be set ok 91 - DateTime hour should be set ok 92 - DateTime minute should be set ok 93 - DateTime second should be set ok 94 - DateTime TZ should be set ok 95 - App::Sqitch::Engine::oracle->can(...) # Subtest: live database 1..0 # SKIP Unable to live-test Oracle engine: DBD::Oracle 1.23 required to manage Oracle at t/oracle.t line 512. # ok 96 # skip Unable to live-test Oracle engine: DBD::Oracle 1.23 required to manage Oracle at t/oracle.t line 512. # 1..96 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 read plan with DOS line endings ok 20 - Should have sorted changes ok 21 - Should have captured the dos pragmas ok 22 - Should die on plan with bad change name ok 23 - Bad change name error ident should be "parse" ok 24 - And the bad change name error message should be correct ok 25 - Should not have sorted changes ok 26 - Should die on plan with bad name "+^foo" ok 27 - Exception ident should be "parse" ok 28 - And "+^foo" should trigger the appropriate message ok 29 - Should not have sorted changes ok 30 - Should die on plan with bad name "@^foo" ok 31 - Exception ident should be "parse" ok 32 - And "@^foo" should trigger the appropriate message ok 33 - Should not have sorted changes ok 34 - Should die on plan with bad name "+foo^" ok 35 - Exception ident should be "parse" ok 36 - And "+foo^" should trigger the appropriate message ok 37 - Should not have sorted changes ok 38 - Should die on plan with bad name "@foo^" ok 39 - Exception ident should be "parse" ok 40 - And "@foo^" should trigger the appropriate message ok 41 - Should not have sorted changes ok 42 - Should die on plan with bad name "+foo^6" ok 43 - Exception ident should be "parse" ok 44 - And "+foo^6" should trigger the appropriate message ok 45 - Should not have sorted changes ok 46 - Should die on plan with bad name "@foo^6" ok 47 - Exception ident should be "parse" ok 48 - And "@foo^6" should trigger the appropriate message ok 49 - Should not have sorted changes ok 50 - Should die on plan with bad name "+foo^666" ok 51 - Exception ident should be "parse" ok 52 - And "+foo^666" should trigger the appropriate message ok 53 - Should not have sorted changes ok 54 - Should die on plan with bad name "@foo^666" ok 55 - Exception ident should be "parse" ok 56 - And "@foo^666" should trigger the appropriate message ok 57 - Should not have sorted changes ok 58 - Should die on plan with bad name "+%hi" ok 59 - Exception ident should be "parse" ok 60 - And "+%hi" should trigger the appropriate message ok 61 - Should not have sorted changes ok 62 - Should die on plan with bad name "@%hi" ok 63 - Exception ident should be "parse" ok 64 - And "@%hi" should trigger the appropriate message ok 65 - Should not have sorted changes ok 66 - Should die on plan with bad name "+hi!" ok 67 - Exception ident should be "parse" ok 68 - And "+hi!" should trigger the appropriate message ok 69 - Should not have sorted changes ok 70 - Should die on plan with bad name "@hi!" ok 71 - Exception ident should be "parse" ok 72 - And "@hi!" should trigger the appropriate message ok 73 - Should not have sorted changes ok 74 - Should die on plan with bad name "+foo@bar" ok 75 - Exception ident should be "parse" ok 76 - And "+foo@bar" should trigger the appropriate message ok 77 - Should not have sorted changes ok 78 - Should die on plan with bad name "@foo@bar" ok 79 - Exception ident should be "parse" ok 80 - And "@foo@bar" should trigger the appropriate message ok 81 - Should not have sorted changes ok 82 - Should die on plan with bad name "+foo:bar" ok 83 - Exception ident should be "parse" ok 84 - And "+foo:bar" should trigger the appropriate message ok 85 - Should not have sorted changes ok 86 - Should die on plan with bad name "@foo:bar" ok 87 - Exception ident should be "parse" ok 88 - And "@foo:bar" should trigger the appropriate message ok 89 - Should not have sorted changes ok 90 - Should die on plan with bad name "++foo" ok 91 - Exception ident should be "parse" ok 92 - And "++foo" should trigger the appropriate message ok 93 - Should not have sorted changes ok 94 - Should die on plan with bad name "@+foo" ok 95 - Exception ident should be "parse" ok 96 - And "@+foo" should trigger the appropriate message ok 97 - Should not have sorted changes ok 98 - Should die on plan with bad name "+-foo" ok 99 - Exception ident should be "parse" ok 100 - And "+-foo" should trigger the appropriate message ok 101 - Should not have sorted changes ok 102 - Should die on plan with bad name "@-foo" ok 103 - Exception ident should be "parse" ok 104 - And "@-foo" should trigger the appropriate message ok 105 - Should not have sorted changes ok 106 - Should die on plan with bad name "+@foo" ok 107 - Exception ident should be "parse" ok 108 - And "+@foo" should trigger the appropriate message ok 109 - Should not have sorted changes ok 110 - Should die on plan with bad name "@@foo" ok 111 - Exception ident should be "parse" ok 112 - And "@@foo" should trigger the appropriate message ok 113 - Should not have sorted changes ok 114 - Should parse "foo" ok 115 - Should have captured the foo pragmas ok 116 - Should have pragmas in plan with change "foo" ok 117 - Should parse "@foo" ok 118 - Should have pragmas in plan with tag "foo" ok 119 - Should have line and change for "@foo" ok 120 - Should parse "12" ok 121 - Should have captured the 12 pragmas ok 122 - Should have pragmas in plan with change "12" ok 123 - Should parse "@12" ok 124 - Should have pragmas in plan with tag "12" ok 125 - Should have line and change for "@12" ok 126 - Should parse "t" ok 127 - Should have captured the t pragmas ok 128 - Should have pragmas in plan with change "t" ok 129 - Should parse "@t" ok 130 - Should have pragmas in plan with tag "t" ok 131 - Should have line and change for "@t" ok 132 - Should parse "6" ok 133 - Should have captured the 6 pragmas ok 134 - Should have pragmas in plan with change "6" ok 135 - Should parse "@6" ok 136 - Should have pragmas in plan with tag "6" ok 137 - Should have line and change for "@6" ok 138 - Should parse "阱阪阬" ok 139 - Should have captured the 阱阪阬 pragmas ok 140 - Should have pragmas in plan with change "阱阪阬" ok 141 - Should parse "@阱阪阬" ok 142 - Should have pragmas in plan with tag "阱阪阬" ok 143 - Should have line and change for "@阱阪阬" ok 144 - Should parse "foo/bar" ok 145 - Should have captured the foo/bar pragmas ok 146 - Should have pragmas in plan with change "foo/bar" ok 147 - Should parse "@foo/bar" ok 148 - Should have pragmas in plan with tag "foo/bar" ok 149 - Should have line and change for "@foo/bar" ok 150 - Should parse "beta1" ok 151 - Should have captured the beta1 pragmas ok 152 - Should have pragmas in plan with change "beta1" ok 153 - Should parse "@beta1" ok 154 - Should have pragmas in plan with tag "beta1" ok 155 - Should have line and change for "@beta1" ok 156 - Should parse "foo_" ok 157 - Should have captured the foo_ pragmas ok 158 - Should have pragmas in plan with change "foo_" ok 159 - Should parse "@foo_" ok 160 - Should have pragmas in plan with tag "foo_" ok 161 - Should have line and change for "@foo_" ok 162 - Should parse "_foo" ok 163 - Should have captured the _foo pragmas ok 164 - Should have pragmas in plan with change "_foo" ok 165 - Should parse "@_foo" ok 166 - Should have pragmas in plan with tag "_foo" ok 167 - Should have line and change for "@_foo" ok 168 - Should parse "v1.0-1b" ok 169 - Should have captured the v1.0-1b pragmas ok 170 - Should have pragmas in plan with change "v1.0-1b" ok 171 - Should parse "@v1.0-1b" ok 172 - Should have pragmas in plan with tag "v1.0-1b" ok 173 - Should have line and change for "@v1.0-1b" ok 174 - Should parse "v1.2-1" ok 175 - Should have captured the v1.2-1 pragmas ok 176 - Should have pragmas in plan with change "v1.2-1" ok 177 - Should parse "@v1.2-1" ok 178 - Should have pragmas in plan with tag "v1.2-1" ok 179 - Should have line and change for "@v1.2-1" ok 180 - Should parse "v1.2+1" ok 181 - Should have captured the v1.2+1 pragmas ok 182 - Should have pragmas in plan with change "v1.2+1" ok 183 - Should parse "@v1.2+1" ok 184 - Should have pragmas in plan with tag "v1.2+1" ok 185 - Should have line and change for "@v1.2+1" ok 186 - Should parse "v1.2_1" ok 187 - Should have captured the v1.2_1 pragmas ok 188 - Should have pragmas in plan with change "v1.2_1" ok 189 - Should parse "@v1.2_1" ok 190 - Should have pragmas in plan with tag "v1.2_1" ok 191 - Should have line and change for "@v1.2_1" ok 192 - Should have sorted changes 18 times ok 193 - Should die on plan with reserved tag "@HEAD" ok 194 - @HEAD exception should have ident "plan" ok 195 - And the @HEAD error message should be correct ok 196 - Should have sorted changes once ok 197 - Should die on plan with reserved tag "@ROOT" ok 198 - @ROOT exception should have ident "plan" ok 199 - And the @ROOT error message should be correct ok 200 - Should have sorted @ROOT changes nonce ok 201 - Should die on plan with reserved tag "@FIRST" ok 202 - @FIRST exception should have ident "plan" ok 203 - And the @FIRST error message should be correct ok 204 - Should have sorted @FIRST changes nonce ok 205 - Should die on plan with reserved tag "@LAST" ok 206 - @LAST exception should have ident "plan" ok 207 - And the @LAST error message should be correct ok 208 - Should have sorted @LAST changes nonce ok 209 - Should die on plan with SHA1 change name ok 210 - The SHA1 error ident should be "parse" ok 211 - And the SHA1 error message should be correct ok 212 - Should have sorted changes nonce ok 213 - Should die on plan with tag but no preceding change ok 214 - The missing change error ident should be "parse" ok 215 - And the missing change error message should be correct ok 216 - Should have sorted changes nonce ok 217 - Should die on plan with dupe tag ok 218 - The dupe tag error ident should be "parse" ok 219 - And the missing change error message should be correct ok 220 - Should have sorted changes twice ok 221 - Should die on plan with dupe change ok 222 - The dupe change error ident should be "parse" ok 223 - And the dupe change error message should be correct ok 224 - Should have sorted changes once ok 225 - Should die on invalid dependency ok 226 - The invalid dependency error ident should be "parse" ok 227 - And the invalid dependency error message should be correct ok 228 - Should have sorted changes nonce ok 229 - Should die on change with no timestamp ok 230 - The missing timestamp error ident should be "parse" ok 231 - And the missing timestamp error message should be correct ok 232 - Should have sorted changes nonce ok 233 - Should die on change with no planner ok 234 - The missing parsener error ident should be "parse" ok 235 - And the missing planner error message should be correct ok 236 - Should have sorted changes nonce ok 237 - Should die on change with no timestamp or planner ok 238 - The missing timestamp or parsener error ident should be "parse" ok 239 - And the missing timestamp or planner error message should be correct ok 240 - Should have sorted changes nonce ok 241 - Should parse plan with pragmas" ok 242 - Should have sorted changes once ok 243 - Should have captured all of the pragmas ok 244 - Should have "multi.plan" lines and changes ok 245 - Should parse plan with deploy and revert operators ok 246 - Should have sorted changes twice ok 247 - Should have captured the deploy-and-revert pragmas ok 248 - Should have "deploy-and-revert.plan" lines and changes ok 249 - Should get exception for nonexistent plan file ok 250 - Nonexistent plan file ident should be "plan" ok 251 - Nonexistent plan file message should be correct ok 252 - 'Plan with sqitch with plan file with dependencies' isa 'App::Sqitch::Plan' ok 253 - File should be coopied from Sqitch ok 254 - Load plan with dependencies file ok 255 - The changes should include the dependencies ok 256 - Should have sorted changes twice ok 257 - 'Plan with sqitch with plan file with project deps' isa 'App::Sqitch::Plan' ok 258 - File should be coopied from Sqitch ok 259 - Load plan with project deps file ok 260 - The changes should include the cross-project deps ok 261 - Should have sorted changes twice ok 262 - 'Plan with sqitch with plan with tag dependencies' isa 'App::Sqitch::Plan' ok 263 - File should be coopied from Sqitch ok 264 - Should get an exception for tag with dependencies ok 265 - The tag dependencies error ident should be "plan" ok 266 - And the tag dependencies error message should be correct ok 267 - 'Plan with sqitch with plan file' isa 'App::Sqitch::Plan' ok 268 - File should be coopied from Sqitch ok 269 - Lines should be parsed from file ok 270 - Changes should be parsed from file ok 271 - Should get all tags from tags() ok 272 - Should have sorted changes twice ok 273 - Load should parse plan from file ok 274 - Should have captured the multi pragmas ok 275 - And the parsed file should have lines and changes ok 276 - Should have sorted changes twice ok 277 - App::Sqitch::Plan->can(...) ok 278 - Position should start at -1 ok 279 - Current should be undef ok 280 - Get next change ok 281 - 'First change' isa 'App::Sqitch::Plan::Change' ok 282 - It should be the first change ok 283 - Position should be at 0 ok 284 - Count should be 4 ok 285 - Current should be current ok 286 - Should get first change from change_at(0) ok 287 - Peek to next change ok 288 - 'Peeked change' isa 'App::Sqitch::Plan::Change' ok 289 - Peeked change should be second change ok 290 - last() should return last change ok 291 - Current should still be current ok 292 - Peek should still be next ok 293 - Next should be the second change ok 294 - Position should be at 1 ok 295 - Should get second change from change_at(1) ok 296 - Peek should return an object ok 297 - 'Third change' isa 'App::Sqitch::Plan::Change' ok 298 - It should be the foo tag ok 299 - Current should be the second change ok 300 - Should get third change next ok 301 - Position should be at 2 ok 302 - Current should be third change ok 303 - Should get third change from change_at(1) ok 304 - Get fourth change ok 305 - 'Fourth change' isa 'App::Sqitch::Plan::Change' ok 306 - Fourth change should be "hey-there" ok 307 - Position should be at 3 ok 308 - Peek should return undef ok 309 - Next should return undef ok 310 - Position should be at 7 ok 311 - Next should still return undef ok 312 - Position should still be at 7 ok 313 - Reset the plan ok 314 - Position should be back at -1 ok 315 - Current should still be undef ok 316 - Next should return the first change again ok 317 - Position should be at 0 again ok 318 - Current should be first change ok 319 - Index of change should be 0 ok 320 - Plan should contain change ok 321 - Should be able to get change 0 by name ok 322 - Should be able to find change 0 by name ok 323 - Should be able to get change 0 by ID ok 324 - Should be able to find change 0 by ID ok 325 - Index of @bar should be 3 ok 326 - Plan should contain @bar ok 327 - Should be able to get hey-there via @bar ok 328 - Should be able to get hey-there via @bar ID ok 329 - Should be able to find hey-there via @bar ok 330 - Should be able to find hey-there via @bar ID ok 331 - Seek to the "@bar" change ok 332 - Position should be at 3 again ok 333 - Current should be fourth again ok 334 - Index of you should be 1 ok 335 - Plan should contain "you" ok 336 - Should be able to get change 1 by name ok 337 - Should be able to find change 1 by name ok 338 - Seek to the "you" change ok 339 - Position should be at 1 again ok 340 - Current should be second again ok 341 - Index of baz should be undef ok 342 - Plan should not contain "baz" ok 343 - Index of @baz should be 3 ok 344 - Plan should contain @baz ok 345 - Seek to the "baz" change ok 346 - Position should be at 3 again ok 347 - Current should be fourth again ok 348 - Should still get first change from change_at(0) ok 349 - Should still get second change from change_at(1) ok 350 - Should still get third change from change_at(1) ok 351 - Should die seeking invalid change ok 352 - Invalid seek change error ident should be "plan" ok 353 - And the failure message should be correct ok 354 - All should return all changes ok 355 - Reset the plan again ok 356 - Change hey should be passed to do sub ok 357 - Change hey should be the topic in do sub ok 358 - Change you should be passed to do sub ok 359 - Change you should be the topic in do sub ok 360 - Change this/rocks should be passed to do sub ok 361 - Change this/rocks should be the topic in do sub ok 362 - Change hey-there should be passed to do sub ok 363 - Change hey-there should be the topic in do sub ok 364 - 'search_changes() should return a code ref' isa 'CODE' ok 365 - All the changes should be returned in the proper order ok 366 - Direction "DESC" should work ok 367 - Should get error for invalid direction ok 368 - Invalid direction error ident should be "DEV" ok 369 - Invalid direction error message should be correct ok 370 - Direction "asc" should work ok 371 - Search by change name should work ok 372 - Search by change name should work as a regex ok 373 - Search by change name should with a character class ok 374 - Search by planner should work ok 375 - Search by planner should work as a regex ok 376 - Search by operation "deploy" should work ok 377 - Search by operation "rever" should return nothing ok 378 - Search by operation "DEPLOY" should now return two changes ok 379 - Search by operation "REVERT" should return the other two ok 380 - Should get an error for unknown operation ok 381 - Unknown operation error ident should be "DEV" ok 382 - Unknown operation error message should be correct ok 383 - Search with offset 2 should work ok 384 - Search with offset 2, limit 1 should work ok 385 - Search with offset 3 and dierction "desc" should work ok 386 - Search with offset 2, limit 1, dierction "desc" should work ok 387 - App::Sqitch::Plan->can('write_to') ok 388 - plan.out does not exist ok 389 - Write out the file ok 390 - plan.out exists ok 391 - The contents should look right ok 392 - Write out the file from "this/rocks" ok 393 - Plan should have been written from "this/rocks" through tags at end ok 394 - Write the file up to "you" ok 395 - Plan should have been written through "you" and its tags ok 396 - Write from "@foo" to "this/rocks" ok 397 - Plan should have been written from "@foo" to "this/rocks" ok 398 - Write from "hey" to "@foo" ok 399 - Plan should have been written from "hey" through "@foo" ok 400 - App::Sqitch::Plan->can('_is_valid') 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^" invalid ok 405 - Invalid name "foo^" error ident should be "plan" ok 406 - And the "foo^" error message should be correct ok 407 - Should find "foo^6" invalid ok 408 - Invalid name "foo^6" error ident should be "plan" ok 409 - And the "foo^6" error message should be correct ok 410 - Should find "foo^666" invalid ok 411 - Invalid name "foo^666" error ident should be "plan" ok 412 - And the "foo^666" 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 "hi!" invalid ok 417 - Invalid name "hi!" error ident should be "plan" ok 418 - And the "hi!" 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:bar" invalid ok 423 - Invalid name "foo:bar" error ident should be "plan" ok 424 - And the "foo:bar" 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 - Should find "@foo" invalid ok 432 - Invalid name "@foo" error ident should be "plan" ok 433 - And the "@foo" error message should be correct ok 434 - Name "foo" should be valid ok 435 - Name "12" should be valid ok 436 - Name "t" should be valid ok 437 - Name "6" should be valid ok 438 - Name "阱阪阬" should be valid ok 439 - Name "foo/bar" should be valid ok 440 - Name "beta1" should be valid ok 441 - Name "v1.2-1" should be valid ok 442 - Name "v1.2+1" should be valid ok 443 - Name "v1.2_1" should be valid ok 444 - Add tag "w00t" ok 445 - Should have 4 changes ok 446 - Should find "@w00t" in plan ok 447 - Should find "@w00t" at index 3 ok 448 - Last change should be "hey-there" ok 449 - The w00t tag should be on the last change ok 450 - An object of class 'App::Sqitch::Plan::Tag' isa 'App::Sqitch::Plan::Tag' ok 451 - The returned tag should be @w00t ok 452 - The @w00t change should be the last change ok 453 - Write out the file again ok 454 - The contents should include the "w00t" tag ok 455 - Add tag "@alpha" ok 456 - Should find "@alpha" in plan ok 457 - Should find "@alpha" at index 3 ok 458 - The returned tag should be @alpha ok 459 - The @alpha change should be the last change ok 460 - Tag change "you" ok 461 - Should still have 4 changes ok 462 - Should find "@blarney" in plan ok 463 - Should find "@blarney" at index 1 ok 464 - The blarney tag should be on the second change ok 465 - An object of class 'App::Sqitch::Plan::Tag' isa 'App::Sqitch::Plan::Tag' ok 466 - The returned tag should be @blarney ok 467 - The @blarney change should be the second change ok 468 - Should get error trying to add duplicate tag ok 469 - Duplicate tag error ident should be "plan" ok 470 - And the error message should report it as a dupe 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^" ok 475 - Invalid name "foo^" error ident should be "plan" ok 476 - And the "foo^" error message should be correct ok 477 - Should get error for invalid tag "foo^6" ok 478 - Invalid name "foo^6" error ident should be "plan" ok 479 - And the "foo^6" error message should be correct ok 480 - Should get error for invalid tag "foo^666" ok 481 - Invalid name "foo^666" error ident should be "plan" ok 482 - And the "foo^666" 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 "hi!" ok 487 - Invalid name "hi!" error ident should be "plan" ok 488 - And the "hi!" 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:bar" ok 493 - Invalid name "foo:bar" error ident should be "plan" ok 494 - And the "foo:bar" 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" ok 499 - Invalid name "-foo" error ident should be "plan" ok 500 - And the "-foo" error message should be correct ok 501 - Should get error for invalid tag "foo\#bar" ok 502 - Invalid name "foo\#bar" error ident should be "plan" ok 503 - And the "foo\#bar" error message should be correct ok 504 - Should get error for reserved tag "HEAD" ok 505 - Reserved tag "HEAD" error ident should be "plan" ok 506 - And the reserved tag "HEAD" message should be correct ok 507 - Should get error for reserved tag "ROOT" ok 508 - Reserved tag "ROOT" error ident should be "plan" ok 509 - And the reserved tag "ROOT" message should be correct ok 510 - Should get error for reserved tag "FIRST" ok 511 - Reserved tag "FIRST" error ident should be "plan" ok 512 - And the reserved tag "FIRST" message should be correct ok 513 - Should get error for reserved tag "LAST" ok 514 - Reserved tag "LAST" error ident should be "plan" ok 515 - And the reserved tag "LAST" message should be correct ok 516 - Should get error for a SHA1 tag ok 517 - SHA1 tag error ident should be "plan" ok 518 - And the reserved name error should be output ok 519 - Add change "booyah" ok 520 - Should have 5 changes ok 521 - Should find "booyah" in plan ok 522 - Should find "booyah" at index 4 ok 523 - Last change should be "booyah" ok 524 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 525 - Should have plain stringification of "booya" ok 526 - Write out the file again ok 527 - The contents should include the "booyah" change ok 528 - Add change "blow" ok 529 - Should have 6 changes ok 530 - Should find "blow" in plan ok 531 - Should find "blow" at index 5 ok 532 - Last change should be "blow" ok 533 - Should have nice stringification of "blow [booyah]" ok 534 - The new change should have been appended to the lines, too ok 535 - Add change "jive" with dupe dependency ok 536 - Should have 7 changes ok 537 - Should find "jive" in plan ok 538 - Should find "jive" at index 6 ok 539 - jive change should be "jive" ok 540 - Should have dependency "blow" ok 541 - Should have nice stringification of "jive [blow]" ok 542 - The new change should have been appended to the lines, too ok 543 - Add change "moo" with dupe dependencies ok 544 - Should have 8 changes ok 545 - Should find "moo" in plan ok 546 - Should find "moo" at index 7 ok 547 - moo change should be "moo" ok 548 - Should require "ext:whu" ok 549 - Should conflict with "blow" and "ext:whu" ok 550 - Should have nice stringification of "moo [ext:foo !blow !ext:whu]" ok 551 - The new change should have been appended to the lines, too ok 552 - Should get error trying to add duplicate change ok 553 - Duplicate change error ident should be "plan" ok 554 - And the error message should suggest "rework" 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^" ok 559 - Invalid name "foo^" error ident should be "plan" ok 560 - And the "foo^" error message should be correct ok 561 - Should get error for invalid change "foo^6" ok 562 - Invalid name "foo^6" error ident should be "plan" ok 563 - And the "foo^6" error message should be correct ok 564 - Should get error for invalid change "foo^666" ok 565 - Invalid name "foo^666" error ident should be "plan" ok 566 - And the "foo^666" 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 "hi!" ok 571 - Invalid name "hi!" error ident should be "plan" ok 572 - And the "hi!" 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:bar" ok 577 - Invalid name "foo:bar" error ident should be "plan" ok 578 - And the "foo:bar" 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 invalid change "@foo" ok 586 - Invalid name "@foo" error ident should be "plan" ok 587 - And the "@foo" error message should be correct ok 588 - Should get error for reserved name "HEAD" ok 589 - Reserved name "HEAD" error ident should be "plan" ok 590 - And the reserved name "HEAD" message should be correct ok 591 - Should get error for reserved name "ROOT" ok 592 - Reserved name "ROOT" error ident should be "plan" ok 593 - And the reserved name "ROOT" message should be correct ok 594 - Should get error for reserved name "FIRST" ok 595 - Reserved name "FIRST" error ident should be "plan" ok 596 - And the reserved name "FIRST" message should be correct ok 597 - Should get error for reserved name "LAST" ok 598 - Reserved name "LAST" error ident should be "plan" ok 599 - And the reserved name "LAST" message should be correct ok 600 - Should get failure for failed dependency ok 601 - Dependency error ident should be "plan" ok 602 - The dependency error should be correct ok 603 - Should get failure for invalid dependency ok 604 - Invalid dependency error ident should be "plan" ok 605 - The invalid dependency error should be correct ok 606 - Should get failure for invalid conflict ok 607 - Invalid conflict error ident should be "plan" ok 608 - The invalid conflict error should be correct ok 609 - Should get failure for failed tag dependency ok 610 - Tag dependency error ident should be "plan" ok 611 - The tag dependency error should be correct ok 612 - Should get error for a SHA1 change ok 613 - SHA1 tag error ident should be "plan" ok 614 - And the reserved name error should be output ok 615 - App::Sqitch::Plan->can('rework') ok 616 - Rework change "you" ok 617 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 618 - Reworked change should be "you" ok 619 - Get original "you" change ok 620 - It should also be named "you" ok 621 - And it should have the one rework tag ok 622 - The original file should now be named you@bar.sql ok 623 - It should require the previous "you" change ok 624 - The new "you" should have been appended to the lines, too ok 625 - Should find "you@HEAD" in plan ok 626 - It should be at position 8 ok 627 - The plan count should be 9 ok 628 - Tag @beta1 ok 629 - Rework change "you" again ok 630 - An object of class 'App::Sqitch::Plan::Change' isa 'App::Sqitch::Plan::Change' ok 631 - New reworked change should be "you" ok 632 - Get original "you" change again ok 633 - It should still be named "you" ok 634 - And it should have the one rework tag ok 635 - Get you@beta1 ok 636 - The second "you" should be named that ok 637 - And the second change should have the rework_tag "@beta1" ok 638 - But the new reworked change should have no rework tags ok 639 - It should require the previous "you" change ok 640 - The new reworking should have been appended to the lines ok 641 - Should find "you@HEAD" in plan ok 642 - It should be at position 9 ok 643 - The plan count should be 10 ok 644 - rework should die on nonexistent change ok 645 - Nonexistent change error ident should be "plan" ok 646 - And the error should suggest "sqitch add" ok 647 - rework_stpe should die on lack of intervening tag ok 648 - Missing tag error ident should be "plan" ok 649 - And the error should suggest "sqitch tag" ok 650 - rework should die on failed dependency ok 651 - Rework dependency error ident should be "plan" ok 652 - The rework dependency error should be correct ok 653 - Should get failure for invalid dependency ok 654 - Invalid dependency error ident should be "plan" ok 655 - The invalid dependency error should be correct ok 656 - Should get failure for invalid conflict ok 657 - Invalid conflict error ident should be "plan" ok 658 - The invalid conflict error should be correct ok 659 - 'Plan shoud work plan with dupe change across tags' isa 'App::Sqitch::Plan' ok 660 - File should be coopied from Sqitch ok 661 - Project name should be set ok 662 - Lines with dupe change should be read from file ok 663 - Noes with dupe change should be read from file ok 664 - Should have sorted changes three times ok 665 - Should find "whatever" in plan ok 666 - Should get an error trying to find dupe key. ok 667 - Dupe key error ident should be "plan" ok 668 - Dupe key error message should be correct ok 669 - Should get 3 for whatever@HEAD ok 670 - Should get 0 for whatever@bar ok 671 - Should get an error seeking dupe key. ok 672 - Dupe key error ident should be "plan" ok 673 - Dupe key error message should be correct ok 674 - Should find whatever@HEAD at index 3 ok 675 - Should find whatever@HEAD at index 0 ok 676 - Should find first instance of whatever at index 0 ok 677 - Should find first instance of whatever after @bar at index 5 ok 678 - Seek whatever@HEAD ok 679 - Position should be 3 ok 680 - Seek whatever@bar ok 681 - Position should be 0 ok 682 - Last tagged change should be "hi" ok 683 - App::Sqitch::Plan->can('open_script') ok 684 - Open bar.sql ok 685 - It should be the right file ok 686 - Open baz.sql ok 687 - It should be empty ok 688 - open_script() should die on nonexistent file ok 689 - Nonexistent file error ident should be "io" ok 690 - Nonexistent file error message should be correct ok 691 - App::Sqitch::Plan->can('check_changes') ok 692 - Should get original order when no dependencies ok 693 - Should get original order when no prepreqs ok 694 - Should get original order when that requires this ok 695 - Should get original order when other requires that ok 696 - Should get error for out-of-order dependency ok 697 - Unordered dependency error ident should be "parse" ok 698 - And the unordered dependency error message should be correct ok 699 - Should get error for multiple dependency errors ok 700 - Multiple dependency error ident should be "parse" ok 701 - And the multiple dependency error message should be correct ok 702 - Should get original order when requiring a tag ok 703 - Should get original order when requiring a step as-of a tag ok 704 - Should get failure for a step after a tag ok 705 - Step after tag error ident should be "parse" ok 706 - And we the unknown change as-of a tag message should be correct ok 707 - Should get failure for a cycle ok 708 - Cycle error ident should be "parse" ok 709 - The cycle error message should be correct ok 710 - Should get failure for a two-hop cycle ok 711 - Two-hope cycle error ident should be "parse" ok 712 - The two-hop cycle error message should be correct ok 713 - Should get original order with earlier dependency ok 714 - Should get error with misordered and seen dependencies ok 715 - Misorderd and seen error ident should be "parse" ok 716 - And the misordered and seen error message should be correct ok 717 - Should die on unknown dependency ok 718 - Unknown dependency error ident should be "parse" ok 719 - And the error should point to the offending change ok 720 - Should die on unknown tag dependency ok 721 - Unknown tag dependency error ident should be "parse" ok 722 - And the error should point to the offending change ok 723 - Should get original order with external dependency ok 724 - Should die on self dependency ok 725 - Self dependency error ident should be "parse" ok 726 - And the self dependency error should be correct ok 727 - Should get original order with cascading dependencies ok 728 - Should get original order with multiple cascading dependencies ok 729 - App::Sqitch::Plan->can('_check_dependencies') ok 730 - Depend "hi" should be in project "dupe_change_diff_tag" ok 731 - Dependency on "hi" should succeed ok 732 - Depend "greets" should be in project "dupe_change_diff_tag" ok 733 - Dependency on "greets" should succeed ok 734 - Depend "whatever" should be in project "dupe_change_diff_tag" ok 735 - Dependency on "whatever" should succeed ok 736 - Depend "@foo" should be in project "dupe_change_diff_tag" ok 737 - Dependency on "@foo" should succeed ok 738 - Depend "whatever@foo" should be in project "dupe_change_diff_tag" ok 739 - Dependency on "whatever@foo" should succeed ok 740 - Depend "ext:larry" should be in project "ext" ok 741 - Dependency on "ext:larry" should succeed ok 742 - Depend "ext:greets" should be in project "ext" ok 743 - Dependency on "ext:greets" should succeed ok 744 - Should get error trying to depend on "wanker" ok 745 - Dependency "req" error ident should be "plan" ok 746 - And should get unknown dependency message for "wanker" ok 747 - Should get error trying to depend on "@blah" ok 748 - Dependency "req" error ident should be "plan" ok 749 - And should get unknown dependency message for "@blah" ok 750 - Should get error trying to depend on "greets@foo" ok 751 - Dependency "req" error ident should be "plan" ok 752 - And should get unknown dependency message for "greets@foo" ok 753 - Should have undef URI when no pragma ok 754 - 'Plan with sqitch with plan file with dependencies' isa 'App::Sqitch::Plan' ok 755 - File should be coopied from Sqitch ok 756 - syntax_version should be set ok 757 - Project should be set ok 758 - Should have URI from pragma ok 759 - 'It' isa 'URI' ok 760 - Should die on plan with no project pragma ok 761 - Missing prorject error ident should be "parse" ok 762 - The missing project error message 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^" ok 767 - Ident for bad proj "foo^" should be "parse" ok 768 - Error message for bad project "foo^" should be correct ok 769 - Should die on invalid project name "foo^6" ok 770 - Ident for bad proj "foo^6" should be "parse" ok 771 - Error message for bad project "foo^6" should be correct ok 772 - Should die on invalid project name "foo^666" ok 773 - Ident for bad proj "foo^666" should be "parse" ok 774 - Error message for bad project "foo^666" 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 "hi!" ok 779 - Ident for bad proj "hi!" should be "parse" ok 780 - Error message for bad project "hi!" 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:bar" ok 785 - Ident for bad proj "foo:bar" should be "parse" ok 786 - Error message for bad project "foo:bar" 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 ok 793 - Should die on invalid project name "@foo" ok 794 - Ident for bad proj "@foo" should be "parse" ok 795 - Error message for bad project "@foo" should be correct 1..795 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 "2016-06-14 15:07:54 -0700" ok 95 - Format "%{date:rfc}p" should output "Tue, 14 Jun 2016 15:07:54 -0700" ok 96 - Format "%{d:long}p" should output "June 14, 2016 at 3:07:54 PM PDT" ok 97 - Format "%{d:cldr:HH'h' mm'm'}p" should output "15h 07m" ok 98 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Tue at 15:07:54" 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..231 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 nothing from config ok 8 - Load default Sqitch project ok 9 - 'rework command' isa 'App::Sqitch::Command::rework' ok 10 - Coerces rework.open_editor from config string boolean ok 11 - Requires should be an arrayref ok 12 - Conflicts should be an arrayref ok 13 - Note should be an arrayref ok 14 - Should get an example for nonexistent change ok 15 - Nonexistent change error ident should be "plan" ok 16 - Fail message should say the step does not exist ok 17 - Create another add with template_directory ok 18 - test-rework\deploy\foo.sql does not exist ok 19 - test-rework\revert\foo.sql does not exist ok 20 - test-rework\verify\foo.sql does not exist ok 21 - Execute with the --change option ok 22 - test-rework\deploy\foo.sql exists ok 23 - test-rework\revert\foo.sql exists ok 24 - test-rework\verify\foo.sql exists ok 25 - Get the "foo" change ok 26 - Should get an example for duplicate change ok 27 - Duplicate change error ident should be "plan" ok 28 - Fail message should say a tag is needed ok 29 - Tag it ok 30 - test-rework\deploy\foo@alpha.sql does not exist ok 31 - test-rework\revert\foo@alpha.sql does not exist ok 32 - test-rework\verify\foo@alpha.sql does not exist ok 33 - Rework "foo" ok 34 - test-rework\deploy\foo.sql exists ok 35 - test-rework\revert\foo.sql exists ok 36 - test-rework\verify\foo.sql exists ok 37 - test-rework\deploy\foo@alpha.sql exists ok 38 - test-rework\revert\foo@alpha.sql exists ok 39 - test-rework\verify\foo@alpha.sql exists ok 40 - test-rework\deploy\foo@alpha.sql and test-rework\deploy\foo.sql contents are the same ok 41 - test-rework\verify\foo@alpha.sql and test-rework\verify\foo.sql contents are the same ok 42 - test-rework\revert\foo.sql and test-rework\deploy\foo.sql contents are the same ok 43 - New revert should revert ok 44 - It should have prompted for a note ok 45 - Reload the plan file ok 46 - Get the steps ok 47 - Should have two steps ok 48 - First step should be "foo" ok 49 - Second step should also be "foo" ok 50 - Reworked step should require the previous step ok 51 - And the info message should suggest editing the old files ok 52 - Debug should show file copying ok 53 - Create another add with template_directory ok 54 - test-rework\deploy\bar.sql does not exist ok 55 - test-rework\revert\bar.sql does not exist ok 56 - test-rework\verify\bar.sql does not exist ok 57 - test-rework\deploy\bar.sql exists ok 58 - test-rework\revert\bar.sql does not exist ok 59 - test-rework\verify\bar.sql does not exist ok 60 - Tag it with @beta ok 61 - 'rework command with requirements and conflicts' isa 'App::Sqitch::Command::rework' ok 62 - test-rework\deploy\bar@beta.sql does not exist ok 63 - test-rework\revert\bar@beta.sql does not exist ok 64 - test-rework\verify\bar@beta.sql does not exist ok 65 - Rework "bar" ok 66 - test-rework\deploy\bar.sql exists ok 67 - test-rework\revert\bar.sql does not exist ok 68 - test-rework\verify\bar.sql does not exist ok 69 - test-rework\deploy\bar@beta.sql exists ok 70 - test-rework\revert\bar@beta.sql does not exist ok 71 - test-rework\verify\bar@beta.sql does not exist ok 72 - It should have prompted for a note ok 73 - Reload the plan file again ok 74 - Get the steps ok 75 - Should have four steps ok 76 - First step should be "foo" ok 77 - Second step should also be "foo" ok 78 - First step should be "bar" ok 79 - Second step should also be "bar" ok 80 - Requires should have been passed to reworked change ok 81 - Conflicts should have been passed to reworked change ok 82 - Note should have been passed as comment ok 83 - And the info message should show only the one file to modify ok 84 - Should have debug oputput for missing files ok 85 - Create another add with open_editor ok 86 - Tag it ok 87 - test-rework\deploy\bar@gamma.sql does not exist ok 88 - test-rework\revert\bar@gamma.sql does not exist ok 89 - test-rework\verify\bar@gamma.sql does not exist ok 90 - Rework "bar" ok 91 - test-rework\deploy\bar.sql exists ok 92 - test-rework\deploy\bar@gamma.sql exists ok 93 - test-rework\revert\bar@gamma.sql does not exist ok 94 - test-rework\verify\bar@gamma.sql does not exist ok 95 - It should have prompted to edit sql files ok 96 - And the info message should suggest editing the old files ok 97 - Create another rework with custom multiplan config ok 98 - Should have three targets ok 99 - Rework change "widgets" in all plans ok 100 - Get widgets@HEAD from the pg plan ok 101 - Get widgets@foo from the pg plan ok 102 - The two pg widgets should be different changes ok 103 - Get widgets@HEAD from the sqlite plan ok 104 - Get widgets@foo from the sqlite plan ok 105 - The two sqlite widgets should be different changes ok 106 - Get widgets@HEAD from the mysql plan ok 107 - Get widgets@foo from the mysql plan ok 108 - The two mysql widgets should be different changes ok 109 - pg\deploy\widgets.sql exists ok 110 - pg\revert\widgets.sql exists ok 111 - pg\verify\widgets.sql exists ok 112 - pg\deploy\widgets@foo.sql exists ok 113 - pg\revert\widgets@foo.sql exists ok 114 - pg\verify\widgets@foo.sql exists ok 115 - pg\deploy\widgets.sql and pg\deploy\widgets@foo.sql contents are the same ok 116 - pg\verify\widgets.sql and pg\verify\widgets@foo.sql contents are the same ok 117 - pg\revert\widgets.sql and pg\deploy\widgets@foo.sql contents are the same ok 118 - sqlite\deploy\widgets.sql exists ok 119 - sqlite\revert\widgets.sql exists ok 120 - sqlite\verify\widgets.sql exists ok 121 - sqlite\deploy\widgets@foo.sql exists ok 122 - sqlite\revert\widgets@foo.sql exists ok 123 - sqlite\verify\widgets@foo.sql exists ok 124 - sqlite\deploy\widgets.sql and sqlite\deploy\widgets@foo.sql contents are the same ok 125 - sqlite\verify\widgets.sql and sqlite\verify\widgets@foo.sql contents are the same ok 126 - sqlite\revert\widgets.sql and sqlite\deploy\widgets@foo.sql contents are the same ok 127 - mysql\deploy\widgets.sql exists ok 128 - mysql\revert\widgets.sql exists ok 129 - mysql\verify\widgets.sql exists ok 130 - mysql\deploy\widgets@foo.sql exists ok 131 - mysql\revert\widgets@foo.sql exists ok 132 - mysql\verify\widgets@foo.sql exists ok 133 - mysql\deploy\widgets.sql and mysql\deploy\widgets@foo.sql contents are the same ok 134 - mysql\verify\widgets.sql and mysql\verify\widgets@foo.sql contents are the same ok 135 - mysql\revert\widgets.sql and mysql\deploy\widgets@foo.sql contents are the same ok 136 - Should have listed the files in the note prompt ok 137 - And the info message should show the two files to modify ok 138 - Should have debug oputput for all copied files ok 139 - Should get an error for --all and a target arg ok 140 - Mixed arguments error ident should be "rework" ok 141 - Mixed arguments error message should be correct ok 142 - Create yet another rework with custom multiplan config ok 143 - Rework change "gadgets" in the sqlite plan ok 144 - Should still have three targets ok 145 - Get gadgets@HEAD from the pg plan ok 146 - Get gadgets@foo from the pg plan ok 147 - The two pg gadgets should be the same change ok 148 - Get gadgets@HEAD from the mysql plan ok 149 - Get gadgets@foo from the mysql plan ok 150 - The two mysql gadgets should be the same change ok 151 - Get gadgets@HEAD from the sqlite plan ok 152 - Get gadgets@foo from the sqlite plan ok 153 - The two sqlite gadgets should be different changes ok 154 - pg\deploy\gadgets.sql exists ok 155 - pg\revert\gadgets.sql exists ok 156 - pg\verify\gadgets.sql exists ok 157 - sqlite\deploy\gadgets.sql exists ok 158 - sqlite\revert\gadgets.sql exists ok 159 - sqlite\verify\gadgets.sql exists ok 160 - sqlite\deploy\gadgets@foo.sql exists ok 161 - sqlite\revert\gadgets@foo.sql exists ok 162 - sqlite\verify\gadgets@foo.sql exists ok 163 - sqlite\deploy\gadgets.sql and sqlite\deploy\gadgets@foo.sql contents are the same ok 164 - sqlite\verify\gadgets.sql and sqlite\verify\gadgets@foo.sql contents are the same ok 165 - sqlite\revert\gadgets.sql and sqlite\deploy\gadgets@foo.sql contents are the same ok 166 - mysql\deploy\gadgets.sql exists ok 167 - mysql\revert\gadgets.sql exists ok 168 - mysql\verify\gadgets.sql exists ok 169 - Should have listed SQLite scripts in the note prompt ok 170 - Create another rework with custom multiplan config ok 171 - Should have two targets ok 172 - Targets should use the same plan file ok 173 - Rework change "widgets" in all plans ok 174 - Get widgets@HEAD from the plan ok 175 - Get widgets@foo from the plan ok 176 - The two widgets should be different changes ok 177 - pg\deploy\widgets.sql exists ok 178 - pg\revert\widgets.sql exists ok 179 - pg\verify\widgets.sql exists ok 180 - pg\deploy\widgets@foo.sql exists ok 181 - pg\revert\widgets@foo.sql exists ok 182 - pg\verify\widgets@foo.sql exists ok 183 - pg\deploy\widgets.sql and pg\deploy\widgets@foo.sql contents are the same ok 184 - pg\verify\widgets.sql and pg\verify\widgets@foo.sql contents are the same ok 185 - pg\revert\widgets.sql and pg\deploy\widgets@foo.sql contents are the same ok 186 - sqlite\deploy\widgets.sql exists ok 187 - sqlite\revert\widgets.sql exists ok 188 - sqlite\verify\widgets.sql exists ok 189 - sqlite\deploy\widgets@foo.sql exists ok 190 - sqlite\revert\widgets@foo.sql exists ok 191 - sqlite\verify\widgets@foo.sql exists ok 192 - sqlite\deploy\widgets.sql and sqlite\deploy\widgets@foo.sql contents are the same ok 193 - sqlite\verify\widgets.sql and sqlite\verify\widgets@foo.sql contents are the same ok 194 - sqlite\revert\widgets.sql and sqlite\deploy\widgets@foo.sql contents are the same ok 195 - Should have listed all the files to edit in the note prompt ok 196 - And the info message should show the two files to modify ok 197 - Should have debug oputput for all copied files ok 198 - Create another rework with custom multiplan config ok 199 - Should have two targets ok 200 - Rework change "widgets" in all plans ok 201 - Get widgets@HEAD from the pg plan ok 202 - Get widgets@foo from the pg plan ok 203 - The two pg widgets should be different changes ok 204 - Get widgets@HEAD from the sqlite plan ok 205 - Get widgets@bar from the sqlite plan ok 206 - The two sqlite widgets should be different changes ok 207 - Should have listed all the files to edit in the note prompt ok 208 - And the info message should show the two files to modify ok 209 - Should have debug oputput for all copied files ok 210 - Create another rework with custom multiplan config ok 211 - Should have two targets ok 212 - Rework change "widgets" in all plans ok 213 - Get widgets@HEAD from the pg plan ok 214 - Get widgets@foo from the pg plan ok 215 - The two pg widgets should be different changes ok 216 - Get widgets@HEAD from the sqlite plan ok 217 - Get widgets@foo from the sqlite plan ok 218 - The two sqlite widgets should be different changes ok 219 - deploy\widgets.sql exists ok 220 - revert\widgets.sql exists ok 221 - verify\widgets.sql exists ok 222 - deploy\widgets@foo.sql exists ok 223 - revert\widgets@foo.sql exists ok 224 - verify\widgets@foo.sql exists ok 225 - deploy\widgets.sql and deploy\widgets@foo.sql contents are the same ok 226 - verify\widgets.sql and verify\widgets@foo.sql contents are the same ok 227 - revert\widgets.sql and deploy\widgets@foo.sql contents are the same ok 228 - Should have listed the files to edit in the note prompt ok 229 - And the info message should show the two files to modify ok 230 - Should have debug oputput for all copied files ok 231 - 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..114 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 bool values set from config ok 34 - Should get error for invalid date format in optsions ok 35 - Invalid date format error ident should be "status" ok 36 - Invalid date format error message should be correct ok 37 - Emit the state ok 38 - The state should have been emitted ok 39 - Emit the state with a tag ok 40 - The state should have been emitted with a tag ok 41 - Emit the state with multiple tags ok 42 - The state should have been emitted with multiple tags ok 43 - Create status command with an engine ok 44 - Try to emit changes ok 45 - Should have emitted no changes ok 46 - Create change-showing status command ok 47 - Emit changes again ok 48 - Project "foo" should have been passed to current_changes ok 49 - Should have emitted one change ok 50 - Emit changes thrice ok 51 - Project "foo" again should have been passed to current_changes ok 52 - Should have emitted three changes ok 53 - Try to emit tags ok 54 - No tags should have been emitted ok 55 - Create tag-showing status command ok 56 - Try to emit tags again ok 57 - Project "bar" should be passed to current_tags() ok 58 - Should have emitted a header for no tags ok 59 - Emit tags ok 60 - Project "bar" should again be passed to current_tags() ok 61 - Should have emitted one tag ok 62 - Emit tags again ok 63 - Project "bar" should once more be passed to current_tags() ok 64 - Should have emitted all three tags ok 65 - Create status command with actual plan command ok 66 - Emit status ok 67 - Should have a blank comment line ok 68 - Should emit up-to-date output ok 69 - Emit status again ok 70 - Should have a blank comment line ok 71 - Should emit list of undeployed changes ok 72 - Emit status thrice ok 73 - Should have a blank comment line ok 74 - Should emit list of undeployed changes ok 75 - Die on invalid ID ok 76 - Invalid ID error ident should be "status" ok 77 - The invalid ID error message should be correct ok 78 - Should have a blank comment line ok 79 - Should have a message about inability to find the change ok 80 - Recreate status command ok 81 - Execute ok 82 - The state should have been emitted ok 83 - Should emit list of undeployed changes ok 84 - No target name should have been passed to Target ok 85 - Execute with target arg ok 86 - The state should have been emitted ok 87 - Should emit list of undeployed changes ok 88 - Name "db:sqlite:" should have been passed to Target ok 89 - Create status command with a target option ok 90 - Execute with target attribute ok 91 - The state should have been emitted ok 92 - Should emit list of undeployed changes ok 93 - Name "db:sqlite:" should have been passed to Target ok 94 - Execute with target attribute and arg ok 95 - The state should have been emitted ok 96 - Should emit list of undeployed changes ok 97 - Name "db:sqlite:" should have been passed to Target ok 98 - Should have got warning for two targets ok 99 - Create status command with specified project ok 100 - Execute for specified project ok 101 - The specified project state should have been emitted ok 102 - Should emit unknown status message for specified project ok 103 - Create status command with external project ok 104 - Execute for external project ok 105 - The external project state should have been emitted ok 106 - Should emit unknown status message for external project ok 107 - Die on no state ok 108 - No state error ident should be "status" ok 109 - No state error message should be correct ok 110 - The "On database" comment should have been emitted ok 111 - Should get an error for uninitialized db ok 112 - Uninitialized db error ident should be "status" ok 113 - Uninitialized db error message should be correct ok 114 - 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..78 ok 1 - Load a sqitch sqitch object ok 2 - 'tag command' isa 'App::Sqitch::Command::tag' ok 3 - The all attribute should be false by default ok 4 - App::Sqitch::Command::tag->can(...) ok 5 - Should have note option ok 6 - Should get empty hash for no config or options ok 7 - Should not have fetched boolean tag.all config ok 8 - Should get populated hash for no all options ok 9 - Should not have fetched boolean tag.all config ok 10 - Add change "foo" ok 11 - Tag @alpha ok 12 - Should have tagged "foo" ok 13 - Reload plan ok 14 - New tag should have been written ok 15 - New tag should have empty note ok 16 - Should have requested a note ok 17 - The info message should be correct ok 18 - Execute with no arg ok 19 - The one tag should have been listed ok 20 - Should have requested a note ok 21 - Add tag @beta ok 22 - Execute with no arg again ok 23 - Both tags should have been listed ok 24 - Should have requested a note ok 25 - 'tag command with note' isa 'App::Sqitch::Command::tag' ok 26 - Tag @gamma ok 27 - Gamma tag should be on change "foo" ok 28 - Gamma tag should have note ok 29 - Reload plan ok 30 - Gamma tag should have been written ok 31 - Written tag should have note ok 32 - Should have requested a note ok 33 - The gamma note should be correct ok 34 - 'tag command with note' isa 'App::Sqitch::Command::tag' ok 35 - Add change "bar" ok 36 - Add change "baz" ok 37 - Tag change "bar" with @delta ok 38 - Should have tagged "bar" ok 39 - Reload plan ok 40 - New tag should have been written ok 41 - New tag should have the proper note ok 42 - Should have requested a note ok 43 - The info message should be correct ok 44 - 'tag command with change name' isa 'App::Sqitch::Command::tag' ok 45 - Tag change "bar" with @zeta ok 46 - Should have tagged "bar" with @zeta ok 47 - Reload plan ok 48 - Tag @zeta should have been written ok 49 - Tag @zeta should have the proper note ok 50 - Should have requested a note ok 51 - The zeta info message should be correct ok 52 - Load another sqitch sqitch object ok 53 - 'another tag command' isa 'App::Sqitch::Command::tag' ok 54 - Tag with @whacko ok 55 - Should have tagged "baz" with @whacko ok 56 - The whacko info message should be correct ok 57 - Should get an error for --all and a target arg ok 58 - Mixed arguments error ident should be "tag" ok 59 - Mixed arguments error message should be correct ok 60 - Load another sqitch sqitch object ok 61 - 'yet another tag command' isa 'App::Sqitch::Command::tag' ok 62 - Tag with @dubdub ok 63 - Should have two targets ok 64 - Should have tagged pg plan change "pg_change" with @dubdub ok 65 - Should have tagged sqlite plan change "sqlite_change" with @dubdub ok 66 - The dubdub info message should show both plans tagged ok 67 - Tag sqlite plan with @shoot ok 68 - Should still have two targets ok 69 - Should not have tagged pg plan change "sqlite_change" with @shoot ok 70 - Should have tagged sqlite plan change "sqlite_change" with @shoot ok 71 - The shoot info message should the sqlite plan getting tagged ok 72 - 'yet another tag command' isa 'App::Sqitch::Command::tag' ok 73 - Tag with @huwah ok 74 - Should still have two targets ok 75 - Should have tagged pg plan change "pg_change" with @huwah ok 76 - Should not have tagged sqlite plan change "sqlite_change" with @huwah ok 77 - The huwah info message should the pg plan getting tagged ok 78 - 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 reworked_dir ok 18 - Should have default reworked_deploy_dir ok 19 - Should have default reworked_revert_dir ok 20 - Should have default reworked_verify_dir ok 21 - Should have default extension ok 22 - Should have default plan file ok 23 - 'Should get plan' isa 'App::Sqitch::Plan' ok 24 - Plan file should be copied from Target ok 25 - DSN should be from URI ok 26 - Username should be from URI ok 27 - Password should be from URI ok 28 - An object of class 'App::Sqitch::Target' isa 'App::Sqitch::Target' ok 29 - Password should be from environment variable ok 30 - Should get error for missing params ok 31 - 'Target with name and URI' isa 'App::Sqitch::Target' ok 32 - Name should be "foo" ok 33 - Target should be alias for name ok 34 - URI should be set as passed ok 35 - Sqitch should be as passed ok 36 - Engine key should be "pg" ok 37 - 'Engine' isa 'App::Sqitch::Engine::pg' ok 38 - DSN should be from URI ok 39 - Username should be from URI ok 40 - Password should be from environment ok 41 - 'Target with URI' isa 'App::Sqitch::Target' ok 42 - Name should be URI without password ok 43 - Target should be alias for name ok 44 - Engine key should be "pg" ok 45 - 'Engine' isa 'App::Sqitch::Engine::pg' ok 46 - DSN should be from URI ok 47 - Username should be from URI ok 48 - Password should be from URI ok 49 - 'Default target' isa 'App::Sqitch::Target' ok 50 - Name should be "db:sqlite:" ok 51 - URI should be "db:sqlite:" ok 52 - Should have tried to get engine target ok 53 - 'Default target' isa 'App::Sqitch::Target' ok 54 - Name should be "db:mysql:" ok 55 - URI should be "db:mysql" ok 56 - Should have tried to get core.target, core.engine and then the target ok 57 - 'Target with URI in name' isa 'App::Sqitch::Target' ok 58 - Name should be "db:pg:" ok 59 - URI should be "db:pg" ok 60 - Should have fetched no config ok 61 - Should have error for no engine in URI ok 62 - Should have target ident ok 63 - Should have message about no engine-less URI ok 64 - Should have error for no engine or target ok 65 - Should have target ident ok 66 - Should have message about no specified engine ok 67 - 'Engineless target' isa 'App::Sqitch::Target' ok 68 - Name should be "db:" ok 69 - URI should be "db:" ok 70 - Should not have tried to get engine target ok 71 - Sqitch should be as passed ok 72 - Engine key should be undef ok 73 - Should get exception for no engine ok 74 - Should have engine ident ok 75 - Should have message about no engine ok 76 - Should have default top_dir ok 77 - Should have default deploy_dir ok 78 - Should have default revert_dir ok 79 - Should have default verify_dir ok 80 - Should have default reworked_dir ok 81 - Should have default reworked_deploy_dir ok 82 - Should have default reworked_revert_dir ok 83 - Should have default reworked_verify_dir ok 84 - Should have default extension ok 85 - Should have default plan file ok 86 - 'Should get plan' isa 'App::Sqitch::Plan' ok 87 - Plan file should be copied from Target ok 88 - DSN should be empty ok 89 - Username should be undef ok 90 - Password should be undef ok 91 - 'Engine URI target' isa 'App::Sqitch::Target' ok 92 - Name should be "db:pg://a@foo/scat" ok 93 - URI should be "db:pg://a:b@foo/scat" ok 94 - Nothing should have been fetched from config ok 95 - 'Engine URI core.target' isa 'App::Sqitch::Target' ok 96 - Name should be "db:pg://s@ack/shi" ok 97 - URI should be "db:pg://s:b@ack/shi" ok 98 - Should have fetched core.target from config ok 99 - 'Engine name core.target' isa 'App::Sqitch::Target' ok 100 - Name should be "shout" ok 101 - URI should be "db:pg:w:e@we/bar" ok 102 - Should have fetched target.shout.uri from config ok 103 - Should have exception for unknown named target ok 104 - Unknown target error ident should be "target" ok 105 - Unknown target error message should be correct ok 106 - Should have requested target URI from config ok 107 - Should have requested target.foo section ok 108 - Should have exception for URL-less named target ok 109 - URL-less target error ident should be "target" ok 110 - URL-less target error message should be correct ok 111 - Should have requested target URI from config ok 112 - Should have requested target.foo section ok 113 - 'Named target' isa 'App::Sqitch::Target' ok 114 - Name should be "foo" ok 115 - URI should be "db:pg:foo" ok 116 - Should have requested target URI from config ok 117 - Should not have requested deprecated pg section ok 118 - 'Engine named target' isa 'App::Sqitch::Target' ok 119 - Name should be "foo" ok 120 - URI should be "db:sqlite:foo" ok 121 - Should have requested engine target and target URI from config ok 122 - Should not have requested pg section ok 123 - 'Pg target' isa 'App::Sqitch::Target' ok 124 - Should have requested core and engine pg sections ok 125 - Name should be passwordless stringified URI ok 126 - URI should be tweaked by config* options ok 127 - Should have warned on deprecated config options ok 128 - 'Postgres target' isa 'App::Sqitch::Target' ok 129 - Should have requested sqlite core and engine sections ok 130 - Name should be passwordless stringified URI ok 131 - URI should be tweaked by --db-* options ok 132 - Should have warned on deprecated config ok 133 - 'Foo target' isa 'App::Sqitch::Target' ok 134 - Should have requested target URI ok 135 - Should have fetched no section ok 136 - Name should be as passed ok 137 - URI should be tweaked by --db-* options ok 138 - Should have emitted no warnigns ok 139 - Registry should be "myreg" ok 140 - Client should be "pgsql" ok 141 - Plan file should be "my.plan" ok 142 - 'Plan file' isa 'Path::Class::File' ok 143 - 'Plan' isa 'App::Sqitch::Plan' ok 144 - Plan should use target plan file ok 145 - Top dir should be "top" ok 146 - 'Top dir' isa 'Path::Class::Dir' ok 147 - Deploy dir should be "dep" ok 148 - 'Deploy dir' isa 'Path::Class::Dir' ok 149 - Revert dir should be "rev" ok 150 - 'Revert dir' isa 'Path::Class::Dir' ok 151 - Verify dir should be "ver" ok 152 - 'Verify dir' isa 'Path::Class::Dir' ok 153 - Reworked dir should be "wrk" ok 154 - 'Reworked dir' isa 'Path::Class::Dir' ok 155 - Reworked deploy dir should be "rdep" ok 156 - 'Reworked deploy dir' isa 'Path::Class::Dir' ok 157 - Reworked revert dir should be "rrev" ok 158 - 'Reworked revert dir' isa 'Path::Class::Dir' ok 159 - Reworked verify dir should be "rver" ok 160 - 'Reworked verify dir' isa 'Path::Class::Dir' ok 161 - Extension should be "ddl" ok 162 - Registry should be "yoreg" ok 163 - Client should be "mycli" ok 164 - Plan file should be "pg.plan" ok 165 - 'Plan file' isa 'Path::Class::File' ok 166 - 'Plan' isa 'App::Sqitch::Plan' ok 167 - Plan should use target plan file ok 168 - Top dir should be "pg" ok 169 - 'Top dir' isa 'Path::Class::Dir' ok 170 - Deploy dir should be "pgdep" ok 171 - 'Deploy dir' isa 'Path::Class::Dir' ok 172 - Revert dir should be "pgrev" ok 173 - 'Revert dir' isa 'Path::Class::Dir' ok 174 - Verify dir should be "pgver" ok 175 - 'Verify dir' isa 'Path::Class::Dir' ok 176 - Reworked dir should be "pg/r" ok 177 - 'Reworked dir' isa 'Path::Class::Dir' ok 178 - Reworked deploy dir should be "pgrdep" ok 179 - 'Reworked deploy dir' isa 'Path::Class::Dir' ok 180 - Reworked revert dir should be "pgrrev" ok 181 - 'Reworked revert dir' isa 'Path::Class::Dir' ok 182 - Reworked verify dir should be "pgrver" ok 183 - 'Reworked verify dir' isa 'Path::Class::Dir' ok 184 - Extension should be "pgddl" ok 185 - Registry should be "fooreg" ok 186 - Client should be "foocli" ok 187 - Plan file should be "foo.plan" ok 188 - 'Plan file' isa 'Path::Class::File' ok 189 - 'Plan' isa 'App::Sqitch::Plan' ok 190 - Plan should use target plan file ok 191 - Top dir should be "foo" ok 192 - 'Top dir' isa 'Path::Class::Dir' ok 193 - Deploy dir should be "foodep" ok 194 - 'Deploy dir' isa 'Path::Class::Dir' ok 195 - Revert dir should be "foorev" ok 196 - 'Revert dir' isa 'Path::Class::Dir' ok 197 - Verify dir should be "foover" ok 198 - 'Verify dir' isa 'Path::Class::Dir' ok 199 - Reworked dir should be "foo/r" ok 200 - 'Reworked dir' isa 'Path::Class::Dir' ok 201 - Reworked deploy dir should be "foodepr" ok 202 - 'Reworked deploy dir' isa 'Path::Class::Dir' ok 203 - Reworked revert dir should be "foorevr" ok 204 - 'Reworked revert dir' isa 'Path::Class::Dir' ok 205 - Reworked verify dir should be "fooverr" ok 206 - 'Reworked verify dir' isa 'Path::Class::Dir' ok 207 - Extension should be "fooddl" ok 208 - Registry should be "optreg" ok 209 - Client should be "optcli" ok 210 - Plan file should be "opt.plan" ok 211 - 'Plan file' isa 'Path::Class::File' ok 212 - 'Plan' isa 'App::Sqitch::Plan' ok 213 - Plan should use target plan file ok 214 - Top dir should be "top.dir" ok 215 - 'Top dir' isa 'Path::Class::Dir' ok 216 - Deploy dir should be "dep.dir" ok 217 - 'Deploy dir' isa 'Path::Class::Dir' ok 218 - Revert dir should be "rev.dir" ok 219 - 'Revert dir' isa 'Path::Class::Dir' ok 220 - Verify dir should be "ver.dir" ok 221 - 'Verify dir' isa 'Path::Class::Dir' ok 222 - Reworked dir should be "wrk.dir" ok 223 - 'Reworked dir' isa 'Path::Class::Dir' ok 224 - Reworked deploy dir should be "rdep.dir" ok 225 - 'Reworked deploy dir' isa 'Path::Class::Dir' ok 226 - Reworked revert dir should be "rrev.dir" ok 227 - 'Reworked revert dir' isa 'Path::Class::Dir' ok 228 - Reworked verify dir should be "rver.dir" ok 229 - 'Reworked verify dir' isa 'Path::Class::Dir' ok 230 - Extension should be "opt" ok 231 - Load all targets ok 232 - Should have one target ok 233 - It should be the generic core enginetarget ok 234 - Load all targets with core target config ok 235 - Should again have one target ok 236 - It should be the named target ok 237 - Load all targets with core engine and target config ok 238 - Should still have one target ok 239 - It should again be the named target ok 240 - Load all user conf targets ok 241 - Should have four user targets ok 242 - Should have all the engine targets ok 243 - Load all target conf targets ok 244 - Should have three targets ok 245 - Core engine should be default target ok 246 - Should have the core target plus the named targets ok 247 - Load all local conf targets ok 248 - Should have two local targets ok 249 - Core engine should be lead to default target ok 250 - Should have the core target plus the named targets ok 251 - Load all engine conf targets ok 252 - Should have three engine conf targets ok 253 - Should have the engine and target targets 1..253 ok t/target_cmd.t ...... 1..330 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 - Get full config ok 9 - Should have properties ok 10 - 'plan_file file attribute' isa 'Path::Class::File' ok 11 - 'top_dir directory attribute' isa 'Path::Class::Dir' ok 12 - 'reworked_dir directory attribute' isa 'Path::Class::Dir' ok 13 - 'deploy_dir directory attribute' isa 'Path::Class::Dir' ok 14 - 'reworked_deploy_dir directory attribute' isa 'Path::Class::Dir' ok 15 - 'revert_dir directory attribute' isa 'Path::Class::Dir' ok 16 - 'reworked_revert_dir directory attribute' isa 'Path::Class::Dir' ok 17 - 'verify_dir directory attribute' isa 'Path::Class::Dir' ok 18 - 'reworked_verify_dir directory attribute' isa 'Path::Class::Dir' ok 19 - Should fail on invalid directory name ok 20 - Invalid directory ident should be "target" ok 21 - The invalid directory messsage should be correct ok 22 - Should fail on invalid directory names ok 23 - Invalid directories ident should be "target" ok 24 - The invalid properties messsage should be correct ok 25 - Run list() ok 26 - The list of targets should have been output ok 27 - 'Verbose target' isa 'App::Sqitch::Command::target' ok 28 - Run verbose list() ok 29 - The list of targets and their URIs should have been output ok 30 - No name arg to add() should yield usage ok 31 - No args should be passed to usage ok 32 - No URI arg to add() should yield usage ok 33 - No args should be passed to usage ok 34 - Should get error for existing target ok 35 - Existing target error ident should be "target" ok 36 - Existing target error message should be correct ok 37 - dir deploy does not exist ok 38 - dir revert does not exist ok 39 - dir verify does not exist ok 40 - Add target "test" ok 41 - dir deploy exists ok 42 - dir revert exists ok 43 - dir verify exists ok 44 - Target "test" URI should have been set ok 45 - Target "test" should have no client set ok 46 - Target "test" should have no registry set ok 47 - Target "test" should have no top_dir set ok 48 - Target "test" should have no plan_file set ok 49 - Target "test" should have no deploy_dir set ok 50 - Target "test" should have no revert_dir set ok 51 - Target "test" should have no verify_dir set ok 52 - Target "test" should have no extension set ok 53 - 'Target with registry' isa 'App::Sqitch::Command::target' ok 54 - Add target "withreg" ok 55 - Target "withreg" URI should have been set ok 56 - Target "withreg" registry should have been set ok 57 - Target "test" should have no client set ok 58 - Target "test" should have no top_dir set ok 59 - Target "test" should have no plan_file set ok 60 - Target "test" should have no deploy_dir set ok 61 - Target "test" should have no revert_dir set ok 62 - Target "test" should have no verify_dir set ok 63 - Target "test" should have no extension set ok 64 - 'Target with client' isa 'App::Sqitch::Command::target' ok 65 - Add target "withcli" ok 66 - Target "withcli" URI should have been set ok 67 - Target "withcli" should have client set ok 68 - Target "withcli" should have no registry set ok 69 - Target "withcli" should have no top_dir set ok 70 - Target "withcli" should have no plan_file set ok 71 - Target "withcli" should have no deploy_dir set ok 72 - Target "withcli" should have no revert_dir set ok 73 - Target "withcli" should have no verify_dir set ok 74 - Target "withcli" should have no extension set ok 75 - 'Target with client and registry' isa 'App::Sqitch::Command::target' ok 76 - Add target "withboth" ok 77 - Target "withboth" URI should have been set ok 78 - Target "withboth" registry should have been set ok 79 - Target "withboth" should have client set ok 80 - Target "withboth" should have no top_dir set ok 81 - Target "withboth" should have no plan_file set ok 82 - Target "withboth" should have no deploy_dir set ok 83 - Target "withboth" should have no revert_dir set ok 84 - Target "withboth" should have no verify_dir set ok 85 - Target "withboth" should have no extension set ok 86 - 'Target with all properties' isa 'App::Sqitch::Command::target' ok 87 - my.plan does not exist ok 88 - dir top\deploy does not exist ok 89 - dir top\revert does not exist ok 90 - dir top\verify does not exist ok 91 - dir r\d does not exist ok 92 - dir r\revert does not exist ok 93 - dir r\verify does not exist ok 94 - Add target "withall" ok 95 - dir top\deploy exists ok 96 - dir top\revert exists ok 97 - dir top\verify exists ok 98 - dir r\d exists ok 99 - dir r\revert exists ok 100 - dir r\verify exists ok 101 - my.plan exists ok 102 - Target "withall" should have uri set ok 103 - Target "withall" should have top_dir set ok 104 - Target "withall" should have reworked_dir set ok 105 - Target "withall" should have registry set ok 106 - Target "withall" should have verify_dir set ok 107 - Target "withall" should have extension set ok 108 - Target "withall" should have revert_dir set ok 109 - Target "withall" should have reworked_deploy_dir set ok 110 - Target "withall" should have plan_file set ok 111 - Target "withall" should have deploy_dir set ok 112 - Target "withall" should have client set ok 113 - 'Target with no properties' isa 'App::Sqitch::Command::target' ok 114 - No name arg to alter() should yield usage ok 115 - No args should be passed to usage ok 116 - Should get error for missing target ok 117 - Missing target error ident should be "target" ok 118 - Missing target error message should be correct ok 119 - Should get error for missing target with URI ok 120 - Missing target with URI error ident should be "target" ok 121 - Missing target error message should include URI ok 122 - 'Target with more properties' isa 'App::Sqitch::Command::target' ok 123 - Alter target "withall" ok 124 - Target "withall" should have registry set ok 125 - Target "withall" should have revert_dir set ok 126 - Target "withall" should have extension set ok 127 - Target "withall" should have verify_dir set ok 128 - Target "withall" should have uri set ok 129 - Target "withall" should have reworked_dir set ok 130 - Target "withall" should have client set ok 131 - Target "withall" should have plan_file set ok 132 - Target "withall" should have reworked_deploy_dir set ok 133 - Target "withall" should have deploy_dir set ok 134 - Target "withall" should have top_dir set ok 135 - 'Target with new top_dir property' isa 'App::Sqitch::Command::target' ok 136 - dir big does not exist ok 137 - dir big\deploy does not exist ok 138 - dir big\revert does not exist ok 139 - dir big\verify does not exist ok 140 - Alter target "withall" ok 141 - dir big exists ok 142 - dir big\deploy exists ok 143 - dir big\revert exists ok 144 - dir big\verify exists ok 145 - The withall top_dir should have been set ok 146 - No name arg to set_uri() should yield usage ok 147 - No args should be passed to usage ok 148 - No URI arg to set_uri() should yield usage ok 149 - No args should be passed to usage ok 150 - Should get error for nonexistent target ok 151 - Nonexistent target error ident should be "target" ok 152 - Nonexistent target error message should be correct ok 153 - Set new URI ok 154 - Target "withboth" should have new URI ok 155 - Set new URI ok 156 - Target "withboth" should have new DB URI ok 157 - No name arg to set_registry() should yield usage ok 158 - No args should be passed to usage ok 159 - No registry arg to set_registry() should yield usage ok 160 - No args should be passed to usage ok 161 - Should get error for nonexistent target ok 162 - Nonexistent target error ident should be "target" ok 163 - Nonexistent target error message should be correct ok 164 - Set new $key ok 165 - Target "withboth" should have new registry ok 166 - No name arg to set_revert_dir() should yield usage ok 167 - No args should be passed to usage ok 168 - No revert_dir arg to set_revert_dir() should yield usage ok 169 - No args should be passed to usage ok 170 - Should get error for nonexistent target ok 171 - Nonexistent target error ident should be "target" ok 172 - Nonexistent target error message should be correct ok 173 - Set new $key ok 174 - Target "withboth" should have new revert_dir ok 175 - No name arg to set_extension() should yield usage ok 176 - No args should be passed to usage ok 177 - No extension arg to set_extension() should yield usage ok 178 - No args should be passed to usage ok 179 - Should get error for nonexistent target ok 180 - Nonexistent target error ident should be "target" ok 181 - Nonexistent target error message should be correct ok 182 - Set new $key ok 183 - Target "withboth" should have new extension ok 184 - No name arg to set_verify_dir() should yield usage ok 185 - No args should be passed to usage ok 186 - No verify_dir arg to set_verify_dir() should yield usage ok 187 - No args should be passed to usage ok 188 - Should get error for nonexistent target ok 189 - Nonexistent target error ident should be "target" ok 190 - Nonexistent target error message should be correct ok 191 - Set new $key ok 192 - Target "withboth" should have new verify_dir ok 193 - No name arg to set_uri() should yield usage ok 194 - No args should be passed to usage ok 195 - No uri arg to set_uri() should yield usage ok 196 - No args should be passed to usage ok 197 - Should get error for nonexistent target ok 198 - Nonexistent target error ident should be "target" ok 199 - Nonexistent target error message should be correct ok 200 - Set new $key ok 201 - Target "withboth" should have new uri ok 202 - No name arg to set_client() should yield usage ok 203 - No args should be passed to usage ok 204 - No client arg to set_client() should yield usage ok 205 - No args should be passed to usage ok 206 - Should get error for nonexistent target ok 207 - Nonexistent target error ident should be "target" ok 208 - Nonexistent target error message should be correct ok 209 - Set new $key ok 210 - Target "withboth" should have new client ok 211 - No name arg to set_plan_file() should yield usage ok 212 - No args should be passed to usage ok 213 - No plan_file arg to set_plan_file() should yield usage ok 214 - No args should be passed to usage ok 215 - Should get error for nonexistent target ok 216 - Nonexistent target error ident should be "target" ok 217 - Nonexistent target error message should be correct ok 218 - Set new $key ok 219 - Target "withboth" should have new plan_file ok 220 - No name arg to set_deploy_dir() should yield usage ok 221 - No args should be passed to usage ok 222 - No deploy_dir arg to set_deploy_dir() should yield usage ok 223 - No args should be passed to usage ok 224 - Should get error for nonexistent target ok 225 - Nonexistent target error ident should be "target" ok 226 - Nonexistent target error message should be correct ok 227 - Set new $key ok 228 - Target "withboth" should have new deploy_dir ok 229 - No name arg to set_top_dir() should yield usage ok 230 - No args should be passed to usage ok 231 - No top_dir arg to set_top_dir() should yield usage ok 232 - No args should be passed to usage ok 233 - Should get error for nonexistent target ok 234 - Nonexistent target error ident should be "target" ok 235 - Nonexistent target error message should be correct ok 236 - Set new $key ok 237 - Target "withboth" should have new top_dir ok 238 - No name args to rename() should yield usage ok 239 - No args should be passed to usage ok 240 - No second arg to rename() should yield usage ok 241 - No args should be passed to usage ok 242 - Should get error for nonexistent target ok 243 - Nonexistent target error ident should be "target" ok 244 - Nonexistent target error message should be correct ok 245 - Rename ok 246 - Target "àlafois" should now be present ok 247 - Target "withboth" should no longer be present ok 248 - Should get error renaming a target with dependencies ok 249 - Dependency target error ident should be "target" ok 250 - Dependency target error message should be correct ok 251 - No name args to remove() should yield usage ok 252 - No args should be passed to usage ok 253 - Should get error for nonexistent target ok 254 - Nonexistent target error ident should be "target" ok 255 - Nonexistent target error message should be correct ok 256 - Remove ok 257 - Target "àlafois" should now be gone ok 258 - Should get error removing a target with dependencies ok 259 - Dependency target error ident should be "target" ok 260 - Dependency target error message should be correct ok 261 - Run show() ok 262 - Show with no names should emit the list of targets ok 263 - Show dev ok 264 - The "dev" target should have been shown ok 265 - Show withcli ok 266 - The "with_cli" target should have been shown ok 267 - Show withreg ok 268 - The "with_reg" target should have been shown ok 269 - Show three targets ok 270 - All three targets should have been shown ok 271 - 'Simple target' isa 'App::Sqitch::Command::target' ok 272 - Execute undef ok 273 - list() should have been called ok 274 - Execute undef with args ok 275 - list() should have been passed args ok 276 - Execute list ok 277 - list() should have been called ok 278 - Execute list with args ok 279 - list() should have been passed args ok 280 - Execute add ok 281 - add() should have been called ok 282 - Execute add with args ok 283 - add() should have been passed args ok 284 - Execute set-uri ok 285 - set_uri() should have been called ok 286 - Execute set-uri with args ok 287 - set_uri() should have been passed args ok 288 - Execute set-url ok 289 - set_uri() should have been called ok 290 - Execute set-url with args ok 291 - set_uri() should have been passed args ok 292 - Execute set-registry ok 293 - set_registry() should have been called ok 294 - Execute set-registry with args ok 295 - set_registry() should have been passed args ok 296 - Execute set-client ok 297 - set_client() should have been called ok 298 - Execute set-client with args ok 299 - set_client() should have been passed args ok 300 - Execute remove ok 301 - remove() should have been called ok 302 - Execute remove with args ok 303 - remove() should have been passed args ok 304 - Execute rm ok 305 - remove() should have been called ok 306 - Execute rm with args ok 307 - remove() should have been passed args ok 308 - Execute rename ok 309 - rename() should have been called ok 310 - Execute rename with args ok 311 - rename() should have been passed args ok 312 - Execute show ok 313 - show() should have been called ok 314 - Execute show with args ok 315 - show() should have been passed args ok 316 - Should get an exception for a nonexistent action ok 317 - Nonexistent action message should be passed to usage ok 318 - Invalid URI rock should throw an error ok 319 - Invalid URI rock error ident should be "target" ok 320 - Invalid URI rock error message should be correct ok 321 - Invalid URI http://www.google.com/ should throw an error ok 322 - Invalid URI http://www.google.com/ error ident should be "target" ok 323 - Invalid URI http://www.google.com/ error message should be correct ok 324 - Engineless URI should throw an error ok 325 - Engineless URI error ident should be "target" ok 326 - Engineless URI error message should be correct ok 327 - Unknown engine URI should throw an error ok 328 - Unknown engine URI error ident should be "target" ok 329 - Unknown engine URI error message should be correct ok 330 - 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=6579, 62 wallclock secs ( 1.08 usr + 0.16 sys = 1.23 CPU) Result: PASS DWHEELER/App-Sqitch-0.9994.tar.gz C:\Perl-5.24-32\bin\perl.exe ./Build test verbose=1 -- OK Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/D/DW/DWHEELER/CHECKSUMS David E. Wheeler <david@justatheory.com> Sane database change management >>> (cd C:\cpanfly-5.24-32\var\tmp\cpan_build\App-Sqitch-0.9994-T_U57t && tar cvf - App-Sqitch-0.9994.ppd blib) | gzip -c >C:/cpanfly-5.24-32/var/REPO/D/DW/DWHEELER/App-Sqitch-0.9994.tar.gz App-Sqitch-0.9994.ppd blib/ blib/etc/ blib/etc/templates/ blib/etc/templates/deploy/ blib/etc/templates/deploy/firebird.tmpl blib/etc/templates/deploy/mysql.tmpl blib/etc/templates/deploy/oracle.tmpl blib/etc/templates/deploy/pg.tmpl blib/etc/templates/deploy/sqlite.tmpl blib/etc/templates/deploy/vertica.tmpl blib/etc/templates/revert/ blib/etc/templates/revert/firebird.tmpl blib/etc/templates/revert/mysql.tmpl blib/etc/templates/revert/oracle.tmpl blib/etc/templates/revert/pg.tmpl blib/etc/templates/revert/sqlite.tmpl blib/etc/templates/revert/vertica.tmpl blib/etc/templates/verify/ blib/etc/templates/verify/firebird.tmpl blib/etc/templates/verify/mysql.tmpl blib/etc/templates/verify/oracle.tmpl blib/etc/templates/verify/pg.tmpl blib/etc/templates/verify/sqlite.tmpl blib/etc/templates/verify/vertica.tmpl blib/etc/tools/ blib/etc/tools/upgrade-registry-to-mysql-5.5.0.sql blib/etc/tools/upgrade-registry-to-mysql-5.6.4.sql blib/lib/ blib/lib/App/ blib/lib/App/Sqitch/ blib/lib/App/Sqitch/Command/ blib/lib/App/Sqitch/Command/add.pm blib/lib/App/Sqitch/Command/bundle.pm blib/lib/App/Sqitch/Command/checkout.pm blib/lib/App/Sqitch/Command/config.pm blib/lib/App/Sqitch/Command/deploy.pm blib/lib/App/Sqitch/Command/engine.pm blib/lib/App/Sqitch/Command/help.pm blib/lib/App/Sqitch/Command/init.pm blib/lib/App/Sqitch/Command/log.pm blib/lib/App/Sqitch/Command/plan.pm blib/lib/App/Sqitch/Command/rebase.pm blib/lib/App/Sqitch/Command/revert.pm blib/lib/App/Sqitch/Command/rework.pm blib/lib/App/Sqitch/Command/show.pm blib/lib/App/Sqitch/Command/status.pm blib/lib/App/Sqitch/Command/tag.pm blib/lib/App/Sqitch/Command/target.pm blib/lib/App/Sqitch/Command/upgrade.pm blib/lib/App/Sqitch/Command/verify.pm blib/lib/App/Sqitch/Command.pm blib/lib/App/Sqitch/Config.pm blib/lib/App/Sqitch/DateTime.pm blib/lib/App/Sqitch/Engine/ blib/lib/App/Sqitch/Engine/firebird.pm blib/lib/App/Sqitch/Engine/firebird.sql blib/lib/App/Sqitch/Engine/mysql.pm blib/lib/App/Sqitch/Engine/mysql.sql blib/lib/App/Sqitch/Engine/oracle.pm blib/lib/App/Sqitch/Engine/oracle.sql blib/lib/App/Sqitch/Engine/pg.pm blib/lib/App/Sqitch/Engine/pg.sql blib/lib/App/Sqitch/Engine/sqlite.pm blib/lib/App/Sqitch/Engine/sqlite.sql blib/lib/App/Sqitch/Engine/Upgrade/ blib/lib/App/Sqitch/Engine/Upgrade/firebird-1.0.sql blib/lib/App/Sqitch/Engine/Upgrade/firebird-1.1.sql blib/lib/App/Sqitch/Engine/Upgrade/mysql-1.0.sql blib/lib/App/Sqitch/Engine/Upgrade/mysql-1.1.sql blib/lib/App/Sqitch/Engine/Upgrade/oracle-1.0.sql blib/lib/App/Sqitch/Engine/Upgrade/oracle-1.1.sql blib/lib/App/Sqitch/Engine/Upgrade/pg-1.0.sql blib/lib/App/Sqitch/Engine/Upgrade/pg-1.1.sql blib/lib/App/Sqitch/Engine/Upgrade/sqlite-1.0.sql blib/lib/App/Sqitch/Engine/Upgrade/sqlite-1.1.sql blib/lib/App/Sqitch/Engine/Upgrade/vertica-1.0.sql blib/lib/App/Sqitch/Engine/Upgrade/vertica-1.1.sql blib/lib/App/Sqitch/Engine/vertica.pm blib/lib/App/Sqitch/Engine/vertica.sql blib/lib/App/Sqitch/Engine.pm blib/lib/App/Sqitch/ItemFormatter.pm blib/lib/App/Sqitch/Plan/ blib/lib/App/Sqitch/Plan/Blank.pm blib/lib/App/Sqitch/Plan/Change.pm blib/lib/App/Sqitch/Plan/ChangeList.pm blib/lib/App/Sqitch/Plan/Depend.pm blib/lib/App/Sqitch/Plan/Line.pm blib/lib/App/Sqitch/Plan/LineList.pm blib/lib/App/Sqitch/Plan/Pragma.pm blib/lib/App/Sqitch/Plan/Tag.pm blib/lib/App/Sqitch/Plan.pm blib/lib/App/Sqitch/Role/ blib/lib/App/Sqitch/Role/DBIEngine.pm blib/lib/App/Sqitch/Role/RevertDeployCommand.pm blib/lib/App/Sqitch/Role/TargetConfigCommand.pm blib/lib/App/Sqitch/Target.pm blib/lib/App/Sqitch/Types.pm blib/lib/App/Sqitch/X.pm blib/lib/App/Sqitch.pm blib/lib/LocaleData/ blib/lib/LocaleData/de/ blib/lib/LocaleData/de/LC_MESSAGES/ blib/lib/LocaleData/de/LC_MESSAGES/App-Sqitch.mo blib/lib/LocaleData/fr/ blib/lib/LocaleData/fr/LC_MESSAGES/ blib/lib/LocaleData/fr/LC_MESSAGES/App-Sqitch.mo blib/lib/sqitch-add-usage.pod blib/lib/sqitch-add.pod blib/lib/sqitch-bundle-usage.pod blib/lib/sqitch-bundle.pod blib/lib/sqitch-checkout-usage.pod blib/lib/sqitch-checkout.pod blib/lib/sqitch-config-usage.pod blib/lib/sqitch-config.pod blib/lib/sqitch-configuration.pod blib/lib/sqitch-deploy-usage.pod blib/lib/sqitch-deploy.pod blib/lib/sqitch-engine-usage.pod blib/lib/sqitch-engine.pod blib/lib/sqitch-environment.pod blib/lib/sqitch-help-usage.pod blib/lib/sqitch-help.pod blib/lib/sqitch-init-usage.pod blib/lib/sqitch-init.pod blib/lib/sqitch-log-usage.pod blib/lib/sqitch-log.pod blib/lib/sqitch-passwords.pod blib/lib/sqitch-plan-usage.pod blib/lib/sqitch-plan.pod blib/lib/sqitch-rebase-usage.pod blib/lib/sqitch-rebase.pod blib/lib/sqitch-revert-usage.pod blib/lib/sqitch-revert.pod blib/lib/sqitch-rework-usage.pod blib/lib/sqitch-rework.pod blib/lib/sqitch-show-usage.pod blib/lib/sqitch-show.pod blib/lib/sqitch-status-usage.pod blib/lib/sqitch-status.pod blib/lib/sqitch-tag-usage.pod blib/lib/sqitch-tag.pod blib/lib/sqitch-target-usage.pod blib/lib/sqitch-target.pod blib/lib/sqitch-upgrade-usage.pod blib/lib/sqitch-upgrade.pod blib/lib/sqitch-verify-usage.pod blib/lib/sqitch-verify.pod blib/lib/sqitch.pod blib/lib/sqitchchanges.pod blib/lib/sqitchcommands.pod blib/lib/sqitchguides.pod blib/lib/sqitchtutorial-firebird.pod blib/lib/sqitchtutorial-mysql.pod blib/lib/sqitchtutorial-oracle.pod blib/lib/sqitchtutorial-sqlite.pod blib/lib/sqitchtutorial-vertica.pod blib/lib/sqitchtutorial.pod blib/lib/sqitchusage.pod blib/script/ blib/script/sqitch blib/script/sqitch.bat Finished 2016-06-15T15:08:16