summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorIngo Struewing <ingo.struewing@sun.com>2008-11-25 15:06:31 +0100
committerIngo Struewing <ingo.struewing@sun.com>2008-11-25 15:06:31 +0100
commita8d3f0325b6c0ae3a4cb47e3991c1a14e804e470 (patch)
tree91c4053e3ef00cffe7573dbc0d0930cea5cf4580 /mysql-test
parentd47f9233f41c50121d3fb5a9311cbddc0fe145e7 (diff)
downloadmariadb-git-a8d3f0325b6c0ae3a4cb47e3991c1a14e804e470.tar.gz
Bug#41002 - symlink.test fails on symlinked datadir
symlink.test failed when run in an environment that has mysql-test/var symlinked to elsewhere, e.g. a memory file system. This is the case when running mysql-test-run --mem. In this case the server does not detect that the directory specified with a DATA/INDEX DIRECTORY clause is within its data home directory. This problem was reported as Bug#39277 (Creation of table with data and/or index files in data home directory succeeds). It was decided that it will not be fixed in 5.1. Hence, the current behavior is accepted for 5.1. It will be fixed in 6.0 though. Fixed the test case so that it works in both environments. 1. When no symbolic link is involved, the server notices that the data/index directory is in its data hone directory and rejects the CREATE/ALTER TABLE statement. 2. When the data home directory is symlinked, it does not notice the problem and executes the statement sucessfully. mysql-test/r/symlink.result: Bug#41002 - symlink.test fails on symlinked datadir Updated test result. mysql-test/t/symlink.test: Bug#41002 - symlink.test fails on symlinked datadir Adjusted the test case to the accepted behavior. It needs to accept success and failure of some statements.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/symlink.result8
-rw-r--r--mysql-test/t/symlink.test31
2 files changed, 31 insertions, 8 deletions
diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result
index 7711517fe5e..03bdeaceb58 100644
--- a/mysql-test/r/symlink.result
+++ b/mysql-test/r/symlink.result
@@ -148,16 +148,16 @@ DROP TABLE t1;
End of 5.0 tests
CREATE TABLE t1(a INT)
INDEX DIRECTORY='TEST_DIR/master-data/mysql';
-ERROR HY000: Incorrect arguments to INDEX DIRECTORY
+DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT)
DATA DIRECTORY='TEST_DIR/master-data/test';
-ERROR HY000: Incorrect arguments to DATA DIRECTORY
+DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT)
DATA DIRECTORY='TEST_DIR/master-data/';
-ERROR HY000: Incorrect arguments to DATA DIRECTORY
+DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT)
INDEX DIRECTORY='TEST_DIR/master-data';
-ERROR HY000: Incorrect arguments to INDEX DIRECTORY
+DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT)
INDEX DIRECTORY='TEST_DIR/master-data_var';
ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errcode: 2)
diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test
index 3c7e9b658f3..b13640e7f3b 100644
--- a/mysql-test/t/symlink.test
+++ b/mysql-test/t/symlink.test
@@ -194,26 +194,49 @@ DROP TABLE t1;
#
# Bug#32167: another privilege bypass with DATA/INDEX DIRECTORY
#
+# With Bug#41002 (symlink.test fails on symlinked datadir) it was
+# decided that the below statements may also succeed if the data
+# home directory is symlinked, e.g. mysql-test-run --mem.
+# This will be fixed in 6.0 only.
+#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error ER_WRONG_ARGUMENTS
+--error 0,ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql';
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error ER_WRONG_ARGUMENTS
+--error 0,ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/test';
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error ER_WRONG_ARGUMENTS
+--error 0,ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/';
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error ER_WRONG_ARGUMENTS
+--error 0,ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data';
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
--error 1
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data_var';
+
+#
# BUG#25677 - With --skip-symbolic-links option on, DATA DIRECTORY clause is
# silently ignored
#