perl5-dbi/DBD-mysql

Test with MySQL 8.4.0

Closed this issue · 1 comments

https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-0.html

  • mysql_native_password is now disabled by default
  • There are some removals of deprecated functions. This is probably fine as there were cleanups recently. ( #375 )

Building on Fedora 40 with MySQL 8.4.0 (From RPMs) works.

Testing shows some failures:

$ make test
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- mysql.bs blib/arch/auto/DBD/mysql/mysql.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base.t .............................. 1/6 # Driver version is 5.004
t/00base.t .............................. ok   
t/01caching_sha2_prime.t ................ ok   
t/05dbcreate.t .......................... 1/2 # Database 'test' accessible
t/05dbcreate.t .......................... ok   
t/10connect.t ........................... 1/? # mysql_clientinfo is: 8.4.0
# mysql_clientversion is: 80400
# mysql_serverversion is: 80400
# mysql_hostinfo is: Localhost via UNIX socket
# mysql_serverinfo is: 8.4.0
# mysql_stat is: Uptime: 1470  Threads: 3  Questions: 2726  Slow queries: 0  Opens: 1260  Flush tables: 6  Open tables: 483  Queries per second avg: 1.854
# mysql_protoinfo is: 10
# SQL_DBMS_VER is 8.4.0
# Default storage engine is: InnoDB
t/10connect.t ........................... ok    
t/15reconnect.t ......................... ok     
t/16dbi-get_info.t ...................... ok   
t/17quote.t ............................. ok     
t/20createdrop.t ........................ ok   
t/25lockunlock.t ........................ ok     
t/29warnings.t .......................... ok     
t/30insertfetch.t ....................... ok    
t/31insertid.t .......................... ok     
t/32insert_error.t ...................... ok   
t/35limit.t ............................. ok       
t/35prepare.t ........................... ok     
t/40bindparam.t ......................... ok     
t/40bindparam2.t ........................ ok     
t/40bit.t ............................... ok     
t/40blobs.t ............................. ok     
t/40catalog.t ........................... ok     
t/40keyinfo.t ........................... ok   
t/40listfields.t ........................ ok     
t/40nulls.t ............................. ok     
t/40nulls_prepare.t ..................... ok    
t/40numrows.t ........................... ok     
t/40server_prepare.t .................... ok     
t/40server_prepare_crash.t .............. ok     
t/40server_prepare_error.t .............. ok   
t/40types.t ............................. ok     
t/41bindparam.t ......................... ok     
t/41blobs_prepare.t ..................... ok     
t/41int_min_max.t ....................... ok       
t/42bindparam.t ......................... ok     
t/43count_params.t ...................... ok     
t/50chopblanks.t ........................ ok     
t/50commit.t ............................ ok     
t/51bind_type_guessing.t ................ 1/98 DBD::mysql::st execute failed: Data truncated for column 'dd' at row 1 at t/51bind_type_guessing.t line 136.
DBD::mysql::st execute failed: Data truncated for column 'nn' at row 1 at t/51bind_type_guessing.t line 114.
DBD::mysql::st execute failed: Data truncated for column 'dd' at row 1 at t/51bind_type_guessing.t line 136.
DBD::mysql::st execute failed: Incorrect integer value: '+' for column 'nn' at row 1 at t/51bind_type_guessing.t line 114.
DBD::mysql::st execute failed: Data truncated for column 'dd' at row 1 at t/51bind_type_guessing.t line 136.
DBD::mysql::st execute failed: Incorrect integer value: '.' for column 'nn' at row 1 at t/51bind_type_guessing.t line 114.
DBD::mysql::st execute failed: Data truncated for column 'dd' at row 1 at t/51bind_type_guessing.t line 136.
DBD::mysql::st execute failed: Incorrect integer value: 'e5' for column 'nn' at row 1 at t/51bind_type_guessing.t line 114.
DBD::mysql::st execute failed: Data truncated for column 'dd' at row 1 at t/51bind_type_guessing.t line 136.
t/51bind_type_guessing.t ................ ok     
t/52comment.t ........................... ok     
t/53comment.t ........................... ok    
t/55utf8.t .............................. ok     
t/55utf8mb4.t ........................... ok   
t/56connattr.t .......................... ok   
t/57trackgtid.t ......................... skipped: GTID tracking not enabled
t/60leaks.t ............................. skipped: Skip $ENV{EXTENDED_TESTING} is not set
t/65segfault.t .......................... ok   
t/65types.t ............................. ok     
t/70takeimp.t ........................... ok     
t/71impdata.t ........................... ok     
t/75supported_sql.t ..................... ok     
t/76multi_statement.t ................... ok     
t/80procs.t ............................. ok     
t/81procs.t ............................. ok     
t/85init_command.t ...................... ok   
t/86_bug_36972.t ........................ ok     
t/87async.t ............................. ok     
t/88async-multi-stmts.t ................. ok   
t/89async-method-check.t ................ ok       
t/91errcheck.t .......................... ok   
t/92ssl_backronym_vulnerability.t ....... 1/4 
#   Failed test 'DBD::mysql refused connection to non-SSL server with mysql_ssl=1 and correct user and password'
#   at t/92ssl_backronym_vulnerability.t line 19.

#   Failed test 'DBD::mysql error message is SSL related'
#   at t/92ssl_backronym_vulnerability.t line 20.
#          got: undef
#     expected: '2026'
# Error message: unknown
# Looks like you failed 2 tests of 4.
t/92ssl_backronym_vulnerability.t ....... Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/4 subtests 
t/92ssl_optional.t ...................... ok   
t/92ssl_riddle_vulnerability.t .......... 1/4 
#   Failed test 'DBD::mysql error message is SSL related'
#   at t/92ssl_riddle_vulnerability.t line 20.
#          got: '1045'
#     expected: '2026'
# Error message: Access denied for user '4yZ73s9qeECdWi'@'localhost' (using password: YES)
t/92ssl_riddle_vulnerability.t .......... 3/4 # Looks like you failed 1 test of 4.
t/92ssl_riddle_vulnerability.t .......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests 
t/99_bug_server_prepare_blob_null.t ..... ok     
t/99compression.t ....................... ok    
t/gh352.t ............................... 1/2 DBD::mysql::db prepare failed: Statement not active at t/gh352.t line 27.
t/gh352.t ............................... ok   
t/gh360.t ............................... ok   
t/manifest.t ............................ skipped: these tests are for release testing
t/pod.t ................................. skipped: Test::Pod 1.00 required for testing POD
t/rt110983-valid-mysqlfd.t .............. ok   
t/rt118977-zerofill.t ................... ok   
t/rt25389-bin-case.t .................... ok   
t/rt50304-column_info_parentheses.t ..... ok    
t/rt61849-bind-param-buffer-overflow.t .. ok   
t/rt75353-innodb-lock-timeout.t ......... ok   
t/rt83494-quotes-comments.t ............. ok   
t/rt85919-fetch-lost-connection.t ....... ok   
t/rt86153-reconnect-fail-memory.t ....... skipped: $ENV{EXTENDED_TESTING} is not set
t/rt88006-bit-prepare.t ................. ok    
t/rt91715.t ............................. ok   
t/version.t ............................. 1/? # mysql_get_client_version: 80400
t/version.t ............................. ok   

Test Summary Report
-------------------
t/92ssl_backronym_vulnerability.t     (Wstat: 512 (exited 2) Tests: 4 Failed: 2)
  Failed tests:  1-2
  Non-zero exit status: 2
t/92ssl_riddle_vulnerability.t        (Wstat: 256 (exited 1) Tests: 4 Failed: 1)
  Failed test:  2
  Non-zero exit status: 1
Files=79, Tests=2456, 42 wallclock secs ( 0.48 usr  0.12 sys +  5.38 cusr  1.18 csys =  7.16 CPU)
Result: FAIL
Failed 2/79 test programs. 3/2456 subtests failed.
make: *** [Makefile:1224: test_dynamic] Error 255