On Sun, 9 Mar 2014 13:29:32 +0000, Tim Bunce <tim.bu...@pobox.com> wrote:
> On Tue, Feb 18, 2014 at 02:50:43PM +0000, Tim Bunce wrote: > > On Tue, Feb 18, 2014 at 10:15:53AM +0100, H.Merijn Brand wrote: > > > > > > I see a serious weekness. Don't know if it is Test::Database or > > > DBI::Test, but the current templates do not seem to be able to see a > > > difference between undef and "" for username and password: > > > > > > $ cat out/Default/Pg/Default/DBIT_sth_ro/BasicPrepareExecuteSelect.t > > > #!perl > > > use lib "lib"; > > > $ENV{DBI_PASS} = ""; > > > $ENV{DBI_USER} = ""; > > > $ENV{DBI_DSN} = "dbi:Pg:dbname=test"; > > > > > Drivers allow username and/or password to be undefined, but they also > > > allow username/password to be the empty string, and these are two > > > different things! > > > > The root cause is in Test::Database. I've opened a case for it: > > https://rt.cpan.org/Ticket/Display.html?id=93128 > > BooK has fixed that in T:DB v1.111 - please retry. Hmmm, I don't know about "fixed", but I installed that anyway. Reply includes both the Test::Database and the tumbler results BOOK/Test-Database-1.111.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /pro/bin/perl5.18.2 "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-load.t ................... 1/10 YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. # Tested Test::Database 1.111, Perl 5.018002, /pro/bin/perl5.18.2 t/00-load.t ................... ok t/000-report-versions-tiny.t .. # # # Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.08 # perl: 5.018002 (wanted 5.006) on linux from /pro/bin/perl5.18.2 # # Carp => 1.32 (want any version) # Cwd => 3.40 (want any version) # DBD::DBM => 0.08 (want any version) # DBI => 1.631 (want any version) # ExtUtils::MakeMaker => 6.9 (want 6.30) # File::Find => 1.23 (want any version) # File::HomeDir => 1.00 (want any version) # File::Path => 2.09 (want any version) # File::Spec => 3.40 (want any version) # File::Temp => 0.2304 (want any version) # List::Util => 1.38 (want any version) # Pod::Coverage::TrustPod => 0.100003 (want any version) # SQL::Statement => 1.405 (want any version) # Test::CPAN::Meta => 0.23 (want any version) # Test::More => 1.001002 (want 0.88) # Test::Pod => 1.48 (want 1.41) # Test::Pod::Coverage => 1.08 (want 1.08) # YAML::Tiny => 1.61 (want any version) # strict => 1.07 (want any version) # version => 0.9908 (want 0.9901) # warnings => 1.18 (want any version) # # Thanks for using my code. I hope it works for you. # If not, please try and include this output in the bug report. # That will help me reproduce the issue and solve your problem. # t/000-report-versions-tiny.t .. ok t/08-handle.t ................. ok t/09-handle-dsn.t ............. ok t/10-drivers.t ................ YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. t/10-drivers.t ................ 1/7 # Failed test 'At least one driver loaded' # at t/10-drivers.t line 101. # '0' # >= # '1' # Looks like you failed 1 test of 7. t/10-drivers.t ................ Dubious, test returned 1 (wstat 256, 0x100) Failed 1/7 subtests t/10-list_drivers.t ........... YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. t/10-list_drivers.t ........... 1/3 # Failed test 'list_drivers()' # at t/10-list_drivers.t line 31. # Structures begin differing at: # $got->[0] = Does not exist # $expected->[0] = 'CSV' # Looks like you failed 1 test of 3. t/10-list_drivers.t ........... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/3 subtests t/11-available_dbname.t ....... ok t/11-make_dsn.t ............... ok t/11-version_matches.t ........ ok t/12-load.t ................... ok t/20-handles.t ................ YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. t/20-handles.t ................ ok t/25-sql.t .................... YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. # SQL::Statement 1.405 t/25-sql.t .................... skipped: No drivers available for testing t/pod-coverage.t .............. YAML::Tiny failed to classify line 'dbi:CSV::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /home/merijn/.cpan/build/Test-Database-1.111-O2MmHq/blib/lib/Test/Database/Driver.pm line 102. t/pod-coverage.t .............. ok t/pod.t ....................... ok t/release-distmeta.t .......... skipped: these tests are for release candidate testing t/release-pod-coverage.t ...... skipped: these tests are for release candidate testing t/release-pod-syntax.t ........ skipped: these tests are for release candidate testing Test Summary Report ------------------- t/10-drivers.t (Wstat: 256 Tests: 7 Failed: 1) Failed test: 6 Non-zero exit status: 1 t/10-list_drivers.t (Wstat: 256 Tests: 3 Failed: 1) Failed test: 3 Non-zero exit status: 1 Files=17, Tests=187, 2 wallclock secs ( 0.06 usr 0.01 sys + 1.60 cusr 0.10 csys = 1.77 CPU) Result: FAIL Failed 2/17 test programs. 2/187 subtests failed. make: *** [test_dynamic] Error 255 BOOK/Test-Database-1.111.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports BOOK/Test-Database-1.111.tar.gz Running make install make test had returned bad status, won't install without force $ cat /home/merijn/.local/share/.test-database # Postgres dsn = dbi:Pg:dbname=test # SQLite dsn = dbi:SQLite:dbname=/tmp/test.db # CSV dsn = dbi:CSV:f_ext=.csv/r # MySQL dsn = dbi:mysql:database=test # Oracle > Tim. % ux lx09 Linux 3.11.10-7-desktop [openSUSE 13.1 (Bottle)] i386 Core(TM) i7-2620M CPU @ 2.70GHz/2646(4) i686 8032 Mb % perl -MV=DBI,Test::Database,Class::Tiny,DBD::SQLite,DBD::Pg,DBD::CSV,DBD::Firebird,DBD::mysql,YAML::Tiny DBI /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/DBI.pm: 1.631 Test::Database /pro/lib/perl5/site_perl/5.18.2/Test/Database.pm: 1.111 Class::Tiny /pro/lib/perl5/site_perl/5.18.2/Class/Tiny.pm: 0.014 DBD::SQLite /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/DBD/SQLite.pm: 1.40 DBD::Pg /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/DBD/Pg.pm: 3.0.0 DBD::CSV /pro/lib/perl5/site_perl/5.18.2/DBD/CSV.pm: 0.41 DBD::Firebird /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/DBD/Firebird.pm: 1.17 DBD::mysql /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/DBD/mysql.pm: 4.026 YAML::Tiny /pro/lib/perl5/site_perl/5.18.2/YAML/Tiny.pm: 1.61 % perl -v|grep version This is perl 5, version 18, subversion 2 (v5.18.2) built for i686-linux-64int-ld % cd sandbox/tim % rm -rf out* && perl tumbler.pl && prove -j4 -sr out Ignoring DBD::Oracle: install_driver(Oracle) failed: Can't load '/pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libnnz12.so: cannot open shared object file: No such file or directory at /pro/lib/perl5/5.18.2/i686-linux-64int-ld/DynaLoader.pm line 190. YAML::Tiny failed to classify line 'dbi:CSV::' at /pro/lib/perl5/site_perl/5.18.2/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:DBM::' at /pro/lib/perl5/site_perl/5.18.2/Test/Database/Driver.pm line 102. YAML::Tiny failed to classify line 'dbi:SQLite::' at /pro/lib/perl5/site_perl/5.18.2/Test/Database/Driver.pm line 102. Using Test::Database config /home/merijn/.local/share/.test-database CSV has 1 variants for DSN dbi:CSV:f_ext=.csv/r Writing out/Default/CSV/Default/dbh_ro/GetInfo.t Writing out/Default/CSV/Default/dbh_ro/SelectMultiThread.t Writing out/Default/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t Skipped DBD::DBM - no Test::Database dsn config using the DBM driver Skipped DBD::ExampleP - no Test::Database dsn config using the ExampleP driver Skipped DBD::File - no Test::Database dsn config using the File driver Skipped DBD::Firebird - no Test::Database dsn config using the Firebird driver Skipped DBD::ODBC - no Test::Database dsn config using the ODBC driver Pg has 1 variants for DSN dbi:Pg:dbname=test Writing out/Default/Pg/Default/dbh_ro/GetInfo.t Writing out/Default/Pg/Default/dbh_ro/SelectMultiThread.t Writing out/Default/Pg/Default/sth_ro/BasicPrepareExecuteSelect.t SQLite has 1 variants for DSN dbi:SQLite:dbname=/tmp/test.db Writing out/Default/SQLite/Default/dbh_ro/GetInfo.t Writing out/Default/SQLite/Default/dbh_ro/SelectMultiThread.t Writing out/Default/SQLite/Default/sth_ro/BasicPrepareExecuteSelect.t Skipped DBD::Sponge - no Test::Database dsn config using the Sponge driver mysql has 1 variants for DSN dbi:mysql:database=test Writing out/Default/mysql/Default/dbh_ro/GetInfo.t Writing out/Default/mysql/Default/dbh_ro/SelectMultiThread.t Writing out/Default/mysql/Default/sth_ro/BasicPrepareExecuteSelect.t CSV has 1 variants for DSN dbi:CSV:f_ext=.csv/r Writing out/Default-gofer/CSV/Default/dbh_ro/GetInfo.t Writing out/Default-gofer/CSV/Default/dbh_ro/SelectMultiThread.t Writing out/Default-gofer/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t Pg has 1 variants for DSN dbi:Pg:dbname=test Writing out/Default-gofer/Pg/Default/dbh_ro/GetInfo.t Writing out/Default-gofer/Pg/Default/dbh_ro/SelectMultiThread.t Writing out/Default-gofer/Pg/Default/sth_ro/BasicPrepareExecuteSelect.t SQLite has 1 variants for DSN dbi:SQLite:dbname=/tmp/test.db Writing out/Default-gofer/SQLite/Default/dbh_ro/GetInfo.t Writing out/Default-gofer/SQLite/Default/dbh_ro/SelectMultiThread.t Writing out/Default-gofer/SQLite/Default/sth_ro/BasicPrepareExecuteSelect.t mysql has 1 variants for DSN dbi:mysql:database=test Writing out/Default-gofer/mysql/Default/dbh_ro/GetInfo.t Writing out/Default-gofer/mysql/Default/dbh_ro/SelectMultiThread.t Writing out/Default-gofer/mysql/Default/sth_ro/BasicPrepareExecuteSelect.t CSV has 1 variants for DSN dbi:CSV:f_ext=.csv/r Writing out/pureperl/CSV/Default/dbh_ro/GetInfo.t Writing out/pureperl/CSV/Default/dbh_ro/SelectMultiThread.t Writing out/pureperl/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t CSV has 1 variants for DSN dbi:CSV:f_ext=.csv/r Writing out/pureperl-gofer/CSV/Default/dbh_ro/GetInfo.t Writing out/pureperl-gofer/CSV/Default/dbh_ro/SelectMultiThread.t Writing out/pureperl-gofer/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t out/pureperl/CSV/Default/dbh_ro/SelectMultiThread.t .................. skipped: threads not supported out/Default-gofer/SQLite/Default/dbh_ro/SelectMultiThread.t .......... skipped: threads not supported out/Default-gofer/SQLite/Default/dbh_ro/GetInfo.t .................... ok out/Default/Pg/Default/sth_ro/BasicPrepareExecuteSelect.t ............ ok out/Default/SQLite/Default/dbh_ro/GetInfo.t .......................... ok out/Default-gofer/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t ..... ok out/Default-gofer/Pg/Default/dbh_ro/SelectMultiThread.t .............. skipped: threads not supported out/Default/Pg/Default/dbh_ro/GetInfo.t .............................. ok out/Default-gofer/CSV/Default/dbh_ro/GetInfo.t ....................... ok out/Default-gofer/CSV/Default/dbh_ro/SelectMultiThread.t ............. skipped: threads not supported out/Default/mysql/Default/dbh_ro/GetInfo.t ........................... ok out/Default/SQLite/Default/sth_ro/BasicPrepareExecuteSelect.t ........ ok out/Default/mysql/Default/sth_ro/BasicPrepareExecuteSelect.t ......... ok out/Default-gofer/mysql/Default/dbh_ro/SelectMultiThread.t ........... skipped: threads not supported out/Default/mysql/Default/dbh_ro/SelectMultiThread.t ................. skipped: threads not supported out/Default/CSV/Default/dbh_ro/SelectMultiThread.t ................... skipped: threads not supported out/Default/CSV/Default/dbh_ro/GetInfo.t ............................. ok out/Default-gofer/Pg/Default/dbh_ro/GetInfo.t ........................ ok out/Default-gofer/mysql/Default/sth_ro/BasicPrepareExecuteSelect.t ... ok out/pureperl-gofer/CSV/Default/dbh_ro/GetInfo.t ...................... ok out/Default/Pg/Default/dbh_ro/SelectMultiThread.t .................... skipped: threads not supported out/Default-gofer/Pg/Default/sth_ro/BasicPrepareExecuteSelect.t ...... ok out/pureperl-gofer/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t .... ok out/Default/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t ........... ok out/pureperl-gofer/CSV/Default/dbh_ro/SelectMultiThread.t ............ skipped: threads not supported out/Default/SQLite/Default/dbh_ro/SelectMultiThread.t ................ skipped: threads not supported out/Default-gofer/SQLite/Default/sth_ro/BasicPrepareExecuteSelect.t .. ok out/pureperl/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t .......... ok out/Default-gofer/mysql/Default/dbh_ro/GetInfo.t ..................... ok out/pureperl/CSV/Default/dbh_ro/GetInfo.t ............................ ok All tests successful. Test Summary Report ------------------- out/Default-gofer/SQLite/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 1-4 out/Default/Pg/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/Default/SQLite/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 1-4 out/Default-gofer/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/Default/Pg/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 1-5 out/Default-gofer/CSV/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 4 out/Default/mysql/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 1-5 out/Default/SQLite/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/Default/mysql/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/Default/CSV/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 4 out/Default-gofer/Pg/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 1-5 out/Default-gofer/mysql/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/pureperl-gofer/CSV/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 4 out/Default-gofer/Pg/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/pureperl-gofer/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/Default/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4, 12 out/Default-gofer/SQLite/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 4 out/pureperl/CSV/Default/sth_ro/BasicPrepareExecuteSelect.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 12 out/Default-gofer/mysql/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 1-5 out/pureperl/CSV/Default/dbh_ro/GetInfo.t (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 4 Files=30, Tests=200, 1 wallclock secs ( 0.12 usr 0.02 sys + 3.12 cusr 0.20 csys = 3.46 CPU) Result: PASS -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.19 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/