mariadb/mysql-test/main/mysqladmin.test
Daniel Black 7d7898a47e MDEV-37169: MSAN disable main.{mysqladmin,statistics_upgrade_not_done}
The causes of these test failures are sparatic and haven't been
generated locally. The stack trace looks like it could be an
internal MSAN error too. Disable for the time being as there
is some server coverage of these test paths elsewhere.
2025-07-10 13:46:45 -06:00

102 lines
3.6 KiB
Text

# Embedded server doesn't support external clients
--source include/not_embedded.inc
# MDEV-37169 - msan unknown failure
--source include/not_msan.inc
#
# Test "mysqladmin ping"
#
--exec $MYSQLADMIN --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
#
# Bug#10608 mysqladmin breaks on "database" variable in my.cnf
#
--replace_regex /.*mariadb-admin.*: unknown/mariadb-admin: unknown/
--error 7
--exec $MYSQLADMIN --database=db1 --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
# When mysqladmin finds "loose-database" it shall print
# a warning and continue
--replace_regex /Warning: .*mariadb-admin.*: unknown/Warning: mariadb-admin: unknown/
--exec $MYSQLADMIN --loose-database=db2 --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
--echo #
--echo # Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
--echo #
--echo # Executing mysqladmin with --sleep=1 and --count=2.
--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --sleep=1 --count=2 ping > $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
--echo # Done.
--echo # Displaying the output :
--cat_file $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
--remove_file $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
--echo #
--echo # BUG#11766184 - 59234: cmdline clients crash --defaults-extra-file
--echo # with no .cnf or .ini extension.
--echo #
--echo # Creating an empty file 'cnf_file'
--write_file $MYSQLTEST_VARDIR/tmp/cnf_file
EOF
--echo # Using --defaults-extra-file option with 'cnf_file'.
--exec $MYSQLADMIN --defaults-extra-file=$MYSQLTEST_VARDIR/tmp/cnf_file -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT ping 2>&1
--remove_file $MYSQLTEST_VARDIR/tmp/cnf_file
#
# MDEV-7883 Segmentation failure when running mysqladmin -u root -p
#
--error 1
--exec $MYSQLADMIN -u root -p 2>&1 > /dev/null
#
# MDEV-19168 Reload SSL certificate
# This test reloads server SSL certs ./mysqladmin flush-ssl, and checks that new SSL
# connection use new certificate.
# Status variable Ssl_server_not_after is used to tell the old certificate from new.
#
source include/have_ssl_communication.inc;
# Restart server with cert. files located in temp directory
# We are going to remove / replace them within the test,
# so we can't use the ones in std_data directly.
let $ssl_cert=$MYSQLTEST_VARDIR/tmp/ssl_cert.pem;
let $ssl_key=$MYSQLTEST_VARDIR/tmp/ssl_key.pem;
copy_file $MYSQL_TEST_DIR/std_data/server-key.pem $ssl_key;
copy_file $MYSQL_TEST_DIR/std_data/server-cert.pem $ssl_cert;
let $restart_parameters=--ssl-key=$ssl_key --ssl-cert=$ssl_cert;
--source include/restart_mysqld.inc
connect ssl_con,localhost,root,,,,,SSL;
--disable_cursor_protocol
SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after';
--enable_cursor_protocol
let $ssl_not_after=`SELECT @ssl_not_after`;
remove_file $ssl_cert;
remove_file $ssl_key;
--echo # Use a different certificate ("Not after" certificate field changed)
copy_file $MYSQL_TEST_DIR/std_data/server-new-key.pem $ssl_key;
copy_file $MYSQL_TEST_DIR/std_data/server-new-cert.pem $ssl_cert;
--exec $MYSQLADMIN --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= flush-ssl 2>&1
--echo # Check new certificate used by new connection
exec $MYSQL --ssl -e "SELECT IF(VARIABLE_VALUE <> '$ssl_not_after', 'OK', 'FAIL') as Result FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after'";
--echo # Cleanup
remove_file $ssl_cert;
remove_file $ssl_key;
# restart with usual SSL
let $restart_parameters=;
--source include/restart_mysqld.inc