mariadb/mysql-test/suite/plugins/t/rpl_auth.test
Sergei Golubchik 05fe3f1c18 Two problems with auth_parsec.so
1. it links with ${SSL_LIBRARIES}, in WolfSSL builds it's a static
   library, so when a plugin is loaded there will be two copies of
   wolfssl in the same address space. It breaks odr (at least).
2. Plugin can linked with OpenSSL and the server with WolfSSL or
   vice versa. It might load, but then we'll have both WolfSSL and
   OpenSSL at the same time. Kind of risky.

Fix: link the plugin statically into the server if it's a WolfSSL build

adjust tests to work with static and dynamic parsec
2024-08-12 10:32:03 +02:00

45 lines
1.4 KiB
Text

# MSAN doesn't like gnutls_rnd
source include/not_msan.inc;
if ($MTR_COMBINATION_ED25519) {
let $AUTH_PLUGIN = ed25519;
let $CLIENT_PLUGIN=client_ed25519;
}
if ($MTR_COMBINATION_PARSEC) {
let $AUTH_PLUGIN = parsec;
let $CLIENT_PLUGIN=parsec;
}
if (`select count(*) = 0 from information_schema.plugins where plugin_name = '$AUTH_PLUGIN'`)
{
--skip Needs $AUTH_PLUGIN plugin
}
--replace_result $CLIENT_PLUGIN CLIENT_PLUGIN
--error ER_CANT_OPEN_LIBRARY,ER_CANT_FIND_DL_ENTRY
eval install soname '$CLIENT_PLUGIN';
if ($errno == 1126) {
# this happens in bintars when C/C is linked with gnutls
skip $CLIENT_PLUGIN is not found or contains unresolved symbols;
}
# create a user for replication with auth plugin
--replace_result $AUTH_PLUGIN PLUGIN
eval create user rpluser@'%' identified via $AUTH_PLUGIN using PASSWORD('rpl_pass');
grant replication slave on *.* to rpluser@'%';
source include/master-slave.inc;
connection slave;
# Set the slave to connect using the user created with the auth plugin for replication
source include/stop_slave.inc;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
change master to master_user='rpluser', master_password='rpl_pass';
source include/start_slave.inc;
source include/stop_slave.inc;
change master to master_user='root', master_password='';
source include/start_slave.inc;
source include/rpl_end.inc;
drop user rpluser@'%';