PATH=/usr/bin:/bin Start 2013-01-11T17:13:28 ActivePerl-1003 CPAN-1.9402 Going to read '/home/cpanfly/var/cpan/Metadata' Database was generated on Sat, 12 Jan 2013 00:41:02 GMT Running make for D/DW/DWHEELER/App-Sqitch-0.952.tar.gz Checksum for /net/nas/data/cpan/authors/id/D/DW/DWHEELER/App-Sqitch-0.952.tar.gz ok Will not use Archive::Tar, need 1.00 App-Sqitch-0.952/ App-Sqitch-0.952/bin/ App-Sqitch-0.952/Build.PL App-Sqitch-0.952/Changes App-Sqitch-0.952/dist/ App-Sqitch-0.952/etc/ App-Sqitch-0.952/inc/ App-Sqitch-0.952/lib/ App-Sqitch-0.952/LICENSE App-Sqitch-0.952/MANIFEST App-Sqitch-0.952/META.json App-Sqitch-0.952/META.yml App-Sqitch-0.952/README App-Sqitch-0.952/README.md App-Sqitch-0.952/t/ App-Sqitch-0.952/xt/ App-Sqitch-0.952/xt/release/ App-Sqitch-0.952/xt/release/pod-spelling.t App-Sqitch-0.952/t/add.t App-Sqitch-0.952/t/add_change.conf App-Sqitch-0.952/t/base.t App-Sqitch-0.952/t/blank.t App-Sqitch-0.952/t/bundle.t App-Sqitch-0.952/t/change.t App-Sqitch-0.952/t/changelist.t App-Sqitch-0.952/t/command.t App-Sqitch-0.952/t/config.t App-Sqitch-0.952/t/configuration.t App-Sqitch-0.952/t/datetime.t App-Sqitch-0.952/t/depend.t App-Sqitch-0.952/t/deploy.t App-Sqitch-0.952/t/die.pl App-Sqitch-0.952/t/echo.pl App-Sqitch-0.952/t/engine.t App-Sqitch-0.952/t/help.t App-Sqitch-0.952/t/init.t App-Sqitch-0.952/t/lib/ App-Sqitch-0.952/t/linelist.t App-Sqitch-0.952/t/local.conf App-Sqitch-0.952/t/log.t App-Sqitch-0.952/t/options.t App-Sqitch-0.952/t/pg/ App-Sqitch-0.952/t/pg.t App-Sqitch-0.952/t/plan.t App-Sqitch-0.952/t/plans/ App-Sqitch-0.952/t/pod-coverage.t App-Sqitch-0.952/t/pod.t App-Sqitch-0.952/t/pragma.t App-Sqitch-0.952/t/read.pl App-Sqitch-0.952/t/rebase.t App-Sqitch-0.952/t/revert.t App-Sqitch-0.952/t/rework.t App-Sqitch-0.952/t/show.t App-Sqitch-0.952/t/sqitch App-Sqitch-0.952/t/sqitch.conf App-Sqitch-0.952/t/sql/ App-Sqitch-0.952/t/sqlite.t App-Sqitch-0.952/t/status.t App-Sqitch-0.952/t/tag.t App-Sqitch-0.952/t/tag_cmd.t App-Sqitch-0.952/t/user.conf App-Sqitch-0.952/t/verify.t App-Sqitch-0.952/t/x.t App-Sqitch-0.952/t/sql/deploy/ App-Sqitch-0.952/t/sql/sqitch.plan App-Sqitch-0.952/t/sql/verify/ App-Sqitch-0.952/t/sql/verify/users.sql App-Sqitch-0.952/t/sql/deploy/roles.sql App-Sqitch-0.952/t/sql/deploy/users.sql App-Sqitch-0.952/t/sql/deploy/widgets.sql App-Sqitch-0.952/t/plans/bad-change.plan App-Sqitch-0.952/t/plans/changes-only.plan App-Sqitch-0.952/t/plans/dependencies.plan App-Sqitch-0.952/t/plans/deploy-and-revert.plan App-Sqitch-0.952/t/plans/dupe-change-diff-tag.plan App-Sqitch-0.952/t/plans/dupe-change.plan App-Sqitch-0.952/t/plans/dupe-tag.plan App-Sqitch-0.952/t/plans/multi.plan App-Sqitch-0.952/t/plans/pragmas.plan App-Sqitch-0.952/t/plans/project_deps.plan App-Sqitch-0.952/t/plans/reserved-tag.plan App-Sqitch-0.952/t/plans/widgets.plan App-Sqitch-0.952/t/pg/deploy/ App-Sqitch-0.952/t/pg/revert/ App-Sqitch-0.952/t/pg/sqitch.plan App-Sqitch-0.952/t/pg/revert/func/ App-Sqitch-0.952/t/pg/revert/users.sql App-Sqitch-0.952/t/pg/revert/widgets.sql App-Sqitch-0.952/t/pg/revert/func/add_user.sql App-Sqitch-0.952/t/pg/deploy/func/ App-Sqitch-0.952/t/pg/deploy/users.sql App-Sqitch-0.952/t/pg/deploy/widgets.sql App-Sqitch-0.952/t/pg/deploy/func/add_user.sql App-Sqitch-0.952/t/lib/App/ App-Sqitch-0.952/t/lib/MockOutput.pm App-Sqitch-0.952/t/lib/App/Sqitch/ App-Sqitch-0.952/t/lib/App/Sqitch/Command/ App-Sqitch-0.952/t/lib/App/Sqitch/Engine/ App-Sqitch-0.952/t/lib/App/Sqitch/Engine/bad.pm App-Sqitch-0.952/t/lib/App/Sqitch/Engine/good.pm App-Sqitch-0.952/t/lib/App/Sqitch/Command/bad.pm App-Sqitch-0.952/t/lib/App/Sqitch/Command/good.pm App-Sqitch-0.952/lib/App/ App-Sqitch-0.952/lib/LocaleData/ App-Sqitch-0.952/lib/sqitch-add-usage.pod App-Sqitch-0.952/lib/sqitch-add.pod App-Sqitch-0.952/lib/sqitch-bundle-usage.pod App-Sqitch-0.952/lib/sqitch-bundle.pod App-Sqitch-0.952/lib/sqitch-config-usage.pod App-Sqitch-0.952/lib/sqitch-config.pod App-Sqitch-0.952/lib/sqitch-deploy-usage.pod App-Sqitch-0.952/lib/sqitch-deploy.pod App-Sqitch-0.952/lib/sqitch-help-usage.pod App-Sqitch-0.952/lib/sqitch-help.pod App-Sqitch-0.952/lib/sqitch-init-usage.pod App-Sqitch-0.952/lib/sqitch-init.pod App-Sqitch-0.952/lib/sqitch-log-usage.pod App-Sqitch-0.952/lib/sqitch-log.pod App-Sqitch-0.952/lib/sqitch-rebase-usage.pod App-Sqitch-0.952/lib/sqitch-rebase.pod App-Sqitch-0.952/lib/sqitch-revert-usage.pod App-Sqitch-0.952/lib/sqitch-revert.pod App-Sqitch-0.952/lib/sqitch-rework-usage.pod App-Sqitch-0.952/lib/sqitch-rework.pod App-Sqitch-0.952/lib/sqitch-show-usage.pod App-Sqitch-0.952/lib/sqitch-show.pod App-Sqitch-0.952/lib/sqitch-status-usage.pod App-Sqitch-0.952/lib/sqitch-status.pod App-Sqitch-0.952/lib/sqitch-tag-usage.pod App-Sqitch-0.952/lib/sqitch-tag.pod App-Sqitch-0.952/lib/sqitch-verify-usage.pod App-Sqitch-0.952/lib/sqitch-verify.pod App-Sqitch-0.952/lib/sqitch.pod App-Sqitch-0.952/lib/sqitchchanges.pod App-Sqitch-0.952/lib/sqitchcommands.pod App-Sqitch-0.952/lib/sqitchtutorial.pod App-Sqitch-0.952/lib/LocaleData/de/ App-Sqitch-0.952/lib/LocaleData/fr/ App-Sqitch-0.952/lib/LocaleData/fr/LC_MESSAGES/ App-Sqitch-0.952/lib/LocaleData/fr/LC_MESSAGES/App-Sqitch.mo App-Sqitch-0.952/lib/LocaleData/de/LC_MESSAGES/ App-Sqitch-0.952/lib/LocaleData/de/LC_MESSAGES/App-Sqitch.mo App-Sqitch-0.952/lib/App/Sqitch/ App-Sqitch-0.952/lib/App/Sqitch.pm App-Sqitch-0.952/lib/App/Sqitch/Command/ App-Sqitch-0.952/lib/App/Sqitch/Command.pm App-Sqitch-0.952/lib/App/Sqitch/Config.pm App-Sqitch-0.952/lib/App/Sqitch/DateTime.pm App-Sqitch-0.952/lib/App/Sqitch/Engine/ App-Sqitch-0.952/lib/App/Sqitch/Engine.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/ App-Sqitch-0.952/lib/App/Sqitch/Plan.pm App-Sqitch-0.952/lib/App/Sqitch/X.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/Blank.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/Change.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/ChangeList.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/Depend.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/Line.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/LineList.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/Pragma.pm App-Sqitch-0.952/lib/App/Sqitch/Plan/Tag.pm App-Sqitch-0.952/lib/App/Sqitch/Engine/pg.pm App-Sqitch-0.952/lib/App/Sqitch/Engine/pg.sql App-Sqitch-0.952/lib/App/Sqitch/Engine/sqlite.pm App-Sqitch-0.952/lib/App/Sqitch/Command/add.pm App-Sqitch-0.952/lib/App/Sqitch/Command/bundle.pm App-Sqitch-0.952/lib/App/Sqitch/Command/config.pm App-Sqitch-0.952/lib/App/Sqitch/Command/deploy.pm App-Sqitch-0.952/lib/App/Sqitch/Command/help.pm App-Sqitch-0.952/lib/App/Sqitch/Command/init.pm App-Sqitch-0.952/lib/App/Sqitch/Command/log.pm App-Sqitch-0.952/lib/App/Sqitch/Command/rebase.pm App-Sqitch-0.952/lib/App/Sqitch/Command/revert.pm App-Sqitch-0.952/lib/App/Sqitch/Command/rework.pm App-Sqitch-0.952/lib/App/Sqitch/Command/show.pm App-Sqitch-0.952/lib/App/Sqitch/Command/status.pm App-Sqitch-0.952/lib/App/Sqitch/Command/tag.pm App-Sqitch-0.952/lib/App/Sqitch/Command/verify.pm App-Sqitch-0.952/inc/Module/ App-Sqitch-0.952/inc/Module/Build/ App-Sqitch-0.952/inc/Module/Build/Sqitch.pm App-Sqitch-0.952/etc/templates/ App-Sqitch-0.952/etc/templates/deploy.tmpl App-Sqitch-0.952/etc/templates/revert.tmpl App-Sqitch-0.952/etc/templates/verify.tmpl App-Sqitch-0.952/dist/sqitch.spec App-Sqitch-0.952/bin/sqitch CPAN.pm: Going to build D/DW/DWHEELER/App-Sqitch-0.952.tar.gz >>> /home/cpanfly/ap1003/bin/perl-static Build.PL Checking prerequisites... requires: ! String::Formatter 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.952' ---- Unsatisfied dependencies detected during ---- ---- DWHEELER/App-Sqitch-0.952.tar.gz ---- String::Formatter [requires] Running Build test Delayed until after prerequisites Running test for module 'String::Formatter' Running make for R/RJ/RJBS/String-Formatter-0.102082.tar.gz Checksum for /home/cpanfly/var/cpan/sources/authors/id/R/RJ/RJBS/String-Formatter-0.102082.tar.gz ok Will not use Archive::Tar, need 1.00 String-Formatter-0.102082 String-Formatter-0.102082/README String-Formatter-0.102082/Changes String-Formatter-0.102082/LICENSE String-Formatter-0.102082/bench.pl String-Formatter-0.102082/dist.ini String-Formatter-0.102082/META.yml String-Formatter-0.102082/MANIFEST String-Formatter-0.102082/t String-Formatter-0.102082/t/basic.t String-Formatter-0.102082/META.json String-Formatter-0.102082/t/braces.t String-Formatter-0.102082/t/method.t String-Formatter-0.102082/t/params.t String-Formatter-0.102082/t/stringf.t String-Formatter-0.102082/Makefile.PL String-Formatter-0.102082/t/release-pod-syntax.t String-Formatter-0.102082/lib/String String-Formatter-0.102082/lib/String/Formatter.pm String-Formatter-0.102082/lib/String/Formatter String-Formatter-0.102082/lib/String/Formatter/Cookbook.pm CPAN.pm: Going to build R/RJ/RJBS/String-Formatter-0.102082.tar.gz >>> /home/cpanfly/ap1003/bin/perl-static Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for String::Formatter Writing MYMETA.yml and MYMETA.json >>> make cp bench.pl blib/lib/String/bench.pl cp lib/String/Formatter.pm blib/lib/String/Formatter.pm cp lib/String/Formatter/Cookbook.pm blib/lib/String/Formatter/Cookbook.pm Manifying blib/man3/String::Formatter.3 Manifying blib/man3/String::Formatter::Cookbook.3 RJBS/String-Formatter-0.102082.tar.gz make -- OK Running make test >>> make test TEST_VERBOSE=1 PERL_DL_NONLAZY=1 /home/cpanfly/ap1003/bin/perl-static "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/basic.t ............... 1..11 ok 1 - formatting with no text after last code ok 2 - format with multiple newlines ok 3 - %% -> % ok 4 - formatting with text after last code ok 5 - formatting with no %codes ok 6 - unknown conversions are fatal ok 7 - truncate at max_chars ok 8 - left-pad to reach min_chars ok 9 - left-pad to reach min_chars (with dot) ok 10 - right-pad to reach min_chars (-10) ok 11 - non-identifier format characters ok t/braces.t .............. 1..1 ok 1 - we allow braces inside braces ok t/method.t .............. 1..1 ok 1 - method_replace GOOD. fire BAD ok t/params.t .............. 1..2 ok 1 - named args via conversions ok 2 - positional args via conversions ok t/release-pod-syntax.t .. skipped: these tests are for release candidate testing t/stringf.t ............. ok 1 - positional args via conversions ok 2 - named args via conversions ok 3 - named args via conversions (named_stringf import) ok 4 - named args via conversions (indexed_stringf import) 1..4 ok All tests successful. Files=6, Tests=19, 0 wallclock secs ( 0.01 usr 0.02 sys + 0.23 cusr 0.04 csys = 0.30 CPU) Result: PASS RJBS/String-Formatter-0.102082.tar.gz make test TEST_VERBOSE=1 -- OK PPD for String-Formatter-0.102082 already made Running Build for D/DW/DWHEELER/App-Sqitch-0.952.tar.gz Prepending /home/cpanfly/var/cpan/build/String-Formatter-0.102082-HvkIw6/blib/arch /home/cpanfly/var/cpan/build/String-Formatter-0.102082-HvkIw6/blib/lib to PERL5LIB for 'get' Has already been unwrapped into directory /home/cpanfly/var/cpan/build/App-Sqitch-0.952-UKT8Bh Prepending /home/cpanfly/var/cpan/build/String-Formatter-0.102082-HvkIw6/blib/arch /home/cpanfly/var/cpan/build/String-Formatter-0.102082-HvkIw6/blib/lib to PERL5LIB for 'make' CPAN.pm: Going to build D/DW/DWHEELER/App-Sqitch-0.952.tar.gz >>> ./Build Building App-Sqitch DWHEELER/App-Sqitch-0.952.tar.gz ./Build -- OK Prepending /home/cpanfly/var/cpan/build/String-Formatter-0.102082-HvkIw6/blib/arch /home/cpanfly/var/cpan/build/String-Formatter-0.102082-HvkIw6/blib/lib to PERL5LIB for 'test' Running Build test >>> ./Build test verbose=1 /home/cpanfly/ap1003/bin/perl-static -i.bak -pe s{my \$SYSTEM_DIR = undef}{my \$SYSTEM_DIR = q{/home/cpanfly/ap1003/etc/sqitch}} blib/lib/App/Sqitch/Config.pm v-string in use/require non-portable at /home/cpanfly/var/megalib/Test/File/Contents.pm line 3. t/add.t ............ 1..91 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 have get template options ok 15 - Variables should by default not be loaded from config ok 16 - --set should be merged with config variables ok 17 - --set should be override config variables ok 18 - Requires should be an arrayref ok 19 - Conflicts should be an arrayref ok 20 - Notes should be an arrayref ok 21 - Varibles should be a hashref ok 22 - Default dir should be undef ok 23 - with_deploy should be true by default ok 24 - Should die on deploy_template ok 25 - Should be an "add" exception ok 26 - Should get deploy_template failure note ok 27 - with_revert should be true by default ok 28 - Should die on revert_template ok 29 - Should be an "add" exception ok 30 - Should get revert_template failure note ok 31 - with_verify should be true by default ok 32 - Should die on verify_template ok 33 - Should be an "add" exception ok 34 - Should get verify_template failure note ok 35 - Create add with template_directory ok 36 - Should find deploy in templates directory ok 37 - Should find revert in templates directory ok 38 - Should find verify in templates directory ok 39 - _find should work with template_directory ok 40 - Create add with no template directory ok 41 - _find should work with user_dir from Config ok 42 - Should die trying to find template ok 43 - Should be an "add" exception ok 44 - Should get unfound verify template note ok 45 - _find should work with system_dir from Config ok 46 - _slurp() should load a reference to file contents ok 47 - sql/sqitch_change_test.sql does not exist ok 48 - Write out a script ok 49 - sql/sqitch_change_test.sql exists ok 50 - The template should have been evaluated ok 51 - Info should show $out created ok 52 - Create add cmd with requires and conflicts ok 53 - Write out a script with requires and conflicts ok 54 - Info should show $out created ok 55 - The template should have been evaluated with requires and conflicts ok 56 - Create another add with template_directory ok 57 - Should not have "widgets_table" in plan ok 58 - dir sql/deploy does not exist ok 59 - dir sql/revert does not exist ok 60 - dir sql/verify does not exist ok 61 - Add change "widgets_table" ok 62 - Added change isa App::Sqitch::Plan::Change ok 63 - Change name should be set ok 64 - It should have no requires ok 65 - It should have no conflicts ok 66 - It should have prompted for a note ok 67 - sql/deploy/widgets_table.sql exists ok 68 - sql/revert/widgets_table.sql exists ok 69 - sql/verify/widgets_table.sql exists ok 70 - Deploy script should look right ok 71 - Revert script should look right ok 72 - Verify script should look right ok 73 - Info should have reported file creation ok 74 - Added change in reloaded plan isa App::Sqitch::Plan::Change ok 75 - Create another add with template_directory and no verify script ok 76 - sql/deploy/foo_table.sql exists ok 77 - sql/revert/foo_table.sql does not exist ok 78 - sql/ferify/foo_table.sql does not exist ok 79 - Should not have "foo_table" in plan ok 80 - Add change "foo_table" ok 81 - sql/deploy/foo_table.sql exists ok 82 - sql/revert/foo_table.sql exists ok 83 - sql/ferify/foo_table.sql does not exist ok 84 - "foo_table" change isa App::Sqitch::Plan::Change ok 85 - It should have prompted for a note ok 86 - Change name should be set to "foo_table" ok 87 - It should have requires ok 88 - It should have conflicts ok 89 - It should have a comment ok 90 - Info should report skipping file and include dependencies ok 91 - no warnings ok t/base.t ........... 1..156 ok 1 - use App::Sqitch; ok 2 - App::Sqitch->can(...) ok 3 - A new object isa App::Sqitch ok 4 - db_client should be undef ok 5 - db_username should be undef ok 6 - db_name should be undef ok 7 - db_host should be undef ok 8 - db_port should be undef ok 9 - Default plan file should be $top_dir/sqitch.plan ok 10 - verbosity should be 1 ok 11 - Default extension should be sql ok 12 - Default top_dir should be . ok 13 - Default deploy_dir should be ./sql/deploy ok 14 - Default revert_dir should be ./sql/revert ok 15 - Default verify_dir should be ./sql/verify ok 16 - The object isa App::Sqitch::Plan ok 17 - Default user_name should be set from system ok 18 - Default user_email should be set from system ok 19 - Should get exception for no _engine ok 20 - No _engine error ident should be "core" ok 21 - No _engine error message should be correct ok 22 - Should get exception for no engine ok 23 - No engine error ident should be "core" ok 24 - No engine error message should be correct ok 25 - Should get error for unknown engine ok 26 - Unknown engine error ident should be "core" ok 27 - Unknown No engine error message should be correct ok 28 - Engine "pg" should be valid ok 29 - Engine "sqlite" should be valid ok 30 - Should get error for user name containing "<" ok 31 - Invalid user name error ident should be "user" ok 32 - Invalid user name error message should be correct ok 33 - Should get error for user name starting with "[" ok 34 - Second Invalid user name error ident should be "user" ok 35 - Second Invalid user name error message should be correct ok 36 - Should get error for user email containing ">" ok 37 - Invalid user email error ident should be "user" ok 38 - Invalid user email error message should be correct ok 39 - Should get 0 from go() ok 40 - Command isa App::Sqitch::Command::help ok 41 - Extra args should be passed to execute ok 42 - The object isa App::Sqitch ok 43 - Engine should be set by option ok 44 - ddl should be set by config ok 45 - Get the Sqitch config ok 46 - Should have local config overriding user ok 47 - Should fall back on user config ok 48 - Should have read user name from configuration ok 49 - Should have read user email from configuration ok 50 - Go should return 2 on Sqitch exception ok 51 - The error should have been vented ok 52 - The stack trace should have been sent to trace ok 53 - Go should return exitval on another exception ok 54 - Both the message and the trace should have been vented ok 55 - Nothing should have been traced ok 56 - Go should return 2 on a third Sqitch exception ok 57 - Should have one thing vented ok 58 - And it should include our message ok 59 - editor should use use parameter ok 60 - editor should use $EDITOR ok 61 - editor should prefer $SQITCH_EDITOR ok 62 - editor fall back on vi when not Windows ok 63 - editor fall back on notepad on Windows ok 64 - trace should work ok 65 - Should get no trace output for verbosity 2 ok 66 - trace_literal should work ok 67 - Should get no trace_literal output for verbosity 2 ok 68 - debug should work ok 69 - Should get no debug output for verbosity 1 ok 70 - debug_literal should work ok 71 - Should get no debug_literal output for verbosity 1 ok 72 - info should work ok 73 - Should get no info output for verbosity 0 ok 74 - info_literal should work ok 75 - Should get no info_literal output for verbosity 0 ok 76 - comment should work ok 77 - comment should work with verbosity 0 ok 78 - comment_literal should work ok 79 - comment_literal should work with verbosity 0 ok 80 - emit should work ok 81 - emit should work even with verbosity 0 ok 82 - emit_literal should work ok 83 - emit_literal should work even with verbosity 0 ok 84 - warn should work ok 85 - warn_literal should work ok 86 - vent should work ok 87 - vent_literal should work ok 88 - App::Sqitch->can('run') ok 89 - Should get success back from run echo ok 90 - The echo script should have run ok 91 - Nothing should have gone to STDERR ok 92 - run die should, well, die ok 93 - The die script should have its STDOUT ummolested ok 94 - The die script should have its STDERR unmolested ok 95 - App::Sqitch->can('capture') ok 96 - The echo script output should have been returned ok 97 - Should get an error if the command errors out ok 98 - The die script STDERR should have passed through ok 99 - App::Sqitch->can('probe') ok 100 - Should have just chomped first line of output ok 101 - App::Sqitch->can('spool') ok 102 - Spool to read.pl ok 103 - Data should have been sent to STDOUT by read.pl ok 104 - Should get error when die.pl dies ok 105 - Error ident should be "io" ok 106 - The error message should be one of the I/O messages ok 107 - The die script STDERR should have passed through ok 108 - Should get an error for a bad command ok 109 - Error ident should be "io" ok 110 - Error message should be about inability to exec ok 111 - Should get error for no prompt message ok 112 - No prompt ident should be "DEV" ok 113 - No prompt error message should be correct ok 114 - Prompt should return input ok 115 - Prompt should prompt ok 116 - Prompt with default should return input ok 117 - Prompt should prompt with default ok 118 - Prompt with undef default should return input ok 119 - Prompt should prompt with bracket for undef default ok 120 - Prompt should return default for undef input ok 121 - Prompt should show default when undef input ok 122 - Prompt should return input for empty input ok 123 - Prompt should show default when empty input ok 124 - Should get error when uattended and no default ok 125 - Unattended error ident should be "io" ok 126 - Unattended error message should be correct ok 127 - Prompt should return input ok 128 - Prompt should show default as selected when unattended ok 129 - Should get error for no ask_y_n message ok 130 - No ask_y_n ident should be "DEV" ok 131 - No ask_y_n error message should be correct ok 132 - Should get error for invalid ask_y_n default ok 133 - Invalid ask_y_n default ident should be "DEV" ok 134 - Invalid ask_y_n default error message should be correct ok 135 - ask_y_n should return true for "y" input ok 136 - ask_y_n() should prompt ok 137 - ask_y_n should return false for "no" input ok 138 - ask_y_n() should prompt for no ok 139 - ask_y_n should return false for "Nein" ok 140 - ask_y_n() should prompt for no ok 141 - ask_y_n should return true for "Yep" ok 142 - ask_y_n() should prompt for yes ok 143 - ask_y_n should return true default "y" ok 144 - ask_y_n() should prompt and show default "y" ok 145 - ask_y_n should return false default "n" ok 146 - ask_y_n() should prompt and show default "n" ok 147 - Should get error for bad answers ok 148 - Bad answers ident should be "IO" ok 149 - Bad answers message should be correct ok 150 - _readline should work ok 151 - _readline should return undef when unattended ok 152 - Localied string should be valid UTF-8 ok 153 - Localied string should be decoded ok 154 - Localied string should be valid UTF-8 ok 155 - Localied string should be decoded ok 156 - no warnings ok t/blank.t .......... 1..34 ok 1 - require App::Sqitch::Plan::Blank; ok 2 - App::Sqitch::Plan::Blank->can(...) ok 3 - The object isa App::Sqitch::Plan::Blank ok 4 - The object 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 Laeading and trailing newlines but not spaces from note ok 20 - Should have localized not prompt ok 21 - First arg to run() should be 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 - First arg to run() should be 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 v-string in use/require non-portable at /home/cpanfly/var/megalib/Test/File/Contents.pm line 3. t/bundle.t ......... 1..132 ok 1 - Load a sqitch object ok 2 - bundle command isa App::Sqitch::Command::bundle ok 3 - App::Sqitch::Command::bundle->can(...) ok 4 - Should have dest_dir option ok 5 - Default dest_dir should be bundle/ ok 6 - Should have dest top dir ok 7 - Default config should be empty ok 8 - --dest_dir should be converted to a path object by configure() ok 9 - --from and --to should be passed through configure ok 10 - Load a sqitch object with top_dir ok 11 - bundle.dest_dir config should be converted to a path object by configure() ok 12 - another bundle command isa App::Sqitch::Command::bundle ok 13 - dest_dir should be "_build/sql" ok 14 - Dest top dir should be _build/sql/sql/ ok 15 - Dest deploy dir should be _build/sql/sql/deploy ok 16 - Dest revert dir should be _build/sql/sql/revert ok 17 - Dest verify dir should be _build/sql/sql/verify ok 18 - Load a sqitch object with pg top_dir ok 19 - pg 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/pg/deploy ok 22 - Dest revert dir should be _build/sql/pg/revert ok 23 - Dest verify dir should be _build/sql/pg/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 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/pg/sqitch.plan does not exist ok 63 - Bundle the plan file ok 64 - _build/sql/pg/sqitch.plan exists ok 65 - _build/sql/pg/sqitch.plan and pg/sqitch.plan contents are the same ok 66 - Should have plan notice ok 67 - --from bundle command isa App::Sqitch::Command::bundle ok 68 - From should be "widgets" ok 69 - Bundle the plan file with --from ok 70 - Statement of the bits written should have been emitted ok 71 - Plan should have written only "widgets" ok 72 - --to bundle command isa App::Sqitch::Command::bundle ok 73 - To should be "users" ok 74 - Bundle the plan file with --to ok 75 - Statement of the bits written should have been emitted ok 76 - Plan should have written only "users" and its tags ok 77 - _build/sql/pg/deploy/users.sql does not exist ok 78 - _build/sql/pg/revert/users.sql does not exist ok 79 - _build/sql/pg/deploy/widgets.sql does not exist ok 80 - _build/sql/pg/revert/widgets.sql does not exist ok 81 - _build/sql/pg/deploy/func/add_user.sql does not exist ok 82 - _build/sql/pg/revert/func/add_user.sql does not exist ok 83 - Load pg sqitch object ok 84 - another bundle command isa App::Sqitch::Command::bundle ok 85 - Bundle scripts ok 86 - _build/sql/pg/deploy/users.sql exists ok 87 - _build/sql/pg/revert/users.sql exists ok 88 - _build/sql/pg/deploy/widgets.sql exists ok 89 - _build/sql/pg/revert/widgets.sql exists ok 90 - _build/sql/pg/deploy/func/add_user.sql exists ok 91 - _build/sql/pg/revert/func/add_user.sql exists ok 92 - Should have change notices ok 93 - bundle from "widgets" isa App::Sqitch::Command::bundle ok 94 - Bundle scripts ok 95 - _build/sql/pg/deploy/users.sql does not exist ok 96 - _build/sql/pg/revert/users.sql does not exist ok 97 - _build/sql/pg/deploy/widgets.sql exists ok 98 - _build/sql/pg/revert/widgets.sql exists ok 99 - Should have only "widets" in change notices ok 100 - bundle to "users" isa App::Sqitch::Command::bundle ok 101 - Bundle scripts ok 102 - _build/sql/pg/deploy/users.sql exists ok 103 - _build/sql/pg/revert/users.sql exists ok 104 - _build/sql/pg/deploy/widgets.sql does not exist ok 105 - _build/sql/pg/revert/widgets.sql does not exist ok 106 - Should have only "users" in change notices ok 107 - Should die on nonexistent from change ok 108 - Nonexistent from change ident should be "bundle" ok 109 - Nonexistent from message change should be correct ok 110 - Should die on nonexistent to change ok 111 - Nonexistent to change ident should be "bundle" ok 112 - Nonexistent to message change should be correct ok 113 - _build/sql/sqitch.conf does not exist ok 114 - _build/sql/pg/sqitch.plan does not exist ok 115 - _build/sql/pg/deploy/users.sql does not exist ok 116 - _build/sql/pg/revert/users.sql does not exist ok 117 - _build/sql/pg/deploy/widgets.sql does not exist ok 118 - _build/sql/pg/revert/widgets.sql does not exist ok 119 - _build/sql/pg/deploy/func/add_user.sql does not exist ok 120 - _build/sql/pg/revert/func/add_user.sql does not exist ok 121 - another bundle command isa App::Sqitch::Command::bundle ok 122 - Execute! ok 123 - _build/sql/sqitch.conf exists ok 124 - _build/sql/pg/sqitch.plan exists ok 125 - _build/sql/pg/deploy/users.sql exists ok 126 - _build/sql/pg/revert/users.sql exists ok 127 - _build/sql/pg/deploy/widgets.sql exists ok 128 - _build/sql/pg/revert/widgets.sql exists ok 129 - _build/sql/pg/deploy/func/add_user.sql exists ok 130 - _build/sql/pg/revert/func/add_user.sql exists ok 131 - Should have all notices ok 132 - no warnings ok t/change.t ......... 1..85 ok 1 - require App::Sqitch::Plan::Change; ok 2 - App::Sqitch::Plan::Change->can(...) ok 3 - The object isa App::Sqitch::Plan::Change ok 4 - The object isa App::Sqitch::Plan::Line ok 5 - It should be a deploy change ok 6 - It should not be a revert change ok 7 - And it should say so ok 8 - Timestamp isa App::Sqitch::DateTime ok 9 - path_segments should have the file name ok 10 - The deploy file should be correct ok 11 - The revert file should be correct ok 12 - The verify file should be correct ok 13 - The change should not be reworked ok 14 - path_segments should not include suffix ok 15 - Add a rework tag ok 16 - Reworked tag should be stored ok 17 - The change should be reworked ok 18 - path_segments should now include suffix ok 19 - The change should not be reworked ok 20 - Add two rework tags ok 21 - The change should again be reworked ok 22 - path_segments should now include the correct suffixc ok 23 - Name should format as "foo" ok 24 - Name should format with tags as "foo" ok 25 - Dependencies should format as "" ok 26 - Name should format with dependencies as "foo" ok 27 - Name should format op without dependencies as "foo" ok 28 - Change content should format correctly without dependencies ok 29 - Planner name shoudld default to user name ok 30 - Planner email shoudld default to user email ok 31 - Planner name and email should format properly ok 32 - should stringify to "foo" + planner ok 33 - Since tag should be undef ok 34 - Parent should be undef ok 35 - Old change info should be correct ok 36 - Old change ID should be correct ok 37 - Change info should be correct ok 38 - Change ID should be correct ok 39 - Create change with more stuff ok 40 - It should stringify correctly ok 41 - It should not be a deploy change ok 42 - It should be a revert change ok 43 - It should say so ok 44 - It should have a since tag ok 45 - It should have a parent ok 46 - Old info should not since tag ok 47 - Info should include parent and dependencies ok 48 - Should have no tags ok 49 - Add a tag ok 50 - Should have the tag ok 51 - Should format name with tags ok 52 - Add another tag ok 53 - Should have both tags ok 54 - Should format name with both tags ok 55 - Planner name and email should format properly ok 56 - Dependencies should format as "[foo bar @baz !dr_evil]" ok 57 - Name should format with dependencies as "yo/howdy [foo bar @baz !dr_evil]" ok 58 - Name should format op with dependencies as "yo/howdy [foo bar @baz !dr_evil]" ok 59 - Change content should format correctly with dependencies ok 60 - path_segments should include directories ok 61 - The deploy file should include the suffix ok 62 - The revert file should include the suffix ok 63 - The verify file should include the suffix ok 64 - Create change "baz" ok 65 - Create change "bar" ok 66 - Get deploy handle ok 67 - It should be the deploy file ok 68 - Get revert handle ok 69 - It should be the revert file ok 70 - Get verify handle ok 71 - It should be the verify file ok 72 - Create a change with explicit requires and conflicts ok 73 - requires should be set ok 74 - conflicts should be set ok 75 - Dependencies should include requires and conflicts ok 76 - Should find changes for requires ok 77 - Should find changes for conflicts ok 78 - Create change with UTF-8 name ok 79 - The name should be decoded text in old info ok 80 - Old change ID should be hashed from encoded UTF-8 ok 81 - The name should be decoded text in info ok 82 - Change ID should be hashed from encoded UTF-8 ok 83 - note_prompt() should work ok 84 - note_prompt() should work ok 85 - no warnings ok t/changelist.t ..... 1..298 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 find @FIRST at 1 ok 40 - Should have no offset for @FIRST ok 41 - Should find undef for @FIRST^ ok 42 - Offset should not be set ok 43 - Should find @FIRST~ at 2 ok 44 - Should have offset 1 for @FIRST~ ok 45 - Should find @FIRST~~ at 3 ok 46 - Should have offset 2 for @FIRST~ ok 47 - Should not find @FIRST~~~ ok 48 - Offset should not be set ok 49 - Should find @FIRST~2 at 3 ok 50 - Should have offset 2 for @FIRST~2 ok 51 - Should find @FIRST~3 at 4 ok 52 - Should have offset 3 for @FIRST~3 ok 53 - Should find @FIRST at 1 ok 54 - Should have no offset for @FIRST ok 55 - Should find undef for @FIRST^ ok 56 - Offset should not be set ok 57 - Should find @FIRST~ at 2 ok 58 - Should have offset 1 for @FIRST~ ok 59 - Should find @FIRST~~ at 3 ok 60 - Should have offset 2 for @FIRST~ ok 61 - Should not find @FIRST~~~ ok 62 - Offset should not be set ok 63 - Should find @FIRST~2 at 3 ok 64 - Should have offset 2 for @FIRST~2 ok 65 - Should find @FIRST~3 at 4 ok 66 - Should have offset 3 for @FIRST~3 ok 67 - Should get bar for @FIRST ok 68 - Should have no offset for @FIRST ok 69 - Should get nothing for @FIRST^ ok 70 - Offset should not be set ok 71 - Should get yo1 for @FIRST~ ok 72 - Should have offset 1 for @FIRST~ ok 73 - Should find bar for @FIRST ok 74 - Should have no offset for @FIRST ok 75 - Should find nothing for @FIRST^ ok 76 - Offset should not be set ok 77 - Should find yo1 for @FIRST~ ok 78 - Should have offset 1 for @FIRST~ ok 79 - Should find @LAST at 2 ok 80 - Should have offset 0 for @LAST ok 81 - Should find @LAST^ at 1 ok 82 - Should have offset 1 for @LAST^ ok 83 - Should find @LAST^^ at 1 ok 84 - Should have offset 2 for @LAST^^ ok 85 - Should not find @LAST^^^ ok 86 - Offset should not be set ok 87 - Should find @LAST at 2 ok 88 - Should have offset 0 for @LAST ok 89 - Should find @LAST^ at 1 ok 90 - Should have offset 1 for @LAST^ ok 91 - Should find @LAST^^ at 1 ok 92 - Should have offset 2 for @LAST^^ ok 93 - Should not find @LAST^^^ ok 94 - Offset should not be set ok 95 - Should get yo1 for @LAST ok 96 - Should have offset 0 for @LAST ok 97 - should get bar for @LAST^ ok 98 - Should have offset 1 for @LAST^ ok 99 - should get nothing for @LAST~ ok 100 - Offset should not be set ok 101 - Should find yo1 for @LAST ok 102 - Should have offset 0 for @LAST ok 103 - should find bar for @LAST^ ok 104 - Should have offset 1 for @LAST^ ok 105 - should find nothing for @LAST~ ok 106 - Offset should not be set ok 107 - Should get multiple indexes error looking for index of "yo" ok 108 - Multiple indexes error ident should be "plan" ok 109 - Multiple indexes message should be correct ok 110 - Should unknown tag error for invalid tag ok 111 - Unknown tag error ident should be "plan" ok 112 - Unknown taf message should be correct ok 113 - Should get 2 for yo@alpha ok 114 - Should get 1 for yo@alpha^ ok 115 - Should get 4 for yo@HEAD ok 116 - Should get 3 for yo@HEAD^ ok 117 - Should get undef for yo@HEAD~ ok 118 - Should get undef for yo@HEAD~~ ok 119 - Should get 0 for foo@alpha ok 120 - Should get 0 for foo@HEAD ok 121 - Should get 0 for foo@ROOT ok 122 - Should get undef for baz@alpha ok 123 - Should get 3 for baz@HEAD ok 124 - Should get 4 for @HEAD ok 125 - Should get 0 for @ROOT ok 126 - Should get 3 for @HEAD^ ok 127 - Should get undef for @HEAD~ ok 128 - Should get 1 for @ROOT~ ok 129 - Should get undef for @ROOT^ ok 130 - Should get foo for "foo" ok 131 - Should get bar for "foo~" ok 132 - Should get foo by ID ok 133 - Should get foo by old ID ok 134 - Should get bar for "bar" ok 135 - Should get foo for "bar^" ok 136 - Should get yo1 for "bar~" ok 137 - Should get baz for "bar~~" ok 138 - Should get yo2 for "bar~3" ok 139 - Should get bar by ID ok 140 - Should get bar by old ID ok 141 - Should get "yo" by the @alpha tag ID ok 142 - Should get "yo" by the @alpha tag old ID ok 143 - Should get baz for "baz" ok 144 - Should get baz by ID ok 145 - Should get baz by old ID ok 146 - Should get baz for "@HEAD^" ok 147 - Should get yo1 for "@HEAD^^" ok 148 - Should get bar for "@HEAD^3" ok 149 - Should get foo for "@ROOT" ok 150 - Should get yo1 for yo@alpha ok 151 - Should get yo2 for yo@HEAD ok 152 - Should get foo for foo@alpha ok 153 - Should get foo for foo@HEAD ok 154 - Should get undef for baz@alpha ok 155 - Should get baz for baz@HEAD ok 156 - Should get yo2 for "yo@HEAD" ok 157 - Should get foo for "foo@ROOT" ok 158 - Should find yo1 with "yo" ok 159 - Should find yo1 with "yo@alpha" ok 160 - Should find yo2 with yo@HEAD ok 161 - Should find foo for "foo" ok 162 - Should find foo for "foo@alpha" ok 163 - Should find foo for "foo@HEAD" ok 164 - Should find bar with "yo^" ok 165 - Should find foo with "yo^^" ok 166 - Should find foo with "yo^2" ok 167 - Should find baz with "yo~" ok 168 - Should find yo2 with "yo~~" ok 169 - Should find yo2 with "yo~2" ok 170 - Should find bar with "yo@alpha^" ok 171 - Should find baz with "yo@alpha^" ok 172 - Should find baz with yo@HEAD^ ok 173 - Should find baz with @HEAD^ ok 174 - Should find bar with @ROOT~^ ok 175 - Should get multiple indexes error looking for index of "yo" ok 176 - Multiple indexes error ident should be "plan" ok 177 - Multiple indexes message should be correct ok 178 - Should unknown tag error for invalid tag ok 179 - Unknown tag error ident should be "plan" ok 180 - Unknown taf message should be correct ok 181 - Push hi ok 182 - Count should now be six ok 183 - Changes should be in order with $hi at the end ok 184 - Should find "hi" at index 5 ok 185 - Should find "hi" by ID at index 5 ok 186 - Should find "hi" by old ID at index 5 ok 187 - Index of @ROOT should still be 0 ok 188 - Index of @HEAD should now be 5 ok 189 - First index of "non" should be undef ok 190 - First index of "foo" should be 0 ok 191 - First index of "foo~" should be 1 ok 192 - First index of "foo~~" should be 2 ok 193 - First index of "foo~3" should be 3 ok 194 - Should not find first index of "foo~~~" ok 195 - First index of "foo" since @ROOT should be undef ok 196 - First index of "bar" should be 1 ok 197 - First index of "yo" should be 2 ok 198 - First index of "yo" since @ROOT should be 2 ok 199 - First index of "baz" should be 3 ok 200 - First index of "baz^" should be 2 ok 201 - First index of "baz^^" should be 1 ok 202 - First index of "baz^3" should be 0 ok 203 - Should not find first index of "baz^^^" ok 204 - First index of "yo" since "@alpha" should be 4 ok 205 - First index of "yo" since "baz" should be 4 ok 206 - First index of "yo^" since "baz" should be 4 ok 207 - First index of "yo~" since "baz" should be 5 ok 208 - Should get an exception for an unknown change passed to first_index_of() ok 209 - Unknown change error ident should be "plan" ok 210 - Unknown change message should be correct ok 211 - Push so and fu ok 212 - Count should now be eight ok 213 - Index of @ROOT should remain 0 ok 214 - Index of @HEAD should now be 7 ok 215 - Changes should be in order with $so and $fu at the end ok 216 - Index beta ok 217 - Should find @beta at index 4 ok 218 - Should find yo2 via @beta ok 219 - Should find yo2 via @beta ID ok 220 - Should find yo2 via @beta old ID ok 221 - Tags should return both tags ok 222 - Should get 2 for last tagged index ok 223 - Should find "yo" as last tagged ok 224 - Should get 8 for count ok 225 - Should find fu as last change ok 226 - Should find last tagged index at 0 ok 227 - Should find last tagged at 0 ok 228 - Should get count 1 ok 229 - Should find last change at 0 ok 230 - Should find last tagged index at 1 ok 231 - Should find last tagged at 1 ok 232 - Should get count 2 ok 233 - Should find last change at 1 ok 234 - Should find last tagged index at 3 ok 235 - Should find last tagged at 3 ok 236 - Should get count 4 ok 237 - Should find last change at 3 ok 238 - Should find last tagged index at 4 ok 239 - Should find last tagged at 4 ok 240 - Should get count 5 ok 241 - Should find last change at 4 ok 242 - Should not find tag index in 0 changes ok 243 - Should not find tag in 0 changes ok 244 - Should find no change in empty plan ok 245 - Should not find tag index in 2 changes ok 246 - Should not find tag in 2 changes ok 247 - Should not find tag index in 4 changes ok 248 - Should not find tag in 4 changes ok 249 - The object isa App::Sqitch::Plan::ChangeList ok 250 - Should not find index of "foo" in empty list ok 251 - Should not find first index of "foo" in empty list ok 252 - Should get undef for "foo" in empty list ok 253 - Should find undef for "foo" in empty list ok 254 - Should not find index of "bar" in empty list ok 255 - Should not find first index of "bar" in empty list ok 256 - Should get undef for "bar" in empty list ok 257 - Should find undef for "bar" in empty list ok 258 - Should not find index of "HEAD" in empty list ok 259 - Should not find first index of "HEAD" in empty list ok 260 - Should get undef for "HEAD" in empty list ok 261 - Should find undef for "HEAD" in empty list ok 262 - Should not find index of "@HEAD" in empty list ok 263 - Should not find first index of "@HEAD" in empty list ok 264 - Should get undef for "@HEAD" in empty list ok 265 - Should find undef for "@HEAD" in empty list ok 266 - Should not find index of "ROOT" in empty list ok 267 - Should not find first index of "ROOT" in empty list ok 268 - Should get undef for "ROOT" in empty list ok 269 - Should find undef for "ROOT" in empty list ok 270 - Should not find index of "@ROOT" in empty list ok 271 - Should not find first index of "@ROOT" in empty list ok 272 - Should get undef for "@ROOT" in empty list ok 273 - Should find undef for "@ROOT" in empty list ok 274 - Should not find index of "alpha" in empty list ok 275 - Should not find first index of "alpha" in empty list ok 276 - Should get undef for "alpha" in empty list ok 277 - Should find undef for "alpha" in empty list ok 278 - Should not find index of "@alpha" in empty list ok 279 - Should not find first index of "@alpha" in empty list ok 280 - Should get undef for "@alpha" in empty list ok 281 - Should find undef for "@alpha" in empty list ok 282 - Should not find index of "FIRST" in empty list ok 283 - Should not find first index of "FIRST" in empty list ok 284 - Should get undef for "FIRST" in empty list ok 285 - Should find undef for "FIRST" in empty list ok 286 - Should not find index of "@FIRST" in empty list ok 287 - Should not find first index of "@FIRST" in empty list ok 288 - Should get undef for "@FIRST" in empty list ok 289 - Should find undef for "@FIRST" in empty list ok 290 - Should not find index of "LAST" in empty list ok 291 - Should not find first index of "LAST" in empty list ok 292 - Should get undef for "LAST" in empty list ok 293 - Should find undef for "LAST" in empty list ok 294 - Should not find index of "@LAST" in empty list ok 295 - Should not find first index of "@LAST" in empty list ok 296 - Should get undef for "@LAST" in empty list ok 297 - Should find undef for "@LAST" in empty list ok 298 - no warnings ok t/command.t ........ 1..96 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 - The object 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 - The object 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 - Invalid command error ident should be "config" ok 19 - Should get proper mesage for invalid command ok 20 - Should have exitval of 1 ok 21 - No command should yield usage ok 22 - No args should be passed to usage ok 23 - Should die on bad command module ok 24 - Load a "whu" command with "--feathers" optin ok 25 - The "feathers" attribute should be set ok 26 - Load an "add" command ok 27 - It isa App::Sqitch::Command::add ok 28 - command() should return hyphenated name ok 29 - App::Sqitch::Command->can('execute') ok 30 - Create a App::Sqitch::Command object ok 31 - Base class command should be "" ok 32 - Base object command should be "" ok 33 - Should get an error calling execute on command base class ok 34 - Execute exception ident should be "DEV" ok 35 - The execute() error message should be correct ok 36 - Create a subclass command object ok 37 - Subclass oject command should be "whu" ok 38 - Subclass class command should be "whu" ok 39 - Should get an error for un-overridden execute() method ok 40 - Un-overidden execute() exception ident should be "DEV" ok 41 - The unoverridden execute() error message should be correct ok 42 - App::Sqitch::Command->can(...) ok 43 - Create a App::Sqitch::Command object again ok 44 - Base _parse_opts should return an empty hash ok 45 - Create a subclass command object again ok 46 - Subclass should return an empty hash for no args ok 47 - Subclass should use options spec ok 48 - Subclass should parse options spec ok 49 - Args array should be cleared of options ok 50 - Should get warning for unknown option ok 51 - Should call _pod2usage on options parse failure ok 52 - Good command object isa App::Sqitch::Command::good ok 53 - Should get warning for unknown option when there are no options ok 54 - Should call _pod2usage on no options parse failure ok 55 - Call _pod2usage on base object ok 56 - Default params should be passed to Pod::Usage ok 57 - Call _pod2usage on "whu" command object ok 58 - Default params should be passed to Pod::Usage ok 59 - Config command object isa App::Sqitch::Command::config ok 60 - Call _pod2usage on "config" command object ok 61 - Should find sqitch-config docs to pass to Pod::Usage ok 62 - Good command object isa App::Sqitch::Command::good ok 63 - Call _pod2usage on "good" command object ok 64 - Should find App::Sqitch::Command::good docs to pass to Pod::Usage ok 65 - App::Sqitch::Command::good->can('usage') ok 66 - Should find App::Sqitch::Command::good docs to pass to Pod::Usage ok 67 - App::Sqitch::Command->can('verbosity') ok 68 - Verbosity should be from sqitch ok 69 - Verbosity should change with sqitch ok 70 - trace should work ok 71 - Should get no trace output for verbosity 2 ok 72 - trace_literal should work ok 73 - Should get no trace_literal output for verbosity 2 ok 74 - debug should work ok 75 - Should get no debug output for verbosity 1 ok 76 - debug_literal should work ok 77 - Should get no debug_literal output for verbosity 1 ok 78 - info should work ok 79 - Should get no info output for verbosity 0 ok 80 - info_literal should work ok 81 - Should get no info_literal output for verbosity 0 ok 82 - comment should work ok 83 - comment should work with verbosity 0 ok 84 - comment_literal should work ok 85 - comment_literal should work with verbosity 0 ok 86 - emit should work ok 87 - emit should work even with verbosity 0 ok 88 - emit_literal should work ok 89 - emit_literal should work even with verbosity 0 ok 90 - warn should work ok 91 - warn_literal should work ok 92 - threw Regexp ((?-xism:EXITED: 2)) ok 93 - usage should work ok 94 - threw Regexp ((?-xism:EXITED: 2)) ok 95 - usage should prefer sqitch-$command-usage ok 96 - 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 core.pg.host ok 68 - Should have emitted the merged core.pg.host ok 69 - Get core.pg.client ok 70 - Should have emitted the merged core.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 core.pg.client ok 107 - Should have emitted the system core.pg.client ok 108 - Attempt to get core.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 core.pg.host ok 115 - Should have emitted the user core.pg.host ok 116 - Get user core.pg.client ok 117 - Should have emitted the user core.pg.client ok 118 - Create local config get command ok 119 - Get local core.pg.db_name ok 120 - Should have emitted the local core.pg.db_name 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 core.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 core\.pg\..+ ok 243 - Should match all core.pg options ok 244 - Call get_regex on core\.pg\..+ and value regex ok 245 - Should match all core.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_regex 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 core.pg.user ok 285 - core.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("core.pg") should work ok 17 - no warnings ok t/datetime.t ....... 1..33 ok 1 - require App::Sqitch::DateTime; ok 2 - Construct a datetime object ok 3 - as_string_formats should be correct ok 4 - Date format "full" should yield "Friday, January 11, 2013 5:14:00 PM PST8PDT" ok 5 - Format "full" should be valid ok 6 - Date format "long" should yield "January 11, 2013 5:14:00 PM PST" ok 7 - Format "long" should be valid ok 8 - Date format "medium" should yield "Jan 11, 2013 5:14:00 PM" ok 9 - Format "medium" should be valid ok 10 - Date format "short" should yield "1/11/13 5:14 PM" ok 11 - Format "short" should be valid ok 12 - Date format "raw" should yield "2013-01-12T01:14:00Z" ok 13 - Format "raw" should be valid ok 14 - Date format "" should yield "2013-01-12T01:14:00Z" ok 15 - Date format "iso" should yield "2013-01-11 17:14:00 -0800" ok 16 - Format "iso" should be valid ok 17 - Date format "iso8601" should yield "2013-01-11 17:14:00 -0800" ok 18 - Format "iso8601" should be valid ok 19 - Date format "rfc" should yield "Fri, 11 Jan 2013 17:14:00 -0800" ok 20 - Format "rfc" should be valid ok 21 - Date format "rfc2822" should yield "Fri, 11 Jan 2013 17:14:00 -0800" ok 22 - Format "rfc2822" should be valid ok 23 - Date format "cldr:HH'h' mm'm'" should yield "17h 14m" ok 24 - Format "cldr:HH'h' mm'm'" should be valid ok 25 - Date format "strftime:%a at %H:%M:%S" should yield "Fri at 17:14:00" 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 + change and tag ok 299 - ID + change and tag error ident ident should be "DEV" ok 300 - ID + change and tag 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 v-string in use/require non-portable at t/deploy.t line 5. t/deploy.t ......... ok 1 - require App::Sqitch::Command::deploy; ok 2 - The class 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 - The object isa App::Sqitch::Command::deploy ok 10 - Should pick up variables from configuration ok 11 - The object isa App::Sqitch::Command::deploy ok 12 - to_target should be undef ok 13 - mode should be "all" ok 14 - Execute to "@alpha" ok 15 - "@alpha" "all", and 0 should be passed to the engine ok 16 - Execute ok 17 - undef, "all", and 0 should be passed to the engine ok 18 - Object with to, mode, log_only, and variables isa App::Sqitch::Command::deploy ok 19 - Execute again ok 20 - Engine should verify ok 21 - "foo", "tag", and 1 should be passed to the engine ok 22 - Vars should have been passed through to the engine ok 23 - "all" should be a valid mode ok 24 - "tag" should be a valid mode ok 25 - "change" should be a valid mode ok 26 - "foo" should not be a valid mode ok 27 - "bad" should not be a valid mode ok 28 - "gar" should not be a valid mode 1..28 ok t/engine.t ......... 1..544 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 array sqitch param ok 6 - Should get an exception for string sqitch param ok 7 - The object isa App::Sqitch::Engine ok 8 - Load a "whu" engine ok 9 - The object isa App::Sqitch::Engine::whu ok 10 - The sqitch attribute should be set ok 11 - Should die on invalid engine ok 12 - Should get load error message ok 13 - Should have relevant previoius exception ok 14 - No engine should die ok 15 - It should be the expected message ok 16 - Should die on bad engine module ok 17 - Should get another load error message ok 18 - Should have relevant previoius exception from the bad module ok 19 - App::Sqitch::Engine->can('name') ok 20 - Create a App::Sqitch::Engine object ok 21 - Base class name should be "" ok 22 - Base object name should be "" ok 23 - Create a subclass name object ok 24 - Subclass oject name should be "whu" ok 25 - Subclass class name should be "whu" ok 26 - App::Sqitch::Engine->can('config_vars') ok 27 - Should have no config vars in engine base class ok 28 - App::Sqitch::Engine->can(...) ok 29 - Should have no variables ok 30 - Add a variable ok 31 - Should have the variable ok 32 - Set more variables ok 33 - Should have all of the variables ok 34 - Should again have no variables ok 35 - Create a App::Sqitch::Engine object again ok 36 - Should get an unimplemented exception from initialized() ok 37 - Should get an unimplemented exception from initialize() ok 38 - Should get an unimplemented exception from register_project() ok 39 - Should get an unimplemented exception from run_file() ok 40 - Should get an unimplemented exception from run_handle() ok 41 - Should get an unimplemented exception from log_deploy_change() ok 42 - Should get an unimplemented exception from log_fail_change() ok 43 - Should get an unimplemented exception from log_revert_change() ok 44 - Should get an unimplemented exception from log_new_tags() ok 45 - Should get an unimplemented exception from is_deployed_tag() ok 46 - Should get an unimplemented exception from is_deployed_change() ok 47 - Should get an unimplemented exception from are_deployed_changes() ok 48 - Should get an unimplemented exception from change_id_for() ok 49 - Should get an unimplemented exception from changes_requiring_change() ok 50 - Should get an unimplemented exception from earliest_change_id() ok 51 - Should get an unimplemented exception from latest_change_id() ok 52 - Should get an unimplemented exception from deployed_changes() ok 53 - Should get an unimplemented exception from deployed_changes_since() ok 54 - Should get an unimplemented exception from load_change() ok 55 - Should get an unimplemented exception from name_for_change_id() ok 56 - Should get an unimplemented exception from current_state() ok 57 - Should get an unimplemented exception from current_changes() ok 58 - Should get an unimplemented exception from current_tags() ok 59 - Should get an unimplemented exception from search_events() ok 60 - Should get an unimplemented exception from registered_projects() ok 61 - Should get an unimplemented exception from change_offset_from_id() ok 62 - App::Sqitch::Engine->can('_load_changes') ok 63 - Should load changes with no tags ok 64 - Should load changes with multiple hashes with no tags ok 65 - Should load changes with tags ok 66 - Should load changes with tags with leading @ ok 67 - Should load changes with multiple hashes with tags ok 68 - Should load changes with reworked change ok 69 - Should load changes with reworked change & multiple tags ok 70 - Should load changes with doubly reworked change ok 71 - Create a subclass name object again ok 72 - App::Sqitch::Engine::whu->can(...) ok 73 - Deploy a change ok 74 - deploy_change should have called the proper methods ok 75 - Output should reflect the deployment ok 76 - Output should reflect success ok 77 - Only log a change ok 78 - log-only deploy_change should not have called run_file ok 79 - Output should reflect the logging ok 80 - Output should reflect deploy success ok 81 - Enable verification ok 82 - Deploy a change to be verified ok 83 - deploy_change with verification should run the verify file ok 84 - Output should reflect the logging ok 85 - Output should reflect deploy success ok 86 - Verify and log a change ok 87 - deploy_change with verification and log-only should not run deploy ok 88 - Output should reflect the logging ok 89 - Output should reflect deploy success ok 90 - Deploy change with error ok 91 - Error should be from run_file ok 92 - Should have logged change failure ok 93 - Output should reflect the deployment, even with failure ok 94 - Output should reflect deploy failure ok 95 - Deploy change with failed verification ok 96 - Error should be from deploy_change ok 97 - Should have logged verify failure ok 98 - Output should reflect the deployment, even with verify failure ok 99 - Output should reflect deploy failure ok 100 - Verify error should have been vented ok 101 - Deploy a change with no verify script ok 102 - deploy_change with no verify file should not run it ok 103 - Output should reflect the logging ok 104 - Output should reflect deploy success ok 105 - A warning about no verify file should have been emitted ok 106 - Revert a change ok 107 - revert_change should have called the proper methods ok 108 - Output should reflect reversion ok 109 - Output should acknowldge revert success ok 110 - Revert a change with log-only ok 111 - Log-only revert_change should not have run the change script ok 112 - Output should reflect logged reversion ok 113 - Output should acknowldge revert success ok 114 - Engine with sqitch with plan file ok 115 - Should get proper change from latest_change() ok 116 - Latest change ID should have been called with no arg ok 117 - Should again get proper change from latest_change() ok 118 - Latest change ID should have been called with offset arg ok 119 - Should get proper change from earliest_change() ok 120 - Earliest change ID should have been called with no arg ok 121 - Should again get proper change from earliest_change() ok 122 - Earliest change ID should have been called with offset arg ok 123 - App::Sqitch::Engine->can('_sync_plan') ok 124 - Plan should start at position -1 ok 125 - start_at should be undef ok 126 - Sync the plan ok 127 - Plan should still be at position -1 ok 128 - start_at should still be undef ok 129 - Should not have updated IDs ok 130 - Sync the plan again ok 131 - Plan should again be at position -1 ok 132 - start_at should again be undef ok 133 - Still should not have updated IDs ok 134 - Sync the plan to a tag ok 135 - Plan should now be at position 1 ok 136 - start_at should now be widgets@beta ok 137 - Should have updated IDs ok 138 - App::Sqitch::Engine->can('deploy') ok 139 - Deploy to @alpha ok 140 - Plan should be at position 1 ok 141 - Should have deployed through @alpha ok 142 - Should have called _deploy_all() ok 143 - Should have seen the output of the deploy to @alpha ok 144 - Both change names should be output ok 145 - Log-only deploy in $mode mode to @alpha ok 146 - Plan should be at position 1 ok 147 - Should have deployed through @alpha without running files ok 148 - Should have called _deploy_by_change() ok 149 - Should have seen the output of the deploy to @alpha ok 150 - Both change names should be output ok 151 - Log-only deploy in $mode mode to @alpha ok 152 - Plan should be at position 1 ok 153 - Should have deployed through @alpha without running files ok 154 - Should have called _deploy_by_tag() ok 155 - Should have seen the output of the deploy to @alpha ok 156 - Both change names should be output ok 157 - Log-only deploy in $mode mode to @alpha ok 158 - Plan should be at position 1 ok 159 - Should have deployed through @alpha without running files ok 160 - Should have called _deploy_all() ok 161 - Should have seen the output of the deploy to @alpha ok 162 - Both change names should be output ok 163 - Deploy to @alpha with tag mode ok 164 - Plan should again be at position 1 ok 165 - Should have deployed through @alpha without initialization ok 166 - Should have called _deploy_by_tag() ok 167 - Should have seen the output of the deploy to @alpha ok 168 - Both change names should be output ok 169 - Should get an error for an unknown target ok 170 - The exception should report the unknown target ok 171 - Only latest_item() should have been called ok 172 - Deploy to alpha thrice ok 173 - Only latest_item() should have been called ok 174 - Should notify user that already at @alpha ok 175 - Should fail targeting older change ok 176 - Should be a "deploy" error ok 177 - It should suggest using "revert" ok 178 - Should have called latest_item() and latest_tag() ok 179 - Deploy everything by change ok 180 - Plan should be at position 3 ok 181 - Should have deployed everything ok 182 - Should have called _deploy_by_change() ok 183 - Should have emitted deploy announcement and successes ok 184 - Should have seen the output of the deploy to the end ok 185 - Should catch exception for attempt to deploy to up-to-date DB ok 186 - Should be a "deploy" error ok 187 - And the message should reflect up-to-dateness ok 188 - It should have just fetched the latest change ID ok 189 - Should fail on invalid mode ok 190 - Should be a "deploy" error ok 191 - And the message should reflect the unknown mode ok 192 - It should have check for initialization ok 193 - Should have announced destination ok 194 - Engine with sqitch with no file ok 195 - Should die with no changes ok 196 - Should have the localized message ok 197 - It should have checked for the latest item ok 198 - Deploy changewise to index 1 ok 199 - Should changewise deploy to index 2 ok 200 - Should have seen output of each change ok 201 - Output should reflect deploy successes ok 202 - Deploy changewise to index 2 ok 203 - Should changewise deploy to from index 2 to index 3 ok 204 - Should have seen output of changes 2-3 ok 205 - Output should reflect deploy successes ok 206 - Die in _deploy_by_change ok 207 - It should have died in run_file ok 208 - It should have logged the failure ok 209 - Should have seen output for first change ok 210 - Output should reflect deploy failure ok 211 - Deploy tagwise to index 1 ok 212 - Should tagwise deploy to index 1 ok 213 - Should have seen output of each change ok 214 - Output should reflect deploy successes ok 215 - Deploy tagwise to index 3 ok 216 - Should tagwise deploy from index 2 to index 3 ok 217 - Should have seen output of changes 3-3 ok 218 - Output should reflect deploy successes ok 219 - Die in log_deploy_change ok 220 - Should get final deploy failure message ok 221 - It should have reverted back to the last deployed tag ok 222 - Should have seen deploy and revert messages (excluding curry revert) ok 223 - Output should reflect deploy successes and failure ok 224 - The original error should have been vented ok 225 - Die in _deploy_by_tag again ok 226 - Should again get final deploy failure message ok 227 - Should have logged back to the beginning ok 228 - Should have seen deploy and revert messages ok 229 - Output should reflect deploy successes and failure ok 230 - Should have one vented message ok 231 - And it should be the underlying error ok 232 - And it should had notified that all changes were reverted ok 233 - Die in _deploy_by_tag yet again ok 234 - Should die "Deploy failed" again ok 235 - Should have reverted back to last tag ok 236 - Should have user change reversion messages ok 237 - Output should reflect deploy successes and failure ok 238 - Should see underlying error and reversion message ok 239 - Die in _deploy_by_tag again ok 240 - Should once again get final deploy failure message ok 241 - Should have tried to revert one change ok 242 - Should have seen revert message ok 243 - Output should reflect deploy successes and failure ok 244 - Should get reversion failure message ok 245 - Deploy all to index 1 ok 246 - Should tagwise deploy to index 1 ok 247 - Should have seen output of each change ok 248 - Output should reflect deploy successes ok 249 - Deploy tagwise to index 2 ok 250 - Should tagwise deploy to from index 1 to index 2 ok 251 - Should have seen output of changes 3-4 ok 252 - Output should reflect deploy successe ok 253 - Die in _deploy_all ok 254 - Should get final deploy failure message ok 255 - It should have logged up to the failure ok 256 - Should have seen deploy and revert messages excluding revert for failed logging ok 257 - Output should reflect deploy successes and failures ok 258 - The original error should have been vented ok 259 - Die in _deploy_all again ok 260 - Should again get final deploy failure message ok 261 - Should have reveted all changes and tags ok 262 - Should see all changes revert ok 263 - Output should reflect deploy successes and failures ok 264 - Should notifiy user of error and rollback ok 265 - Die in _deploy_all on the last change ok 266 - Should once again get final deploy failure message ok 267 - Should have deployed to dr_evil and revered down to @alpha ok 268 - Should see changes revert back to @alpha ok 269 - Output should reflect deploy successes and failures ok 270 - Should notifiy user of error and rollback to @alpha ok 271 - Test is_deployed(tag) ok 272 - It should have called is_deployed_tag() ok 273 - Test is_deployed(change) ok 274 - It should have called is_deployed_change() ok 275 - App::Sqitch::Engine::whu->can('deploy_change') ok 276 - Deploy a change ok 277 - It should have been deployed ok 278 - Should have shown change name ok 279 - Output should reflect deploy success ok 280 - Shuld die on deploy failure ok 281 - Should be told the deploy failed ok 282 - It should failed to have been deployed ok 283 - Should have vented the original error ok 284 - Should have shown change name ok 285 - Output should reflect deploy failure ok 286 - App::Sqitch::Engine::whu->can('revert_change') ok 287 - Revert the change ok 288 - It should have been reverted ok 289 - Should have shown reverted change name ok 290 - And the revert failure should be "ok" ok 291 - App::Sqitch::Engine::whu->can('revert') ok 292 - Should get exception for no changes to revert ok 293 - Should be a revert exception ok 294 - Should have notified that there is nothing to revert ok 295 - Exit val should be 1 ok 296 - It should only have called deployed_changes() ok 297 - Nothing should have been output ok 298 - Revert should die on unknown change ok 299 - Should be another "revert" error ok 300 - The message should mention it is an unknown target ok 301 - Should have called change_id_for() with change name ok 302 - Nothing should have been output ok 303 - Revert should die on unknown change ID ok 304 - Should be another "revert" error ok 305 - The message should mention it is an unknown target ok 306 - Shoudl have called change_id_for() with change ID ok 307 - Nothing should have been output ok 308 - Revert should die on undeployed change ok 309 - Should be another "revert" error ok 310 - The message should mention that the target is not deployed ok 311 - change_id_for ok 312 - Nothing should have been output ok 313 - Should get error reverting when no subsequent changes ok 314 - No subsequent change error ident should be "revert" ok 315 - No subsequent change error exitval should be 1 ok 316 - No subsequent change error message should be correct ok 317 - Should have called change_id_for and deployed_changes_since ok 318 - Should get error for known but undeployed change ok 319 - No changes error should be "revert" ok 320 - No changes exitval should be 1 ok 321 - No changes message should be correct ok 322 - Should have called deployed_changes ok 323 - Revert all changes ok 324 - Should have reverted the changes in reverse order ok 325 - Should have prompted to revert all changes ok 326 - It should have said it was reverting all changes and listed them ok 327 - And the revert successes should be emitted ok 328 - Revert all changes log-only ok 329 - Log-only Should have reverted the changes in reverse order ok 330 - Log-only should have prompted to revert all changes ok 331 - It should have said it was reverting all changes and listed them ok 332 - And the revert successes should be emitted ok 333 - Should abort declined revert ok 334 - Declined revert ident should be "revert" ok 335 - Should have exited with value 1 ok 336 - Should have exited with proper message ok 337 - Should have called deployed_changes only ok 338 - Should have prompt to revert all changes ok 339 - It should have emitted nothing else ok 340 - Revert all changes with no prompt ok 341 - Should have reverted the changes in reverse order ok 342 - Should have no prompt ok 343 - It should have said it was reverting all changes and listed them ok 344 - And the revert successes should be emitted ok 345 - Revert to @alpha ok 346 - Should have reverted only changes after @alpha ok 347 - Should have prompt to revert to target ok 348 - Output should show what it reverts to ok 349 - And the revert successes should be emitted ok 350 - Should abort declined revert to @alpha ok 351 - Declined revert ident should be "revert" ok 352 - Should have exited with value 1 ok 353 - Should have exited with proper message ok 354 - Should have called revert methods ok 355 - Should have prompt to revert to @alpha ok 356 - It should have emitted nothing else ok 357 - Revert to @HEAD^ ok 358 - Should have reverted one changes for @HEAD^ ok 359 - Should have no prompt ok 360 - Output should show what it reverts to ok 361 - And the header and "ok" should be emitted ok 362 - App::Sqitch::Engine->can('change_id_for_depend') ok 363 - Should get error from change_id_for_depend when change not in plan ok 364 - Should get ident "plan" from change_id_for_depend ok 365 - Should have proper message from change_id_for_depend error ok 366 - Should get error from change_id_for_depend when no ID ok 367 - Should get ident "engine" when no ID ok 368 - Should have proper messag from change_id_for_depend error ok 369 - Get a change id ok 370 - Should have passed dependency params to change_id_for() ok 371 - App::Sqitch::Engine->can('find_change') ok 372 - find_change() should work ok 373 - Its parameters should have been passed to change_id_for and change_offset_from_id ok 374 - find_change() should work ok 375 - Project and offset should have been passed off ok 376 - App::Sqitch::Engine->can('verify_change') ok 377 - Verify a change ok 378 - The change file should have been run ok 379 - Should have no info output ok 380 - Verify a change with no verify script. ok 381 - No abstract methods should be called ok 382 - Should have no info output ok 383 - A warning about no verify file should have been emitted ok 384 - App::Sqitch::Engine::whu->can('check_deploy_dependencies') ok 385 - All planned changes should be okay ok 386 - Should have called are_deployed_changes ok 387 - Dependencies should check out even when within those to be deployed ok 388 - Resolved ID should be populated ok 389 - Conflict should throw exception ok 390 - Should be a "deploy" error ok 391 - Should have localized message about the local conflict ok 392 - Conflict should throw exception ok 393 - Should be a "deploy" error ok 394 - Should have localized message about conflicts ok 395 - Should have called change_id_for() twice ok 396 - Conflicting dependencies should have no resolved IDs ok 397 - Conflict should throw another exception ok 398 - Should be a "deploy" error ok 399 - Should have localized message about all three conflicts ok 400 - Should have called change_id_for() twice ok 401 - Conflicting dependencies should have no resolved IDs ok 402 - Missing dependencies should throw exception ok 403 - Should be another "deploy" error ok 404 - Should have localized message missing dependencies ok 405 - Should have called check_requires ok 406 - Missing requirements should not have resolved ok 407 - Missing dependencies should throw exception ok 408 - Should be another "deploy" error ok 409 - Should have localized conflicts and required error messages ok 410 - Should have called check_requires ok 411 - Missing requirements should not have resolved ok 412 - App::Sqitch::Engine::whu->can('check_revert_dependencies') ok 413 - Should get error reverting change another depend on ok 414 - Dependent error ident should be "revert" ok 415 - Dependent error message should be correct ok 416 - It should have check for requiring changes ok 417 - Should get error reverting change others depend on ok 418 - Dependent error ident should be "revert" ok 419 - Dependent error message should be correct ok 420 - It should have check for requiring changes ok 421 - Should get error reverting change others depend on ok 422 - Dependent error ident should be "revert" ok 423 - Dependent error message should be correct ok 424 - It should have checked twice for requiring changes ok 425 - App::Sqitch::Engine::whu->can('_trim_to') ok 426 - _trim_to should complain about a nonexistent change key ok 427 - _trim_to nonexistent key error ident should be "foo" ok 428 - _trim_to nonexistent key error message should be correct ok 429 - _trim_to should complain about an undeployed change key ok 430 - _trim_to undeployed change error ident should be "yep" ok 431 - _trim_to undeployed change error message should be correct ok 432 - _trim_to should complain about an unplanned change key ok 433 - _trim_to unplanned change error ident should be "oop" ok 434 - _trim_to unplanned change error message should be correct ok 435 - _trim_to should find "roles" at index 0 ok 436 - Changes should be untrimmed ok 437 - _trim_to should find "widgets" at index 2 ok 438 - First two changes should be shifted off ok 439 - _trim_to should find "dr_evil" at last index ok 440 - Changes should be untrimmed ok 441 - _trim_to should find "tacos" at index 4 ok 442 - Last two changes should be popped off ok 443 - _trim_to should find "@HEAD" at index 2 ok 444 - First two changes should be shifted off ok 445 - _trim_to should find "@ROOT" at index 2 ok 446 - All but First three changes should be popped off ok 447 - App::Sqitch::Engine::whu->can('_verify_changes') ok 448 - Verify of a single change should return errcount 0 ok 449 - Declared output should list the change ok 450 - Emitted Output should reflect the verification of the change ok 451 - Should have no comments ok 452 - The verify script should have been run ok 453 - Verify of another single change should return errcount 0 ok 454 - Declared output should list the change ok 455 - Emitted Output should reflect the verification of the change ok 456 - Should have no comments ok 457 - A warning about no verify file should have been emitted ok 458 - The verify script should not have been run ok 459 - Verify of two changes should return errcount 0 ok 460 - Declared output should list both changes ok 461 - Emitted Output should reflect the verification of the changes ok 462 - Should have no comments ok 463 - A warning about no verify file should have been emitted ok 464 - Only one verify script should have been run ok 465 - Verify of two changes and show pending ok 466 - Delcared output should list deployed changes ok 467 - Emitted output should include list of pending changes ok 468 - Should have no comments ok 469 - A warning about no verify file should have been emitted ok 470 - Only one verify script should have been run ok 471 - Verify of a change not in the plan should return errcount 1 ok 472 - Declared Output should reflect the verification of the change ok 473 - Emitted Output should reflect the failure of the verify ok 474 - Should have a comment about the change missing from the plan ok 475 - No verify script should have been run ok 476 - Verify of an out-of-order change should return errcount 1 ok 477 - Declared output should reflect the verification of the change ok 478 - Emitted Output should reflect the failure of the verify ok 479 - Should have a comment about the out-of-order change ok 480 - The verify script should have been run ok 481 - Verify of a change with 2 issues should return 2 ok 482 - Declared output should reflect the verification of the change ok 483 - Emitted Output should reflect the failure of the verify ok 484 - Should have comment about the out-of-order change and script failure ok 485 - No abstract methods should have been called ok 486 - Verify of 2 changes with 2 issues each should return 4 ok 487 - Declraed output should reflect the verification of both changes ok 488 - Emitted Output should reflect the failure of both verifies ok 489 - Should have comment about the out-of-order changes and script failures ok 490 - No abstract methods should have been called ok 491 - _verify_changes with two undeployed changes should returne 2 ok 492 - Listed changes should be both deployed and undeployed ok 493 - Emitted Output should reflect 1 pass ok 494 - Should have comments for undeployed changes ok 495 - No abstract methods should have been called ok 496 - App::Sqitch::Engine::whu->can('verify') ok 497 - Should get error for no deployed changes ok 498 - No deployed changes ident should be "verify" ok 499 - No deployed changes exitval should be 1 ok 500 - No deployed changes message should be correct ok 501 - Notification of the verify should be emitted ok 502 - Should get error for no changes ok 503 - No changes ident should be "verify" ok 504 - No changes exitval should be 1 ok 505 - No changes message should be correct ok 506 - Notification of the verify should be emitted ok 507 - Should get error for no planned changes ok 508 - No planned changes ident should be "verify" ok 509 - No planned changes exitval should be 2 ok 510 - No planned changes message should be correct ok 511 - Notification of the verify should be emitted ok 512 - Verify one change ok 513 - Notification of the verify should be emitted ok 514 - The one change name should be declared ok 515 - Success should be emitted ok 516 - Should have no comments ok 517 - Verify two changes ok 518 - Notification of the verify should be emitted ok 519 - The two change names should be declared ok 520 - Both successes should be emitted ok 521 - Should have no comments ok 522 - Should have warning about missing verify script ok 523 - Verify with a reworked change changes ok 524 - Notification of the verify should be emitted ok 525 - The two change names should be emitted ok 526 - Both successes should be emitted ok 527 - Should have no comments ok 528 - Should have no warnings ok 529 - Verify two specific changes ok 530 - Notification of the verify should be emitted ok 531 - The two change names should be emitted ok 532 - Both successes should be emitted ok 533 - Should have no comments ok 534 - Should have warning about missing verify script ok 535 - Should get failure for failing verify scripts ok 536 - Failed verify ident should be "verify" ok 537 - Failed verify exitval should be 2 ok 538 - Faield verify message should be correct ok 539 - Notification of the verify should be emitted ok 540 - Both change names should be declared ok 541 - Output should include the failure report ok 542 - Should have the errors in comments ok 543 - Nothing should have been vented ok 544 - no warnings ok t/help.t ........... 1..11 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 - Should get an exception for "nonexistent" help ok 8 - Exception ident should be "help" ok 9 - Should get failure message for nonexistent command ok 10 - Exception exit val should be 1 ok 11 - no warnings ok t/init.t ........... 1..158 ok 1 - use App::Sqitch::Command::init; ok 2 - App::Sqitch::Command::init isa App::Sqitch::Command ok 3 - New init object isa App::Sqitch::Command::init ok 4 - App::Sqitch::Command::init->can(...) ok 5 - Options should be correct ok 6 - Default config should be empty ok 7 - Should accept a URI in options ok 8 - processed uri option isa URI ok 9 - App::Sqitch::Command::init->can('make_directories') ok 10 - dir init.mkdir does not exist ok 11 - dir init.mkdir/deploy does not exist ok 12 - dir init.mkdir/revert does not exist ok 13 - dir init.mkdir/verify does not exist ok 14 - Make the directories ok 15 - dir init.mkdir exists ok 16 - dir init.mkdir/deploy exists ok 17 - dir init.mkdir/revert exists ok 18 - dir init.mkdir/verify exists ok 19 - Each should have been sent to info ok 20 - Make the directories again ok 21 - Nothing should have been sent to info ok 22 - Make the directories once more ok 23 - revert dir exists again ok 24 - Should have noted creation of revert dir ok 25 - Should fail on permission issue ok 26 - Permission error should have ident "init" ok 27 - The permission error should be formatted properly ok 28 - App::Sqitch::Command::init->can('write_config') ok 29 - Another init object ok 30 - nonexistent.conf does not exist ok 31 - Write the config ok 32 - nonexistent.conf exists ok 33 - The configuration file should have no variables ok 34 - The creation should be sent to info ok 35 - All in core section should be commented-out ok 36 - Another init object ok 37 - Write the config ok 38 - nonexistent.conf exists ok 39 - The configuration should have been written with the one setting ok 40 - The creation should be sent to info ok 41 - Other settings should be commented-out ok 42 - Write the config again ok 43 - The configuration should be unchanged ok 44 - Nothing should have been sent to info ok 45 - Make an init object with user config ok 46 - nonexistent.conf does not exist ok 47 - Write the config with a user conf ok 48 - nonexistent.conf exists ok 49 - The configuration should just have core.top_dir ok 50 - The creation should be sent to info again ok 51 - Other settings should be commented-out ok 52 - Make an init object with system config ok 53 - nonexistent.conf does not exist ok 54 - Write the config with a system conf ok 55 - nonexistent.conf exists ok 56 - The configuration should have local and system config ok 57 - The creation should be sent to info again ok 58 - Other settings should be commented-out ok 59 - Create new init with sqitch non-default attributes ok 60 - Write the config with core attrs ok 61 - The creation should be sent to info once more ok 62 - The configuration should have been written with all the core values ok 63 - Create new init with sqitch with non-default engine attributes ok 64 - Write the config with engine attrs ok 65 - The creation should be sent to info yet again ok 66 - The configuration should have been written with sqlite values ok 67 - sqitch_prefix should be included in a comment ok 68 - Create new init with sqitch with default engine attributes ok 69 - Write the config with engine attrs ok 70 - The creation should be sent to info again again ok 71 - The configuration should have been written with only the engine var ok 72 - Engine section should be present but commented-out ok 73 - Make an init with sqlite and user config ok 74 - nonexistent.conf does not exist ok 75 - Write the config with sqlite config ok 76 - The creation should be sent to info once more ok 77 - New config should have been written with sqlite values ok 78 - Configured client should be included in a comment ok 79 - Configured sqitch_prefix should be included in a comment ok 80 - Create new init with sqitch with more non-default engine attributes ok 81 - Write the config with more engine attrs ok 82 - The creation should be sent to info one more time ok 83 - The configuration should have been written with pg values ok 84 - sqitch_schema should be included in a comment ok 85 - password should be included in a comment ok 86 - Create new init with sqitch with default engine attributes ok 87 - Write the config with engine attrs ok 88 - The creation should be sent to info again again again ok 89 - The configuration should have been written with only the engine var ok 90 - Engine section should be present but commented-out ok 91 - Make an init with pg and user config ok 92 - nonexistent.conf does not exist ok 93 - Write the config with pg config ok 94 - The pg config creation should be sent to info ok 95 - The configuration should have been written with pg options ok 96 - Configured sqitch_schema should be in a comment ok 97 - password should be included in a comment ok 98 - Configured username should be in a comment ok 99 - Configured host should be in a comment ok 100 - App::Sqitch::Command::init->can('write_plan') ok 101 - Plan file should not yet exist ok 102 - Write the plan file ok 103 - The plan creation should be sent to info ok 104 - Plan file should now exist ok 105 - The contents should be correct ok 106 - Write the plan file again ok 107 - The file should not be overwritten ok 108 - Create new init with sqitch with project and URI ok 109 - Write the plan file again ok 110 - The plan creation should be sent to info againq ok 111 - Plan file should again exist ok 112 - The plan should include the project and uri pragmas ok 113 - App::Sqitch::Command::init->can('_validate_project') ok 114 - No project should yield usage ok 115 - No args should be passed to usage ok 116 - Should get error for invalid project name "^foo" ok 117 - Bad project "^foo" ident should be "init" ok 118 - Bad project "^foo" error message should be correct ok 119 - Should get error for invalid project name "foo^" ok 120 - Bad project "foo^" ident should be "init" ok 121 - Bad project "foo^" error message should be correct ok 122 - Should get error for invalid project name "foo^6" ok 123 - Bad project "foo^6" ident should be "init" ok 124 - Bad project "foo^6" error message should be correct ok 125 - Should get error for invalid project name "foo^666" ok 126 - Bad project "foo^666" ident should be "init" ok 127 - Bad project "foo^666" error message should be correct ok 128 - Should get error for invalid project name "%hi" ok 129 - Bad project "%hi" ident should be "init" ok 130 - Bad project "%hi" error message should be correct ok 131 - Should get error for invalid project name "hi!" ok 132 - Bad project "hi!" ident should be "init" ok 133 - Bad project "hi!" error message should be correct ok 134 - Should get error for invalid project name "foo@bar" ok 135 - Bad project "foo@bar" ident should be "init" ok 136 - Bad project "foo@bar" error message should be correct ok 137 - Should get error for invalid project name "foo:bar" ok 138 - Bad project "foo:bar" ident should be "init" ok 139 - Bad project "foo:bar" error message should be correct ok 140 - Should get error for invalid project name "+foo" ok 141 - Bad project "+foo" ident should be "init" ok 142 - Bad project "+foo" error message should be correct ok 143 - Should get error for invalid project name "-foo" ok 144 - Bad project "-foo" ident should be "init" ok 145 - Bad project "-foo" error message should be correct ok 146 - Should get error for invalid project name "@foo" ok 147 - Bad project "@foo" ident should be "init" ok 148 - Bad project "@foo" error message should be correct ok 149 - Execute! ok 150 - dir plan.dir exists ok 151 - dir plan.dir/deploy exists ok 152 - dir plan.dir/revert exists ok 153 - dir plan.dir/verify exists ok 154 - nonexistent.conf exists ok 155 - plan.dir/sqitch.plan exists ok 156 - Should have status messages ok 157 - The plan should have the --project name ok 158 - no warnings ok t/linelist.t ....... 1..22 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 - no warnings ok t/log.t ............ 1..236 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 - Should get empty hash for no config or options ok 7 - Should get error for invalid date format in config ok 8 - Invalid date format error ident should be "datetime" ok 9 - Invalid date format error message should be correct ok 10 - Should get error for invalid date format in optsions ok 11 - Invalid date format error ident should be "log" ok 12 - Invalid date format error message should be correct ok 13 - Should get error for invalid format in config ok 14 - Invalid format error ident should be "log" ok 15 - Invalid format error message should be correct ok 16 - Should get error for invalid format in optsions ok 17 - Invalid format error ident should be "log" ok 18 - Invalid format error message should be correct ok 19 - Configuration should respect --no-color, setting "never" ok 20 - Configuration should respect --no-color even when configure is set ok 21 - Configuration should respect color option ok 22 - Colors should be disabled for "never" ok 23 - Configuration should respect color config ok 24 - Colors should be disabled for "never" ok 25 - Configuration should respect color option ok 26 - Colors should be enabled for "always" ok 27 - Configuration should respect color config ok 28 - Colors should be enabled for "always" ok 29 - Configuration should respect color option ok 30 - Auto color option should change nothing ok 31 - Configuration should respect color config ok 32 - Auto color config should change nothing ok 33 - Configuration should respect color option ok 34 - Auto color option should change nothing ok 35 - Configuration should respect color config ok 36 - Auto color config should change nothing 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 "2013-01-11 17:14:10 -0800" ok 99 - Format "%{date:rfc}c" should output "Fri, 11 Jan 2013 17:14:10 -0800" ok 100 - Format "%{d:long}c" should output "January 11, 2013 5:14:10 PM PST" ok 101 - Format "%{d:cldr:HH'h' mm'm'}c" should output "17h 14m" ok 102 - Format "%{d:strftime:%a at %H:%M:%S}c" should output "Fri at 17:14:10" 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 "2013-01-10 17:14:10 -0800" ok 109 - Format "%{date:rfc}p" should output "Thu, 10 Jan 2013 17:14:10 -0800" ok 110 - Format "%{d:long}p" should output "January 10, 2013 5:14:10 PM PST" ok 111 - Format "%{d:cldr:HH'h' mm'm'}p" should output "17h 14m" ok 112 - Format "%{d:strftime:%a at %H:%M:%S}p" should output "Thu at 17:14:10" 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 2013-01-12T01:14:10Z[newline]" ok 180 - Should get exception for format "%_" ok 181 - %_ error ident should be "log" 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 "log" 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 "log" 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 "log" 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 get error for empty event table ok 221 - no events error ident should be "log" ok 222 - no events exit val should be 1 ok 223 - no events error message should be correct ok 224 - Search should have been limited to one row ok 225 - Execute log ok 226 - The proper args should have been passed to search_events ok 227 - The change should have been paged ok 228 - log with attributes isa App::Sqitch::Command::log ok 229 - Execute log with attributes ok 230 - All params should have been passed to search_events ok 231 - Both changes should have been paged ok 232 - log with bad format isa App::Sqitch::Command::log ok 233 - Should get an exception for a bad format code ok 234 - bad format code format error ident should be "log" ok 235 - bad format code format error message should be correct ok 236 - no warnings ok t/options.t ........ 1..25 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 - _pod2usage should be called ok 10 - Should exit for invalid option ok 11 - App::Sqitch->can('_parse_core_opts') ok 12 - Should have default config for no options ok 13 - Ask for help ok 14 - Should have been helped ok 15 - Ask for man ok 16 - Should have been manned ok 17 - Should parse lots of options ok 18 - top_dir isa Path::Class::Dir ok 19 - deploy_dir isa Path::Class::Dir ok 20 - revert_dir isa Path::Class::Dir ok 21 - verify_dir isa Path::Class::Dir ok 22 - --quiet should trump verbosity. ok 23 - Short options should work ok 24 - Run _pod2usage ok 25 - Proper args should have been passed to Pod::Usage ok t/pg.t ............. ok 1 - require App::Sqitch::Engine::pg; ok 2 - config_vars should return three vars ok 3 - The object isa App::Sqitch::Engine::pg ok 4 - client should default to psql ok 5 - sqitch_schema default should be "sqitch" ok 6 - username default should be undef ok 7 - password default should be undef ok 8 - db_name default should be undef ok 9 - host default should be undef ok 10 - port default should be undef ok 11 - Destination should fall back on environment variables ok 12 - psql command should be std opts-only ok 13 - The object isa App::Sqitch::Engine::pg ok 14 - Set some variables ok 15 - Variables should be passed to psql via --set ok 16 - Destination should read $PGDATABASE ok 17 - Destination should read $PGUSER ok 18 - Destination should fall back on sysuser ok 19 - Destination should read username ok 20 - Destination should prefer $PGDATABASE to username ok 21 - Create another pg ok 22 - client should be as configured ok 23 - username should be as configured ok 24 - password should be as configured ok 25 - db_name should be as configured ok 26 - destination should default to db_name ok 27 - host should be as configured ok 28 - port should be as configured ok 29 - sqitch_schema should be as configured ok 30 - psql command should be configured ok 31 - Create a pg with sqitch with options ok 32 - client should be as optioned ok 33 - username should be as optioned ok 34 - password should still be as configured ok 35 - db_name should be as optioned ok 36 - destination should still default to db_name ok 37 - host should be as optioned ok 38 - port should be as optioned ok 39 - sqitch_schema should still be as configured ok 40 - psql command should be as optioned ok 41 - App::Sqitch::Engine::pg->can(...) ok 42 - PGPASSWORD should be "s3cr3t" ok 43 - Call _run ok 44 - Command should be passed to run() ok 45 - PGPASSWORD should be "s3cr3t" ok 46 - Call _spool ok 47 - Command should be passed to spool() ok 48 - PGPASSWORD should be "s3cr3t" ok 49 - Call _capture ok 50 - Command should be passed to capture() ok 51 - Create a pg with sqitch with no pw ok 52 - PGPASSWORD should not exist ok 53 - Call _run again ok 54 - Command should be passed to run() again ok 55 - PGPASSWORD should not exist ok 56 - Call _spool again ok 57 - Command should be passed to spool() again ok 58 - PGPASSWORD should not exist ok 59 - Call _capture again ok 60 - Command should be passed to capture() again ok 61 - PGPASSWORD should not exist ok 62 - Run foo/bar.sql ok 63 - File should be passed to run() ok 64 - PGPASSWORD should not exist ok 65 - Spool a "file handle" ok 66 - Handle should be passed to spool() ok 67 - PGPASSWORD should not exist ok 68 - Verify foo/bar.sql ok 69 - Verify file should be passed to capture() ok 70 - PGPASSWORD should not exist ok 71 - Verify foo/bar.sql again ok 72 - Verifile file should be passed to run() for high verbosity ok 73 - App::Sqitch::Engine::pg->can('_ts2char') ok 74 - _ts2char should work ok 75 - App::Sqitch::Engine::pg->can('_dt') ok 76 - Return value of _dt() isa App::Sqitch::DateTime ok 77 - DateTime year should be set ok 78 - DateTime month should be set ok 79 - DateTime day should be set ok 80 - DateTime hour should be set ok 81 - DateTime minute should be set ok 82 - DateTime second should be set ok 83 - DateTime TZ should be set ok 84 - App::Sqitch::Engine::pg->can(...) 1..0 # SKIP Unable to connect to a database for testing: DBD::Pg module required to manage PostgreSQL ok 85 # skip Unable to connect to a database for testing: DBD::Pg module required to manage PostgreSQL 1..85 ok t/plan.t ........... ok 1 - use App::Sqitch::Plan; ok 2 - App::Sqitch::Plan->can(...) ok 3 - The object isa App::Sqitch::Plan ok 4 - Should parse simple "widgets.plan" ok 5 - Should have sorted changes ok 6 - changes isa ARRAY ok 7 - lines isa ARRAY ok 8 - All "widgets.plan" changes should be parsed ok 9 - All "widgets.plan" lines should be parsed ok 10 - Should parse multi-tagged "multi.plan" ok 11 - Should have sorted changes twice ok 12 - Should have captured the multi pragmas ok 13 - Should have "multi.plan" lines and changes ok 14 - Should read plan with no tags ok 15 - Should have sorted changes ok 16 - Should have captured the changes-only pragmas ok 17 - Should have lines and changes for tagless plan ok 18 - Should die on plan with bad change name ok 19 - Bad change name error ident should be "plan" ok 20 - And the bad change name error message should be correct ok 21 - Should not have sorted changes ok 22 - Should die on plan with bad name "+^foo" ok 23 - Exception ident should be "plan" ok 24 - And "+^foo" should trigger the appropriate message ok 25 - Should not have sorted changes ok 26 - Should die on plan with bad name "@^foo" ok 27 - Exception ident should be "plan" 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 "plan" 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 "plan" 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^6" ok 39 - Exception ident should be "plan" ok 40 - And "+foo^6" 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 "plan" 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^666" ok 47 - Exception ident should be "plan" ok 48 - And "+foo^666" 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 "plan" 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 "+%hi" ok 55 - Exception ident should be "plan" ok 56 - And "+%hi" 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 "plan" 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 "plan" 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 "plan" 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 "+foo@bar" ok 71 - Exception ident should be "plan" ok 72 - And "+foo@bar" 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 "plan" 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 "plan" 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 "plan" 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" ok 87 - Exception ident should be "plan" ok 88 - And "++foo" 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 "plan" 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 "plan" 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 "plan" 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 "plan" 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 "plan" ok 108 - And "@@foo" should trigger the appropriate message ok 109 - Should not have sorted changes ok 110 - Should parse "foo" ok 111 - Should have captured the foo pragmas ok 112 - Should have pragmas in plan with change "foo" ok 113 - Should parse "@foo" ok 114 - Should have pragmas in plan with tag "foo" ok 115 - Should have line and change for "@foo" ok 116 - Should parse "12" ok 117 - Should have captured the 12 pragmas ok 118 - Should have pragmas in plan with change "12" ok 119 - Should parse "@12" ok 120 - Should have pragmas in plan with tag "12" ok 121 - Should have line and change for "@12" ok 122 - Should parse "t" ok 123 - Should have captured the t pragmas ok 124 - Should have pragmas in plan with change "t" ok 125 - Should parse "@t" ok 126 - Should have pragmas in plan with tag "t" ok 127 - Should have line and change for "@t" ok 128 - Should parse "6" ok 129 - Should have captured the 6 pragmas ok 130 - Should have pragmas in plan with change "6" ok 131 - Should parse "@6" ok 132 - Should have pragmas in plan with tag "6" ok 133 - Should have line and change for "@6" ok 134 - Should parse "阱阪阬" ok 135 - Should have captured the 阱阪阬 pragmas ok 136 - Should have pragmas in plan with change "阱阪阬" ok 137 - Should parse "@阱阪阬" ok 138 - Should have pragmas in plan with tag "阱阪阬" ok 139 - Should have line and change for "@阱阪阬" ok 140 - Should parse "foo/bar" ok 141 - Should have captured the foo/bar pragmas ok 142 - Should have pragmas in plan with change "foo/bar" ok 143 - Should parse "@foo/bar" ok 144 - Should have pragmas in plan with tag "foo/bar" ok 145 - Should have line and change for "@foo/bar" ok 146 - Should parse "beta1" ok 147 - Should have captured the beta1 pragmas ok 148 - Should have pragmas in plan with change "beta1" ok 149 - Should parse "@beta1" ok 150 - Should have pragmas in plan with tag "beta1" ok 151 - Should have line and change for "@beta1" ok 152 - Should parse "foo_" ok 153 - Should have captured the foo_ pragmas ok 154 - Should have pragmas in plan with change "foo_" ok 155 - Should parse "@foo_" ok 156 - Should have pragmas in plan with tag "foo_" ok 157 - Should have line and change for "@foo_" ok 158 - Should parse "_foo" ok 159 - Should have captured the _foo pragmas ok 160 - Should have pragmas in plan with change "_foo" ok 161 - Should parse "@_foo" ok 162 - Should have pragmas in plan with tag "_foo" ok 163 - Should have line and change for "@_foo" ok 164 - Should parse "v1.0-1b" ok 165 - Should have captured the v1.0-1b pragmas ok 166 - Should have pragmas in plan with change "v1.0-1b" ok 167 - Should parse "@v1.0-1b" ok 168 - Should have pragmas in plan with tag "v1.0-1b" ok 169 - Should have line and change for "@v1.0-1b" ok 170 - Should parse "v1.2-1" ok 171 - Should have captured the v1.2-1 pragmas ok 172 - Should have pragmas in plan with change "v1.2-1" ok 173 - Should parse "@v1.2-1" ok 174 - Should have pragmas in plan with tag "v1.2-1" ok 175 - Should have line and change for "@v1.2-1" ok 176 - Should parse "v1.2+1" ok 177 - Should have captured the v1.2+1 pragmas ok 178 - Should have pragmas in plan with change "v1.2+1" ok 179 - Should parse "@v1.2+1" ok 180 - Should have pragmas in plan with tag "v1.2+1" ok 181 - Should have line and change for "@v1.2+1" ok 182 - Should parse "v1.2_1" ok 183 - Should have captured the v1.2_1 pragmas ok 184 - Should have pragmas in plan with change "v1.2_1" ok 185 - Should parse "@v1.2_1" ok 186 - Should have pragmas in plan with tag "v1.2_1" ok 187 - Should have line and change for "@v1.2_1" ok 188 - Should have sorted changes 18 times ok 189 - Should die on plan with reserved tag "@HEAD" ok 190 - @HEAD exception should have ident "plan" ok 191 - And the @HEAD error message should be correct ok 192 - Should have sorted changes once ok 193 - Should die on plan with reserved tag "@ROOT" ok 194 - @ROOT exception should have ident "plan" ok 195 - And the @ROOT error message should be correct ok 196 - Should have sorted @ROOT changes nonce ok 197 - Should die on plan with reserved tag "@FIRST" ok 198 - @FIRST exception should have ident "plan" ok 199 - And the @FIRST error message should be correct ok 200 - Should have sorted @FIRST changes nonce ok 201 - Should die on plan with reserved tag "@LAST" ok 202 - @LAST exception should have ident "plan" ok 203 - And the @LAST error message should be correct ok 204 - Should have sorted @LAST changes nonce ok 205 - Should die on plan with SHA1 change name ok 206 - The SHA1 error ident should be "plan" ok 207 - And the SHA1 error message should be correct ok 208 - Should have sorted changes nonce ok 209 - Should die on plan with tag but no preceding change ok 210 - The missing change error ident should be "plan" ok 211 - And the missing change error message should be correct ok 212 - Should have sorted changes nonce ok 213 - Should die on plan with dupe tag ok 214 - The dupe tag error ident should be "plan" ok 215 - And the missing change error message should be correct ok 216 - Should have sorted changes twice ok 217 - Should die on plan with dupe change ok 218 - The dupe change error ident should be "plan" ok 219 - And the dupe change error message should be correct ok 220 - Should have sorted changes once ok 221 - Should die on invalid dependency ok 222 - The invalid dependency error ident should be "plan" ok 223 - And the invalid dependency error message should be correct ok 224 - Should have sorted changes nonce ok 225 - Should die on change with no timestamp ok 226 - The missing timestamp error ident should be "plan" ok 227 - And the missing timestamp error message should be correct ok 228 - Should have sorted changes nonce ok 229 - Should die on change with no planner ok 230 - The missing planner error ident should be "plan" ok 231 - And the missing planner error message should be correct ok 232 - Should have sorted changes nonce ok 233 - Should die on change with no timestamp or planner ok 234 - The missing timestamp or planner error ident should be "plan" ok 235 - And the missing timestamp or planner error message should be correct ok 236 - Should have sorted changes nonce ok 237 - Should parse plan with pragmas" ok 238 - Should have sorted changes once ok 239 - Should have captured all of the pragmas ok 240 - Should have "multi.plan" lines and changes ok 241 - Should parse plan with deploy and revert operators ok 242 - Should have sorted changes twice ok 243 - Should have captured the deploy-and-revert pragmas ok 244 - Should have "deploy-and-revert.plan" lines and changes ok 245 - Should get exception for nonexistent plan file ok 246 - Nonexistent plan file ident should be "plan" ok 247 - Nonexistent plan file message should be correct ok 248 - Plan with sqitch with plan file with dependencies isa App::Sqitch::Plan ok 249 - Load plan with dependencies file ok 250 - The changes should include the dependencies ok 251 - Should have sorted changes twice ok 252 - Plan with sqitch with plan file with project deps isa App::Sqitch::Plan ok 253 - Load plan with project deps file ok 254 - The changes should include the cross-project deps ok 255 - Should have sorted changes twice ok 256 - Plan with sqitch with plan with tag dependencies isa App::Sqitch::Plan ok 257 - Should get an exception for tag with dependencies ok 258 - The tag dependencies error ident should be "plan" ok 259 - And the tag dependencies error message should be correct ok 260 - Plan with sqitch with plan file isa App::Sqitch::Plan ok 261 - Lines should be parsed from file ok 262 - Changes should be parsed from file ok 263 - Should get all tags from tags() ok 264 - Should have sorted changes twice ok 265 - Load should parse plan from file ok 266 - Should have captured the multi pragmas ok 267 - And the parsed file should have lines and changes ok 268 - Should have sorted changes twice ok 269 - App::Sqitch::Plan->can(...) ok 270 - Position should start at -1 ok 271 - Current should be undef ok 272 - Get next change ok 273 - First change isa App::Sqitch::Plan::Change ok 274 - It should be the first change ok 275 - Position should be at 0 ok 276 - Count should be 4 ok 277 - Current should be current ok 278 - Should get first change from change_at(0) ok 279 - Peek to next change ok 280 - Peeked change isa App::Sqitch::Plan::Change ok 281 - Peeked change should be second change ok 282 - last() should return last change ok 283 - Current should still be current ok 284 - Peek should still be next ok 285 - Next should be the second change ok 286 - Position should be at 1 ok 287 - Should get second change from change_at(1) ok 288 - Peek should return an object ok 289 - Third change isa App::Sqitch::Plan::Change ok 290 - It should be the foo tag ok 291 - Current should be the second change ok 292 - Should get third change next ok 293 - Position should be at 2 ok 294 - Current should be third change ok 295 - Should get third change from change_at(1) ok 296 - Get fourth change ok 297 - Fourth change isa App::Sqitch::Plan::Change ok 298 - Fourth change should be "hey-there" ok 299 - Position should be at 3 ok 300 - Peek should return undef ok 301 - Next should return undef ok 302 - Position should be at 7 ok 303 - Next should still return undef ok 304 - Position should still be at 7 ok 305 - Reset the plan ok 306 - Position should be back at -1 ok 307 - Current should still be undef ok 308 - Next should return the first change again ok 309 - Position should be at 0 again ok 310 - Current should be first change ok 311 - Index of change should be 0 ok 312 - Should be able to get change 0 by name ok 313 - Should be able to find change 0 by name ok 314 - Should be able to get change 0 by ID ok 315 - Should be able to find change 0 by ID ok 316 - Index of @bar should be 3 ok 317 - Should be able to get hey-there via @bar ok 318 - Should be able to get hey-there via @bar ID ok 319 - Should be able to find hey-there via @bar ok 320 - Should be able to find hey-there via @bar ID ok 321 - Seek to the "@bar" change ok 322 - Position should be at 3 again ok 323 - Current should be fourth again ok 324 - Index of you should be 1 ok 325 - Should be able to get change 1 by name ok 326 - Should be able to find change 1 by name ok 327 - Seek to the "you" change ok 328 - Position should be at 1 again ok 329 - Current should be second again ok 330 - Index of baz should be undef ok 331 - Index of @baz should be 3 ok 332 - Seek to the "baz" change ok 333 - Position should be at 3 again ok 334 - Current should be fourth again ok 335 - Should still get first change from change_at(0) ok 336 - Should still get second change from change_at(1) ok 337 - Should still get third change from change_at(1) ok 338 - Should die seeking invalid change ok 339 - Invalid seek change error ident should be "plan" ok 340 - And the failure message should be correct ok 341 - All should return all changes ok 342 - Reset the plan again ok 343 - Change hey should be passed to do sub ok 344 - Change hey should be the topic in do sub ok 345 - Change you should be passed to do sub ok 346 - Change you should be the topic in do sub ok 347 - Change this/rocks should be passed to do sub ok 348 - Change this/rocks should be the topic in do sub ok 349 - Change hey-there should be passed to do sub ok 350 - Change hey-there should be the topic in do sub ok 351 - App::Sqitch::Plan->can('write_to') ok 352 - plan.out does not exist ok 353 - Write out the file ok 354 - plan.out exists ok 355 - The contents should look right ok 356 - Write out the file from "this/rocks" ok 357 - Plan should have been written from "this/rocks" through tags at end ok 358 - Write the file up to "you" ok 359 - Plan should have been written through "you" and its tags ok 360 - Write from "@foo" to "this/rocks" ok 361 - Plan should have been written from "@foo" to "this/rocks" ok 362 - Write from "hey" to "@foo" ok 363 - Plan should have been written from "hey" through "@foo" ok 364 - App::Sqitch::Plan->can('_is_valid') ok 365 - Should find "^foo" invalid ok 366 - Invalid name "^foo" error ident should be "plan" ok 367 - And the "^foo" error message should be correct ok 368 - Should find "foo^" invalid ok 369 - Invalid name "foo^" error ident should be "plan" ok 370 - And the "foo^" error message should be correct ok 371 - Should find "foo^6" invalid ok 372 - Invalid name "foo^6" error ident should be "plan" ok 373 - And the "foo^6" error message should be correct ok 374 - Should find "foo^666" invalid ok 375 - Invalid name "foo^666" error ident should be "plan" ok 376 - And the "foo^666" error message should be correct ok 377 - Should find "%hi" invalid ok 378 - Invalid name "%hi" error ident should be "plan" ok 379 - And the "%hi" error message should be correct ok 380 - Should find "hi!" invalid ok 381 - Invalid name "hi!" error ident should be "plan" ok 382 - And the "hi!" error message should be correct ok 383 - Should find "foo@bar" invalid ok 384 - Invalid name "foo@bar" error ident should be "plan" ok 385 - And the "foo@bar" error message should be correct ok 386 - Should find "foo:bar" invalid ok 387 - Invalid name "foo:bar" error ident should be "plan" ok 388 - And the "foo:bar" error message should be correct ok 389 - Should find "+foo" invalid ok 390 - Invalid name "+foo" error ident should be "plan" ok 391 - And the "+foo" error message should be correct ok 392 - Should find "-foo" invalid ok 393 - Invalid name "-foo" error ident should be "plan" ok 394 - And the "-foo" error message should be correct ok 395 - Should find "@foo" invalid ok 396 - Invalid name "@foo" error ident should be "plan" ok 397 - And the "@foo" error message should be correct ok 398 - Name "foo" sould be valid ok 399 - Name "12" sould be valid ok 400 - Name "t" sould be valid ok 401 - Name "6" sould be valid ok 402 - Name "阱阪阬" sould be valid ok 403 - Name "foo/bar" sould be valid ok 404 - Name "beta1" sould be valid ok 405 - Name "v1.2-1" sould be valid ok 406 - Name "v1.2+1" sould be valid ok 407 - Name "v1.2_1" sould be valid ok 408 - Add tag "w00t" ok 409 - Should have 4 changes ok 410 - Should find "@w00t at index 3 ok 411 - Last change should be "hey-there" ok 412 - The w00t tag should be on the last change ok 413 - The object isa App::Sqitch::Plan::Tag ok 414 - The returned tag should be @w00t ok 415 - The @w00t change should be the last change ok 416 - Write out the file again ok 417 - The contents should include the "w00t" tag ok 418 - Add tag "@alpha" ok 419 - Should find "@alpha at index 3 ok 420 - The returned tag should be @alpha ok 421 - The @alpha change should be the last change ok 422 - Should get error trying to add duplicate tag ok 423 - Duplicate tag error ident should be "plan" ok 424 - And the error message should report it as a dupe ok 425 - Should get error for invalid tag "^foo" ok 426 - Invalid name "^foo" error ident should be "plan" ok 427 - And the "^foo" error message should be correct ok 428 - Should get error for invalid tag "foo^" ok 429 - Invalid name "foo^" error ident should be "plan" ok 430 - And the "foo^" error message should be correct ok 431 - Should get error for invalid tag "foo^6" ok 432 - Invalid name "foo^6" error ident should be "plan" ok 433 - And the "foo^6" error message should be correct ok 434 - Should get error for invalid tag "foo^666" ok 435 - Invalid name "foo^666" error ident should be "plan" ok 436 - And the "foo^666" error message should be correct ok 437 - Should get error for invalid tag "%hi" ok 438 - Invalid name "%hi" error ident should be "plan" ok 439 - And the "%hi" error message should be correct ok 440 - Should get error for invalid tag "hi!" ok 441 - Invalid name "hi!" error ident should be "plan" ok 442 - And the "hi!" error message should be correct ok 443 - Should get error for invalid tag "foo@bar" ok 444 - Invalid name "foo@bar" error ident should be "plan" ok 445 - And the "foo@bar" error message should be correct ok 446 - Should get error for invalid tag "foo:bar" ok 447 - Invalid name "foo:bar" error ident should be "plan" ok 448 - And the "foo:bar" error message should be correct ok 449 - Should get error for invalid tag "+foo" ok 450 - Invalid name "+foo" error ident should be "plan" ok 451 - And the "+foo" error message should be correct ok 452 - Should get error for invalid tag "-foo" ok 453 - Invalid name "-foo" error ident should be "plan" ok 454 - And the "-foo" error message should be correct ok 455 - Should get error for invalid tag "foo\#bar" ok 456 - Invalid name "foo\#bar" error ident should be "plan" ok 457 - And the "foo\#bar" error message should be correct ok 458 - Should get error for reserved tag "HEAD" ok 459 - Reserved tag "HEAD" error ident should be "plan" ok 460 - And the reserved tag "HEAD" message should be correct ok 461 - Should get error for reserved tag "ROOT" ok 462 - Reserved tag "ROOT" error ident should be "plan" ok 463 - And the reserved tag "ROOT" message should be correct ok 464 - Should get error for reserved tag "FIRST" ok 465 - Reserved tag "FIRST" error ident should be "plan" ok 466 - And the reserved tag "FIRST" message should be correct ok 467 - Should get error for reserved tag "LAST" ok 468 - Reserved tag "LAST" error ident should be "plan" ok 469 - And the reserved tag "LAST" message should be correct ok 470 - Should get error for a SHA1 tag ok 471 - SHA1 tag error ident should be "plan" ok 472 - And the reserved name error should be output ok 473 - Add change "booyah" ok 474 - Should have 5 changes ok 475 - Should find "booyah at index 4 ok 476 - Last change should be "booyah" ok 477 - The object isa App::Sqitch::Plan::Change ok 478 - Should have plain stringification of "booya" ok 479 - Write out the file again ok 480 - The contents should include the "booyah" change ok 481 - Add change "blow" ok 482 - Should have 6 changes ok 483 - Should find "blow" at index 5 ok 484 - Last change should be "blow" ok 485 - Should have nice stringification of "blow [booyah]" ok 486 - The new change should have been appended to the lines, too ok 487 - Add change "jive" with dupe dependency ok 488 - Should have 7 changes ok 489 - Should find "jive" at index 6 ok 490 - jive change should be "jive" ok 491 - Should have dependency "blow" ok 492 - Should have nice stringification of "jive [blow]" ok 493 - The new change should have been appended to the lines, too ok 494 - Add change "moo" with dupe dependencies ok 495 - Should have 8 changes ok 496 - Should find "moo" at index 7 ok 497 - moo change should be "moo" ok 498 - Should require "ext:whu" ok 499 - Should conflict with "blow" and "ext:whu" ok 500 - Should have nice stringification of "moo [ext:foo !blow !ext:whu]" ok 501 - The new change should have been appended to the lines, too ok 502 - Should get error trying to add duplicate change ok 503 - Duplicate change error ident should be "plan" ok 504 - And the error message should suggest "rework" ok 505 - Should get error for invalid change "^foo" ok 506 - Invalid name "^foo" error ident should be "plan" ok 507 - And the "^foo" error message should be correct ok 508 - Should get error for invalid change "foo^" ok 509 - Invalid name "foo^" error ident should be "plan" ok 510 - And the "foo^" error message should be correct ok 511 - Should get error for invalid change "foo^6" ok 512 - Invalid name "foo^6" error ident should be "plan" ok 513 - And the "foo^6" error message should be correct ok 514 - Should get error for invalid change "foo^666" ok 515 - Invalid name "foo^666" error ident should be "plan" ok 516 - And the "foo^666" error message should be correct ok 517 - Should get error for invalid change "%hi" ok 518 - Invalid name "%hi" error ident should be "plan" ok 519 - And the "%hi" error message should be correct ok 520 - Should get error for invalid change "hi!" ok 521 - Invalid name "hi!" error ident should be "plan" ok 522 - And the "hi!" error message should be correct ok 523 - Should get error for invalid change "foo@bar" ok 524 - Invalid name "foo@bar" error ident should be "plan" ok 525 - And the "foo@bar" error message should be correct ok 526 - Should get error for invalid change "foo:bar" ok 527 - Invalid name "foo:bar" error ident should be "plan" ok 528 - And the "foo:bar" error message should be correct ok 529 - Should get error for invalid change "+foo" ok 530 - Invalid name "+foo" error ident should be "plan" ok 531 - And the "+foo" error message should be correct ok 532 - Should get error for invalid change "-foo" ok 533 - Invalid name "-foo" error ident should be "plan" ok 534 - And the "-foo" error message should be correct ok 535 - Should get error for invalid change "@foo" ok 536 - Invalid name "@foo" error ident should be "plan" ok 537 - And the "@foo" error message should be correct ok 538 - Should get error for reserved name "HEAD" ok 539 - Reserved name "HEAD" error ident should be "plan" ok 540 - And the reserved name "HEAD" message should be correct ok 541 - Should get error for reserved name "ROOT" ok 542 - Reserved name "ROOT" error ident should be "plan" ok 543 - And the reserved name "ROOT" message should be correct ok 544 - Should get error for reserved name "FIRST" ok 545 - Reserved name "FIRST" error ident should be "plan" ok 546 - And the reserved name "FIRST" message should be correct ok 547 - Should get error for reserved name "LAST" ok 548 - Reserved name "LAST" error ident should be "plan" ok 549 - And the reserved name "LAST" message should be correct ok 550 - Should get failure for failed dependency ok 551 - Dependency error ident should be "plan" ok 552 - The dependency error should be correct ok 553 - Should get failure for invalid dependency ok 554 - Invalid dependency error ident should be "plan" ok 555 - The invalid dependency error should be correct ok 556 - Should get failure for invalid conflict ok 557 - Invalid conflict error ident should be "plan" ok 558 - The invalid conflict error should be correct ok 559 - Should get failure for failed tag dependency ok 560 - Tag dependency error ident should be "plan" ok 561 - The tag dependency error should be correct ok 562 - Should get error for a SHA1 change ok 563 - SHA1 tag error ident should be "plan" ok 564 - And the reserved name error should be output ok 565 - Rework change "you" ok 566 - The object isa App::Sqitch::Plan::Change ok 567 - Reworked change should be "you" ok 568 - Get original "you" change ok 569 - It should also be named "you" ok 570 - And it should have the one rework tag ok 571 - The original file should now be named you@bar.sql ok 572 - App::Sqitch::Plan->can('rework') ok 573 - It should require the previous "you" change ok 574 - The new "you" should have been appended to the lines, too ok 575 - It should be at position 8 ok 576 - The plan count should be 9 ok 577 - Tag @beta1 ok 578 - Rework change "you" again ok 579 - The object isa App::Sqitch::Plan::Change ok 580 - New reworked change should be "you" ok 581 - Get original "you" change again ok 582 - It should still be named "you" ok 583 - And it should have the one rework tag ok 584 - Get you@beta1 ok 585 - The second "you" should be named that ok 586 - And the second change should have the rework_tag "@beta1" ok 587 - But the new reworked change should have no rework tags ok 588 - It should require the previous "you" change ok 589 - The new reworking should have been appended to the lines ok 590 - It should be at position 9 ok 591 - The plan count should be 10 ok 592 - rework should die on nonexistent change ok 593 - Nonexistent change error ident should be "plan" ok 594 - And the error should suggest "sqitch add" ok 595 - rework_stpe should die on lack of intervening tag ok 596 - Missing tag error ident should be "plan" ok 597 - And the error should suggest "sqitch tag" ok 598 - rework should die on failed dependency ok 599 - Rework dependency error ident should be "plan" ok 600 - The rework dependency error should be correct ok 601 - Should get failure for invalid dependency ok 602 - Invalid dependency error ident should be "plan" ok 603 - The invalid dependency error should be correct ok 604 - Should get failure for invalid conflict ok 605 - Invalid conflict error ident should be "plan" ok 606 - The invalid conflict error should be correct ok 607 - Plan shoud work plan with dupe change across tags isa App::Sqitch::Plan ok 608 - Project name should be set ok 609 - Lines with dupe change should be read from file ok 610 - Noes with dupe change should be read from file ok 611 - Should have sorted changes three times ok 612 - Should get an error trying to find dupe key. ok 613 - Dupe key error ident should be "plan" ok 614 - Dupe key error message should be correct ok 615 - Should get 3 for whatever@HEAD ok 616 - Should get 0 for whatever@bar ok 617 - Should get an error seeking dupe key. ok 618 - Dupe key error ident should be "plan" ok 619 - Dupe key error message should be correct ok 620 - Should find whatever@HEAD at index 3 ok 621 - Should find whatever@HEAD at index 0 ok 622 - Should find first instance of whatever at index 0 ok 623 - Should find first instance of whatever after @bar at index 5 ok 624 - Seek whatever@HEAD ok 625 - Position should be 3 ok 626 - Seek whatever@bar ok 627 - Position should be 0 ok 628 - Last tagged change should be "hi" ok 629 - App::Sqitch::Plan->can('open_script') ok 630 - Open bar.sql ok 631 - It should be the right file ok 632 - Open baz.sql ok 633 - It should be empty ok 634 - App::Sqitch::Plan->can('check_changes') ok 635 - Should get original order when no dependencies ok 636 - Should get original order when no prepreqs ok 637 - Should get original order when that requires this ok 638 - Should get original order when other requires that ok 639 - Should get error for out-of-order dependency ok 640 - Unordered dependency error ident should be "plan" ok 641 - And the unordered dependency error message should be correct ok 642 - Should get error for multiple dependency errors ok 643 - Multiple dependency error ident should be "plan" ok 644 - And the multiple dependency error message should be correct ok 645 - Should get original order when requiring a tag ok 646 - Should get original order when requiring a step as-of a tag ok 647 - Should get failure for a step after a tag ok 648 - Step after tag error ident should be "plan" ok 649 - And we the unknown change as-of a tag message should be correct ok 650 - Should get failure for a cycle ok 651 - Cycle error ident should be "plan" ok 652 - The cycle error message should be correct ok 653 - Should get failure for a two-hop cycle ok 654 - Two-hope cycle error ident should be "plan" ok 655 - The two-hop cycle error message should be correct ok 656 - Should get original order with earlier dependency ok 657 - Should get error with misordered and seen dependencies ok 658 - Misorderd and seen error ident should be "plan" ok 659 - And the misordered and seen error message should be correct ok 660 - Should die on unknown dependency ok 661 - Unknown dependency error ident should be "plan" ok 662 - And the error should point to the offending change ok 663 - Should die on unknown tag dependency ok 664 - Unknown tag dependency error ident should be "plan" ok 665 - And the error should point to the offending change ok 666 - Should get original order with external dependency ok 667 - Should die on self dependency ok 668 - Self dependency error ident should be "plan" ok 669 - And the self dependency error should be correct ok 670 - Should get original order with cascading dependencies ok 671 - Should get original order with multiple cascading dependencies ok 672 - App::Sqitch::Plan->can('_check_dependencies') ok 673 - Depend "hi" should be in project "dupe_change_diff_tag" ok 674 - Dependency on "hi" should succeed ok 675 - Depend "greets" should be in project "dupe_change_diff_tag" ok 676 - Dependency on "greets" should succeed ok 677 - Depend "whatever" should be in project "dupe_change_diff_tag" ok 678 - Dependency on "whatever" should succeed ok 679 - Depend "@foo" should be in project "dupe_change_diff_tag" ok 680 - Dependency on "@foo" should succeed ok 681 - Depend "whatever@foo" should be in project "dupe_change_diff_tag" ok 682 - Dependency on "whatever@foo" should succeed ok 683 - Depend "ext:larry" should be in project "ext" ok 684 - Dependency on "ext:larry" should succeed ok 685 - Depend "ext:greets" should be in project "ext" ok 686 - Dependency on "ext:greets" should succeed ok 687 - Should get error trying to depend on "wanker" ok 688 - Dependency "req" error ident should be "plan" ok 689 - And should get unknown dependency message for "wanker" ok 690 - Should get error trying to depend on "@blah" ok 691 - Dependency "req" error ident should be "plan" ok 692 - And should get unknown dependency message for "@blah" ok 693 - Should get error trying to depend on "greets@foo" ok 694 - Dependency "req" error ident should be "plan" ok 695 - And should get unknown dependency message for "greets@foo" ok 696 - Should have undef URI when no pragma ok 697 - Plan with sqitch with plan file with dependencies isa App::Sqitch::Plan ok 698 - syntax_version should be set ok 699 - Project should be set ok 700 - Should have URI from pragma ok 701 - It isa URI ok 702 - Should die on plan with no project pragma ok 703 - Missing prorject error ident should be "plan" ok 704 - The missing project error message should be correct ok 705 - Should die on invalid project name "^foo" ok 706 - Ident for bad proj "^foo" should be "plan" ok 707 - Error message for bad project "^foo" should be correct ok 708 - Should die on invalid project name "foo^" ok 709 - Ident for bad proj "foo^" should be "plan" ok 710 - Error message for bad project "foo^" should be correct ok 711 - Should die on invalid project name "foo^6" ok 712 - Ident for bad proj "foo^6" should be "plan" ok 713 - Error message for bad project "foo^6" should be correct ok 714 - Should die on invalid project name "foo^666" ok 715 - Ident for bad proj "foo^666" should be "plan" ok 716 - Error message for bad project "foo^666" should be correct ok 717 - Should die on invalid project name "%hi" ok 718 - Ident for bad proj "%hi" should be "plan" ok 719 - Error message for bad project "%hi" should be correct ok 720 - Should die on invalid project name "hi!" ok 721 - Ident for bad proj "hi!" should be "plan" ok 722 - Error message for bad project "hi!" should be correct ok 723 - Should die on invalid project name "foo@bar" ok 724 - Ident for bad proj "foo@bar" should be "plan" ok 725 - Error message for bad project "foo@bar" should be correct ok 726 - Should die on invalid project name "foo:bar" ok 727 - Ident for bad proj "foo:bar" should be "plan" ok 728 - Error message for bad project "foo:bar" should be correct ok 729 - Should die on invalid project name "+foo" ok 730 - Ident for bad proj "+foo" should be "plan" ok 731 - Error message for bad project "+foo" should be correct ok 732 - Should die on invalid project name "-foo" ok 733 - Ident for bad proj "-foo" should be "plan" ok 734 - Error message for bad project "-foo" should be correct ok 735 - Should die on invalid project name "@foo" ok 736 - Ident for bad proj "@foo" should be "plan" ok 737 - Error message for bad project "@foo" should be correct 1..737 ok t/pod-coverage.t ... 1..31 ok 1 - Pod coverage on App::Sqitch ok 2 - Pod coverage on App::Sqitch::Engine ok 3 - Pod coverage on App::Sqitch::Command ok 4 - Pod coverage on App::Sqitch::Plan ok 5 - Pod coverage on App::Sqitch::X ok 6 - Pod coverage on App::Sqitch::DateTime ok 7 - Pod coverage on App::Sqitch::Config ok 8 - Pod coverage on App::Sqitch::Command::config ok 9 - Pod coverage on App::Sqitch::Command::tag ok 10 - Pod coverage on App::Sqitch::Command::init ok 11 - Pod coverage on App::Sqitch::Command::rebase ok 12 - Pod coverage on App::Sqitch::Command::help ok 13 - Pod coverage on App::Sqitch::Command::log ok 14 - Pod coverage on App::Sqitch::Command::rework ok 15 - Pod coverage on App::Sqitch::Command::bundle ok 16 - Pod coverage on App::Sqitch::Command::show ok 17 - Pod coverage on App::Sqitch::Command::add ok 18 - Pod coverage on App::Sqitch::Command::verify ok 19 - Pod coverage on App::Sqitch::Command::deploy ok 20 - Pod coverage on App::Sqitch::Command::status ok 21 - Pod coverage on App::Sqitch::Command::revert ok 22 - Pod coverage on App::Sqitch::Engine::pg ok 23 - Pod coverage on App::Sqitch::Engine::sqlite ok 24 - Pod coverage on App::Sqitch::Plan::Tag ok 25 - Pod coverage on App::Sqitch::Plan::Pragma ok 26 - Pod coverage on App::Sqitch::Plan::Line ok 27 - Pod coverage on App::Sqitch::Plan::Change ok 28 - Pod coverage on App::Sqitch::Plan::Depend ok 29 - Pod coverage on App::Sqitch::Plan::LineList ok 30 - Pod coverage on App::Sqitch::Plan::ChangeList ok 31 - Pod coverage on App::Sqitch::Plan::Blank ok t/pod.t ............ 1..64 ok 1 - POD test for blib/lib/sqitchcommands.pod ok 2 - POD test for blib/lib/sqitch-revert.pod ok 3 - POD test for blib/lib/sqitch-show-usage.pod ok 4 - POD test for blib/lib/sqitch-verify.pod ok 5 - POD test for blib/lib/sqitch-add.pod ok 6 - POD test for blib/lib/sqitch-config.pod ok 7 - POD test for blib/lib/sqitch-deploy.pod ok 8 - POD test for blib/lib/sqitch-rework.pod ok 9 - POD test for blib/lib/sqitch-add-usage.pod ok 10 - POD test for blib/lib/sqitch-help-usage.pod ok 11 - POD test for blib/lib/sqitch-bundle-usage.pod ok 12 - POD test for blib/lib/sqitch-init-usage.pod ok 13 - POD test for blib/lib/sqitch-show.pod ok 14 - POD test for blib/lib/sqitch-revert-usage.pod ok 15 - POD test for blib/lib/sqitch-status.pod ok 16 - POD test for blib/lib/sqitch-config-usage.pod ok 17 - POD test for blib/lib/sqitch-log.pod ok 18 - POD test for blib/lib/sqitch-rebase-usage.pod ok 19 - POD test for blib/lib/sqitchtutorial.pod ok 20 - POD test for blib/lib/sqitch-log-usage.pod ok 21 - POD test for blib/lib/sqitchchanges.pod ok 22 - POD test for blib/lib/sqitch-rework-usage.pod ok 23 - POD test for blib/lib/sqitch-bundle.pod ok 24 - POD test for blib/lib/sqitch.pod ok 25 - POD test for blib/lib/sqitch-deploy-usage.pod ok 26 - POD test for blib/lib/sqitch-rebase.pod ok 27 - POD test for blib/lib/sqitch-tag.pod ok 28 - POD test for blib/lib/sqitch-help.pod ok 29 - POD test for blib/lib/sqitch-status-usage.pod ok 30 - POD test for blib/lib/sqitch-tag-usage.pod ok 31 - POD test for blib/lib/sqitch-init.pod ok 32 - POD test for blib/lib/sqitch-verify-usage.pod ok 33 - POD test for blib/script/sqitch (no pod) ok 34 - POD test for blib/lib/App/Sqitch.pm ok 35 - POD test for blib/lib/App/Sqitch/Engine.pm ok 36 - POD test for blib/lib/App/Sqitch/Command.pm ok 37 - POD test for blib/lib/App/Sqitch/Plan.pm ok 38 - POD test for blib/lib/App/Sqitch/X.pm ok 39 - POD test for blib/lib/App/Sqitch/DateTime.pm ok 40 - POD test for blib/lib/App/Sqitch/Config.pm ok 41 - POD test for blib/lib/App/Sqitch/Command/config.pm ok 42 - POD test for blib/lib/App/Sqitch/Command/tag.pm ok 43 - POD test for blib/lib/App/Sqitch/Command/init.pm ok 44 - POD test for blib/lib/App/Sqitch/Command/rebase.pm ok 45 - POD test for blib/lib/App/Sqitch/Command/help.pm ok 46 - POD test for blib/lib/App/Sqitch/Command/log.pm ok 47 - POD test for blib/lib/App/Sqitch/Command/rework.pm ok 48 - POD test for blib/lib/App/Sqitch/Command/bundle.pm ok 49 - POD test for blib/lib/App/Sqitch/Command/show.pm ok 50 - POD test for blib/lib/App/Sqitch/Command/add.pm ok 51 - POD test for blib/lib/App/Sqitch/Command/verify.pm ok 52 - POD test for blib/lib/App/Sqitch/Command/deploy.pm ok 53 - POD test for blib/lib/App/Sqitch/Command/status.pm ok 54 - POD test for blib/lib/App/Sqitch/Command/revert.pm ok 55 - POD test for blib/lib/App/Sqitch/Engine/pg.pm ok 56 - POD test for blib/lib/App/Sqitch/Engine/sqlite.pm ok 57 - POD test for blib/lib/App/Sqitch/Plan/Tag.pm ok 58 - POD test for blib/lib/App/Sqitch/Plan/Pragma.pm ok 59 - POD test for blib/lib/App/Sqitch/Plan/Line.pm ok 60 - POD test for blib/lib/App/Sqitch/Plan/Change.pm ok 61 - POD test for blib/lib/App/Sqitch/Plan/Depend.pm ok 62 - POD test for blib/lib/App/Sqitch/Plan/LineList.pm ok 63 - POD test for blib/lib/App/Sqitch/Plan/ChangeList.pm ok 64 - POD test for blib/lib/App/Sqitch/Plan/Blank.pm ok t/pragma.t ......... 1..10 ok 1 - require App::Sqitch::Plan::Pragma; ok 2 - App::Sqitch::Plan::Pragma->can(...) ok 3 - The object isa App::Sqitch::Plan::Pragma ok 4 - The object 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 v-string in use/require non-portable at t/rebase.t line 5. t/rebase.t ......... ok 1 - require App::Sqitch::Command::rebase; ok 2 - The class 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 have merged --set, deploy, rebase ok 15 - The object isa App::Sqitch::Command::rebase ok 16 - Should pick up deploy variables from configuration ok 17 - Should pick up revert variables from configuration ok 18 - Should have no_prompt true ok 19 - Should havev false no_prompt and verify from rebase config ok 20 - Should have no_prompt true from rebase and verify from deploy ok 21 - Should have no_prompt false and mode all again ok 22 - Should have no_prompt false for false config ok 23 - Should have no_prompt true with -y ok 24 - The object isa App::Sqitch::Command::rebase ok 25 - onto_target should be undef ok 26 - upto_target should be undef ok 27 - Execute to "@alpha" ok 28 - undef, "all", and 0 should be passed to the engine deploy ok 29 - "@alpha" and 0 should be passed to the engine revert ok 30 - Engine should prompt ok 31 - Execute ok 32 - undef, "all", and 0 should be passed to the engine deploy ok 33 - undef and = should be passed to the engine revert ok 34 - No vars should have been passed through to the engine ok 35 - Object with to and variables isa App::Sqitch::Command::rebase ok 36 - Execute again ok 37 - Engine should be no_prompt ok 38 - Engine should verify ok 39 - "bar", "tag", and 1 should be passed to the engine deploy ok 40 - "foo" and 1 should be passed to the engine revert ok 41 - Variables should have been passed to the engine twice ok 42 - The revert vars should have been passed first ok 43 - The deploy vars should have been next 1..43 ok v-string in use/require non-portable at t/revert.t line 5. t/revert.t ......... ok 1 - require App::Sqitch::Command::revert; ok 2 - The class 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 ok 8 - Should have merged variables ok 9 - Should have merged --set, deploy, revert ok 10 - The object isa App::Sqitch::Command::revert ok 11 - Should pick up variables from configuration ok 12 - Should have no_prompt true 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 - The object isa App::Sqitch::Command::revert ok 17 - to_target should be undef ok 18 - Execute to "@alpha" ok 19 - Engine should be no_prompt ok 20 - "@alpha" and "all" should be passed to the engine ok 21 - Execute ok 22 - undef and "all" should be passed to the engine ok 23 - No vars should have been passed through to the engine ok 24 - Object with to and variables isa App::Sqitch::Command::revert ok 25 - Execute again ok 26 - Engine should not be no_prompt ok 27 - "foo" and 1 should be passed to the engine ok 28 - Vars should have been passed through to the engine 1..28 ok v-string in use/require non-portable at /home/cpanfly/var/megalib/Test/File/Contents.pm line 3. t/rework.t ......... 1..80 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 - Requires should be an arrayref ok 8 - Conflicts should be an arrayref ok 9 - Note should be an arrayref ok 10 - Should get an example for nonexistent change ok 11 - Nonexistent change error ident should be "plan" ok 12 - Fail message should say the step does not exist ok 13 - Create another add with template_directory ok 14 - sql/deploy/foo.sql does not exist ok 15 - sql/revert/foo.sql does not exist ok 16 - sql/verify/foo.sql does not exist ok 17 - sql/deploy/foo.sql exists ok 18 - sql/revert/foo.sql exists ok 19 - sql/verify/foo.sql exists ok 20 - Get the "foo" change ok 21 - Should get an example for duplicate change ok 22 - Duplicate change error ident should be "plan" ok 23 - Fail message should say a tag is needed ok 24 - Tag it ok 25 - sql/deploy/foo@alpha.sql does not exist ok 26 - sql/revert/foo@alpha.sql does not exist ok 27 - sql/verify/foo@alpha.sql does not exist ok 28 - Rework "foo" ok 29 - sql/deploy/foo.sql exists ok 30 - sql/revert/foo.sql exists ok 31 - sql/verify/foo.sql exists ok 32 - sql/deploy/foo@alpha.sql exists ok 33 - sql/revert/foo@alpha.sql exists ok 34 - sql/verify/foo@alpha.sql exists ok 35 - sql/deploy/foo@alpha.sql and sql/deploy/foo.sql contents are the same ok 36 - sql/verify/foo@alpha.sql and sql/verify/foo.sql contents are the same ok 37 - sql/revert/foo.sql and sql/deploy/foo.sql contents are the same ok 38 - New revert should revert ok 39 - It should have prompted for a note ok 40 - Reload the plan file ok 41 - Get the steps ok 42 - Should have two steps ok 43 - First step should be "foo" ok 44 - Second step should also be "foo" ok 45 - Reworked step should require the previous step ok 46 - And the info message should suggest editing the old files ok 47 - Debug should show file copying ok 48 - Create another add with template_directory ok 49 - sql/deploy/bar.sql does not exist ok 50 - sql/revert/bar.sql does not exist ok 51 - sql/verify/bar.sql does not exist ok 52 - sql/deploy/bar.sql exists ok 53 - sql/revert/bar.sql does not exist ok 54 - sql/verify/bar.sql does not exist ok 55 - Tag it with @beta ok 56 - rework command with requirements and conflicts isa App::Sqitch::Command::rework ok 57 - sql/deploy/bar@beta.sql does not exist ok 58 - sql/revert/bar@beta.sql does not exist ok 59 - sql/verify/bar@beta.sql does not exist ok 60 - Rework "bar" ok 61 - sql/deploy/bar.sql exists ok 62 - sql/revert/bar.sql does not exist ok 63 - sql/verify/bar.sql does not exist ok 64 - sql/deploy/bar@beta.sql exists ok 65 - sql/revert/bar@beta.sql does not exist ok 66 - sql/verify/bar@beta.sql does not exist ok 67 - It should have prompted for a note ok 68 - Reload the plan file again ok 69 - Get the steps ok 70 - Should have four steps ok 71 - First step should be "foo" ok 72 - Second step should also be "foo" ok 73 - First step should be "bar" ok 74 - Second step should also be "bar" ok 75 - Requires should have been passed to reworked change ok 76 - Conflicts should have been passed to reworked change ok 77 - Note should have been passed as comment ok 78 - And the info message should show only the one file to modify ok 79 - Should have debug oputput for missing files ok 80 - no warnings ok v-string in use/require non-portable at t/show.t line 5. t/show.t ........... ok 1 - require App::Sqitch::Command::show; ok 2 - The class isa App::Sqitch::Command ok 3 - App::Sqitch::Command::show->can('execute') ok 4 - Options should be correct ok 5 - The object isa App::Sqitch::Command::show ok 6 - Get a change ok 7 - Find change by id ok 8 - The change info should have been emitted ok 9 - Find change by name ok 10 - The change info should have been emitted again ok 11 - Should get an error for an unknown change ok 12 - Unknown change error ident should be "show" ok 13 - Should get proper error for unknown change ok 14 - Find change by tag id ok 15 - The change info should have been emitted ok 16 - Find change by tag ok 17 - The change info should have been emitted ok 18 - Find tag by id ok 19 - The tag info should have been emitted ok 20 - Find tag by name ok 21 - The tag info should have been emitted ok 22 - Find tag by formatted name ok 23 - The tag info should have been emitted ok 24 - Should get errof for non-existent tag ok 25 - Unknown tag error ident should be "show" ok 26 - Should get proper error for unknown tag ok 27 - Should get errof for non-existent tag ID ok 28 - Unknown tag ID error ident should be "show" ok 29 - Should get proper error for unknown tag ID ok 30 - Show a deploy file ok 31 - The deploy file should have been emitted ok 32 - Show a revert file ok 33 - The revert file should have been emitted ok 34 - Should get error for nonexistent varify file ok 35 - Nonexistent file error ident should be "show" ok 36 - Should get proper error for nonexistent file ok 37 - Should get usage for missing params ok 38 - Nothing should have been passed to usage ok 39 - Should get error for uknown type ok 40 - Unknown type error ident should be "show" ok 41 - Should get proper error for unknown type 1..41 ok t/sqlite.t ......... 1..13 ok 1 - require App::Sqitch::Engine::sqlite; ok 2 - config_vars should return three vars ok 3 - The object isa App::Sqitch::Engine::sqlite ok 4 - client should default to sqlite3 ok 5 - db_name should be required ok 6 - sqitch_prefix should default to "sqitch" ok 7 - Create another sqlite ok 8 - client should fall back on config ok 9 - db_name should fall back on config ok 10 - sqitch_prefix should fall back on config ok 11 - Create sqlite with sqitch with --client and --db-name ok 12 - The client should be grabbed from sqitch ok 13 - The db_name should be grabbed from sqitch ok t/status.t ......... 1..91 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 - Should get empty hash for no config or options ok 27 - Should get error for invalid date format in config 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 date format in optsions ok 31 - Invalid date format error ident should be "status" ok 32 - Invalid date format error message should be correct ok 33 - Emit the state ok 34 - The state should have been emitted ok 35 - Emit the state with a tag ok 36 - The state should have been emitted with a tag ok 37 - Emit the state with multiple tags ok 38 - The state should have been emitted with multiple tags ok 39 - Create status command with an engine ok 40 - Try to emit changes ok 41 - Should have emitted no changes ok 42 - Create change-showing status command ok 43 - Emit changes again ok 44 - Project "foo" should have been passed to current_changes ok 45 - Should have emitted one change ok 46 - Emit changes thrice ok 47 - Project "foo" again should have been passed to current_changes ok 48 - Should have emitted three changes ok 49 - Try to emit tags ok 50 - No tags should have been emitted ok 51 - Create tag-showing status command ok 52 - Try to emit tags again ok 53 - Project "bar" should be passed to current_tags() ok 54 - Should have emitted a header for no tags ok 55 - Emit tags ok 56 - Project "bar" should again be passed to current_tags() ok 57 - Should have emitted one tag ok 58 - Emit tags again ok 59 - Project "bar" should once more be passed to current_tags() ok 60 - Should have emitted all three tags ok 61 - Create status command with actual plan command ok 62 - Emit status ok 63 - Should have a blank comment line ok 64 - Should emit up-to-date output ok 65 - Emit status again ok 66 - Should have a blank comment line ok 67 - Should emit list of undeployed changes ok 68 - Emit status thrice ok 69 - Should have a blank comment line ok 70 - Should emit list of undeployed changes ok 71 - Die on invalid ID ok 72 - Invalid ID error ident should be "status" ok 73 - The invalid ID error message should be correct ok 74 - Should have a blank comment line ok 75 - Should have a message about inability to find the change ok 76 - Execute ok 77 - The state should have been emitted ok 78 - Should emit list of undeployed changes ok 79 - Create status command with specified project ok 80 - Execute for specified project ok 81 - The specified project state should have been emitted ok 82 - Should emit unknown status message for specified project ok 83 - Create status command with external project ok 84 - Execute for external project ok 85 - The external project state should have been emitted ok 86 - Should emit unknown status message for external project ok 87 - Die on no state ok 88 - No state error ident should be "status" ok 89 - No state error message should be correct ok 90 - The "On database" comment should have been emitted ok 91 - no warnings ok t/tag.t ............ 1..27 ok 1 - require App::Sqitch::Plan::Tag; ok 2 - App::Sqitch::Plan::Tag->can(...) ok 3 - The object isa App::Sqitch::Plan::Tag ok 4 - The object 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..29 ok 1 - Load a sqitch sqitch object ok 2 - tag command isa App::Sqitch::Command::tag ok 3 - App::Sqitch::Command::tag->can(...) ok 4 - Should have note option ok 5 - Add change "foo" ok 6 - Tag @alpha ok 7 - Should have tagged "foo" ok 8 - Reload plan ok 9 - New tag should have been written ok 10 - New tag should have empty note ok 11 - Should have requested a note ok 12 - The info message should be correct ok 13 - Execute with no arg ok 14 - The one tag should have been listed ok 15 - Should have requested a note ok 16 - Add tag @beta ok 17 - Execute with no arg again ok 18 - Both tags should have been listed ok 19 - Should have requested a note ok 20 - tag command with note isa App::Sqitch::Command::tag ok 21 - Tag @gamma ok 22 - Gamma tag should be on change "foo" ok 23 - Gamma tag should have note ok 24 - Reload plan ok 25 - Gamma tag should have been written ok 26 - Written tag should have note ok 27 - Should have requested a note ok 28 - The gamma note should be correct ok 29 - no warnings ok v-string in use/require non-portable at t/verify.t line 5. t/verify.t ......... ok 1 - require App::Sqitch::Command::verify; ok 2 - The class 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 targets and variables from options ok 7 - Should have no config if no options ok 8 - Should have merged variables ok 9 - The object isa App::Sqitch::Command::verify ok 10 - Should pick up variables from configuration ok 11 - The object isa App::Sqitch::Command::verify ok 12 - from_target should be undef ok 13 - to_target should be undef ok 14 - Execute with nothing. ok 15 - Two undefs should be passed to the engine ok 16 - Execute from "@alpha" ok 17 - "@alpha" and undef should be passed to the engine ok 18 - Execute from "@alpha" to "@beta" ok 19 - "@alpha" and "@beat" should be passed to the engine ok 20 - Object with from, to, and variables isa App::Sqitch::Command::verify ok 21 - Execute again ok 22 - "foo" and "bar" should be passed to the engine ok 23 - Vars should have been passed through to the engine ok 24 - Execute with command-line args ok 25 - "foo" and "bar" should be passed to the engine ok 26 - Vars should have been passed through to the engine 1..26 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 Role::HasMessage ok 5 - X object does StackTrace::Auto ok 6 - X object does Role::Identifiable::HasIdent ok 7 - Create X without ident ok 8 - Default ident should be "DEV" ok 9 - threw App::Sqitch::X ok 10 - Thrown object isa App::Sqitch::X ok 11 - Ident should be "basic" ok 12 - The message should have been passed ok 13 - It should have a stack trace ok 14 - Exit val should be 2 ok 15 - The trace should start in this file ok 16 - threw App::Sqitch::X ok 17 - Thrown object isa App::Sqitch::X ok 18 - Ident should be "DEV" ok 19 - The message should have been passed ok 20 - Exit val should again be 2 ok 21 - threw App::Sqitch::X ok 22 - Thrown object isa App::Sqitch::X ok 23 - The params should have been passed ok 24 - Exit val should be 1 ok 25 - Stringification should work ok 26 - Stringification should work ok 27 - Should be an "io" exception ok 28 - Should catch error called via &goto 1..28 ok All tests successful. Files=33, Tests=3969, 45 wallclock secs ( 0.79 usr 0.07 sys + 30.65 cusr 1.45 csys = 32.96 CPU) Result: PASS DWHEELER/App-Sqitch-0.952.tar.gz ./Build test verbose=1 -- OK David E. Wheeler <david@justatheory.com> Sane database change management >>> (cd /home/cpanfly/var/cpan/build/App-Sqitch-0.952-UKT8Bh && tar cvf - App-Sqitch-0.952.ppd blib) | gzip -c >/home/cpanfly/var/REPO/D/DW/DWHEELER/App-Sqitch-0.952.tar.gz App-Sqitch-0.952.ppd blib/ blib/lib/ blib/lib/App/ blib/lib/App/Sqitch/ blib/lib/App/Sqitch/Command/ blib/lib/App/Sqitch/Command/config.pm blib/lib/App/Sqitch/Command/tag.pm blib/lib/App/Sqitch/Command/init.pm blib/lib/App/Sqitch/Command/rebase.pm blib/lib/App/Sqitch/Command/help.pm blib/lib/App/Sqitch/Command/log.pm blib/lib/App/Sqitch/Command/rework.pm blib/lib/App/Sqitch/Command/bundle.pm blib/lib/App/Sqitch/Command/show.pm blib/lib/App/Sqitch/Command/add.pm blib/lib/App/Sqitch/Command/verify.pm blib/lib/App/Sqitch/Command/deploy.pm blib/lib/App/Sqitch/Command/status.pm blib/lib/App/Sqitch/Command/revert.pm blib/lib/App/Sqitch/Engine.pm blib/lib/App/Sqitch/Engine/ blib/lib/App/Sqitch/Engine/pg.pm blib/lib/App/Sqitch/Engine/sqlite.pm blib/lib/App/Sqitch/Engine/pg.sql blib/lib/App/Sqitch/Plan/ blib/lib/App/Sqitch/Plan/Tag.pm blib/lib/App/Sqitch/Plan/Pragma.pm blib/lib/App/Sqitch/Plan/Line.pm blib/lib/App/Sqitch/Plan/Change.pm blib/lib/App/Sqitch/Plan/Depend.pm blib/lib/App/Sqitch/Plan/LineList.pm blib/lib/App/Sqitch/Plan/ChangeList.pm blib/lib/App/Sqitch/Plan/Blank.pm blib/lib/App/Sqitch/Command.pm blib/lib/App/Sqitch/Plan.pm blib/lib/App/Sqitch/X.pm blib/lib/App/Sqitch/DateTime.pm blib/lib/App/Sqitch/Config.pm blib/lib/App/Sqitch.pm blib/lib/sqitchcommands.pod blib/lib/sqitch-revert.pod blib/lib/sqitch-show-usage.pod blib/lib/sqitch-verify.pod blib/lib/sqitch-add.pod blib/lib/sqitch-config.pod blib/lib/sqitch-deploy.pod blib/lib/sqitch-rework.pod blib/lib/sqitch-add-usage.pod blib/lib/sqitch-help-usage.pod blib/lib/sqitch-bundle-usage.pod blib/lib/sqitch-init-usage.pod blib/lib/sqitch-show.pod blib/lib/sqitch-revert-usage.pod blib/lib/sqitch-status.pod blib/lib/sqitch-config-usage.pod blib/lib/sqitch-log.pod blib/lib/sqitch-rebase-usage.pod blib/lib/sqitchtutorial.pod blib/lib/sqitch-log-usage.pod blib/lib/sqitchchanges.pod blib/lib/sqitch-rework-usage.pod blib/lib/sqitch-bundle.pod blib/lib/sqitch.pod blib/lib/sqitch-deploy-usage.pod blib/lib/sqitch-rebase.pod blib/lib/sqitch-tag.pod blib/lib/sqitch-help.pod blib/lib/sqitch-status-usage.pod blib/lib/sqitch-tag-usage.pod blib/lib/sqitch-init.pod blib/lib/sqitch-verify-usage.pod 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/script/ blib/script/sqitch blib/etc/ blib/etc/templates/ blib/etc/templates/deploy.tmpl blib/etc/templates/revert.tmpl blib/etc/templates/verify.tmpl >>> mv /home/cpanfly/var/cpan/build/App-Sqitch-0.952-UKT8Bh/App-Sqitch-0.952.ppd /home/cpanfly/var/REPO/D/DW/DWHEELER VmSize: 122100 kB Finished 2013-01-11T17:14:38