From 3180e76262f724ad83819c718af9a89fb490c78f Mon Sep 17 00:00:00 2001 From: Kristian Nielsen Date: Wed, 12 Nov 2014 11:10:13 +0100 Subject: [PATCH] MDEV-7089: Test failures in main.failed_auth_unixsocket and plugins.unix_socket depending on environment The test cases had some --replace_result $USER USER. The problem is that the value of $USER can be anything, depending on the name of the unix account that runs the test suite. So random parts of the result can be errorneously replaced, causing test failures. Fix by making the replacements more specific, so they will match only the intended stuff regardless of the value of $USER. --- mysql-test/suite/plugins/t/unix_socket.test | 10 +++++++--- mysql-test/t/failed_auth_unixsocket.test | 10 ++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/mysql-test/suite/plugins/t/unix_socket.test b/mysql-test/suite/plugins/t/unix_socket.test index 2c1af9fb1da..1522c9b7cbe 100644 --- a/mysql-test/suite/plugins/t/unix_socket.test +++ b/mysql-test/suite/plugins/t/unix_socket.test @@ -12,11 +12,14 @@ eval install plugin unix_socket soname '$AUTH_SOCKET_SO'; --echo # with named user --echo # ---replace_result $USER USER +--let $replace=create user $USER +--replace_result $replace "create user USER" eval create user $USER identified via unix_socket; --write_file $MYSQLTEST_VARDIR/tmp/peercred_test.txt ---replace_result $USER USER +--let $replace1=$USER@localhost +--let $replace2=$USER@% +--replace_result $replace1 "USER@localhost" $replace2 "USER@%" select user(), current_user(), database(); EOF @@ -31,7 +34,8 @@ EOF --error 1 --exec $MYSQL_TEST -u foobar --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/peercred_test.txt ---replace_result $USER USER +--let $replace=drop user $USER +--replace_result $replace "drop user USER" eval drop user $USER; --echo # diff --git a/mysql-test/t/failed_auth_unixsocket.test b/mysql-test/t/failed_auth_unixsocket.test index ba31cf6a59f..f7345f44698 100644 --- a/mysql-test/t/failed_auth_unixsocket.test +++ b/mysql-test/t/failed_auth_unixsocket.test @@ -16,11 +16,17 @@ change_user $USER; eval install plugin unix_socket soname '$AUTH_SOCKET_SO'; ---replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT $USER USER +# Make sure that the replace works, even if $USER is 'user' or something else +# that matches other parts of the error message. +--echo connect(localhost,USER,,test,MASTER_PORT,MASTER_SOCKET); +--let $replace=Access denied for user '$USER' +--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT $replace "Access denied for user 'USER'" +--disable_query_log --error ER_ACCESS_DENIED_NO_PASSWORD_ERROR connect (fail,localhost,$USER); +--enable_query_log ---replace_result $USER USER +--replace_result $replace "Access denied for user 'USER'" --error ER_ACCESS_DENIED_NO_PASSWORD_ERROR change_user $USER;