RE: Problem testing DBD::mysql 3.0004

"Martin J. Evans" <[email protected]>
Newsgroups gmane.comp.db.mysql.perl
Organization Easysoft Ltd
Message-ID <[email protected]>
Richard,

I wrote t/prepare_noerror.t.

It works for me with DBD::mysql 3.0004 and 3.0004_1.

It was written to ensure you get an error if invalid SQL is entered

i.e.

my $dbh = DBI->connect("$test_dsn;mysql_server_prepare=1", $user, $pass);
eval { $srh = $dbh->prepare("select select select");};
if (!defined($DBI::errstr)) {
    print "DBI::errstr not defined - should be\n";
} else {
    print "$DBI::errstr\n";
}

It was written to highlight the fact that an error was not coming back
when mysql_server_prepare = 1.

Unless you connect to mysql with mysql_server_prepare=1 it does not matter.

However, I would be interested if you could:

edit t/prepare_noerror.t and uncomment the "print STDERR $DBI::errstr" line
then rerun the test with:

make test TEST_VERBOSE=1 and send me the output.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
http://www.easysoft.com


On 22-May-2006 Richard Skelton wrote:
> Hi,
> I am trying to install the module DBD::mysql 3.0004 for perl 5.008008 on 
> Solaris and it fails the test t/prepare_noerror :-
> 
> root: /opt/perl-5.8.8/bin/perl Makefile.PL
> I will use the following settings for compiling and testing:
> 
>   cflags        (mysql_config) = -I/usr/sfw/include/mysql -xstrconst -mt
>   embedded      (mysql_config) =
>   libs          (mysql_config) = -R/usr/sfw/lib -R/usr/sfw/lib/mysql 
> -L/usr/sfw/lib -L/usr/sfw/lib/mysql -lmysqlclient -lz -lposix4 -lcrypt 
> -lgen -lsocket -lnsl -lm
>   mysql_config  (guessed     ) = mysql_config
>   nocatchstderr (default     ) = 0
>   nofoundrows   (default     ) = 0
>   ssl           (guessed     ) = 0
>   testdb        (default     ) = test
>   testhost      (default     ) =
>   testpassword  (default     ) =
>   testsocket    (default     ) =
>   testuser      (default     ) =
> 
> To change these settings, see 'perl Makefile.PL --help' and
> 'perldoc INSTALL'.
> 
> Checking if your kit is complete...
> Looks good
> Using DBI 1.50 (for perl 5.008008 on sun4-solaris) installed in 
> /opt/perl-5.8.8/lib/site_perl/5.8.8/sun4-solaris/auto/DBI/
> Writing Makefile for DBD::mysql
> root: make test
> cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
> cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
> cp lib/Mysql.pm blib/lib/Mysql.pm
> cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
> cp lib/Mysql/Statement.pm blib/lib/Mysql/Statement.pm
> cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
> cc -c  -I/opt/perl-5.8.8/lib/site_perl/5.8.8/sun4-solaris/auto/DBI/ 
> -I/usr/sfw/include/mysql -xstrconst -mt -DDBD_MYSQL_INSERT_ID_IS_GOOD 
> -g  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
> -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -fast -xtarget=ultra2    
> -DVERSION=\"3.0004\"  -DXS_VERSION=\"3.0004\" -KPIC 
> "-I/opt/perl-5.8.8/lib/5.8.8/sun4-solaris/CORE"   dbdimp.c
> /opt/perl-5.8.8/bin/perl -p -e "s/~DRIVER~/mysql/g" 
> /opt/perl-5.8.8/lib/site_perl/5.8.8/sun4-solaris/auto/DBI//Driver.xst > 
> mysql.xsi
> /opt/perl-5.8.8/bin/perl /opt/perl-5.8.8/lib/5.8.8/ExtUtils/xsubpp  
> -typemap /opt/perl-5.8.8/lib/5.8.8/ExtUtils/typemap  mysql.xs > 
> mysql.xsc && mv mysql.xsc mysql.c
> Warning: duplicate function definition 'do' detected in mysql.xs, line 224
> Warning: duplicate function definition 'rows' detected in mysql.xs, line 559
> cc -c  -I/opt/perl-5.8.8/lib/site_perl/5.8.8/sun4-solaris/auto/DBI/ 
> -I/usr/sfw/include/mysql -xstrconst -mt -DDBD_MYSQL_INSERT_ID_IS_GOOD 
> -g  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
> -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -fast -xtarget=ultra2    
> -DVERSION=\"3.0004\"  -DXS_VERSION=\"3.0004\" -KPIC 
> "-I/opt/perl-5.8.8/lib/5.8.8/sun4-solaris/CORE"   mysql.c
> "mysql.xs", line 631: warning: implicit function declaration: is_prefix
> Running Mkbootstrap for DBD::mysql ()
> chmod 644 mysql.bs
> rm -f blib/arch/auto/DBD/mysql/mysql.so
> LD_RUN_PATH="/usr/sfw/lib:/usr/lib" /opt/perl-5.8.8/bin/perl myld cc  -G 
> -L/usr/lib -L/usr/ccs/lib -L/opt/studio10/SUNWspro/prod/lib/v8plus 
> -L/opt/studio10/SUNWspro/prod/lib -L/lib -L/usr/local/lib dbdimp.o  
> mysql.o  -o blib/arch/auto/DBD/mysql/mysql.so   \
>    -R/usr/sfw/lib -R/usr/sfw/lib/mysql -L/usr/sfw/lib 
> -L/usr/sfw/lib/mysql -lmysqlclient -lz -lposix4 -lcrypt -lgen -lsocket 
> -lnsl -lm          \
>  
> chmod 755 blib/arch/auto/DBD/mysql/mysql.so
> cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
> chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
> PERL_DL_NONLAZY=1 /opt/perl-5.8.8/bin/perl "-MExtUtils::Command::MM" 
> "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/00base.............ok                                                      
> 
> t/10dsnlist..........ok                                                      
> 
> t/20createdrop.......ok                                                      
> 
> t/30insertfetch......ok                                                      
> 
> t/35limit............ok                                                      
> 
> t/35prepare..........ok                                                      
> 
> t/40bindparam........ok                                                      
> 
> t/40blobs............ok                                                      
> 
> t/40listfields.......ok                                                      
> 
> t/40nulls............ok                                                      
> 
> t/40numrows..........ok                                                      
> 
> t/41bindparam........ok                                                      
> 
> t/41blobs_prepare....ok                                                      
> 
> t/42bindparam........ok                                                      
> 
> t/50chopblanks.......ok                                                      
> 
> t/50commit...........ok                                                      
> 
> t/60leaks............skipped
>         all skipped: $ENV{SLOW_TESTS} is not set or Proc::ProcessTable 
> not installed
> t/dbdadmin...........ok                                                      
> 
> t/insertid...........ok                                                      
> 
> t/param_values.......ok                                                      
> 
> t/prepare_noerror....FAILED test 
> 2                                          
>         Failed 1/3 tests, 66.67% okay
> t/texecute...........ok                                                      
> 
> Failed Test         Stat Wstat Total Fail  Failed  List of Failed
> ------------------------------------------------------------------------------
> -
> t/prepare_noerror.t                3    1  33.33%  2
> 1 test skipped.
> Failed 1/22 test scripts, 95.45% okay. 1/434 subtests failed, 99.77% okay.
> *** Error code 29
> make: Fatal error: Command failed for target `test_dynamic'
> 
> 
> How do I fix this problem?
> 
> -- 
> 
> 
> 
> Cheers
> 
> Richard Skelton
> [email protected]
> Infineon Technologies UK Ltd
> Infineon House
> Great Western Court
> Hunts Ground Road
> Stoke Gifford
> Bristol
> BS34 8HP
> Tel +44(0)117 9528808
> 
> -- 
> MySQL Perl Mailing List
> For list archives: http://lists.mysql.com/perl
> To unsubscribe:   
> http://lists.mysql.com/[email protected]

-- 
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe:    http://lists.mysql.com/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.