summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena Stepanova <elenst@gmail.com>2013-03-14 16:52:20 +0400
committerElena Stepanova <elenst@gmail.com>2013-03-14 16:52:20 +0400
commitb0f5c4dbe1df0caf4b5ca1216000f1f87553ad4c (patch)
tree86f4faeabe36198dc7f5a658323f15e822e5f583
parent372bc22bfaacd5c6959b99729a68e2d2a3b923a4 (diff)
downloadmariadb-git-b0f5c4dbe1df0caf4b5ca1216000f1f87553ad4c.tar.gz
MDEV-4214 : main.partition_rename_longfilename fails on eCryptFS
Adding an include file which checks whether long names are supported
-rw-r--r--mysql-test/include/support_long_file_names.inc37
-rw-r--r--mysql-test/t/partition_rename_longfilename.test1
2 files changed, 38 insertions, 0 deletions
diff --git a/mysql-test/include/support_long_file_names.inc b/mysql-test/include/support_long_file_names.inc
new file mode 100644
index 00000000000..1f5b3d7be08
--- /dev/null
+++ b/mysql-test/include/support_long_file_names.inc
@@ -0,0 +1,37 @@
+--error 0,3
+--perl
+my $n = 254 - length($ENV{MYSQLTEST_VARDIR});
+my $name = $ENV{MYSQLTEST_VARDIR} . '/' . sprintf("%0${n}d", $$);
+if (!open(LONG_NAME,">$name"))
+{
+ # We cannot rely either on a particular error code, or error string
+ # to check that we indeed hit "File name too long".
+ # Instead, we will try to create a file with a short name
+ # the same way, in the same location. If it goes all right,
+ # we will assume the problem was with the file name length
+
+ open(SHORT_NAME,">$ENV{MYSQLTEST_VARDIR}/$$") ||
+ # Even a shorter name could not be created, something else is wrong
+ die "Could not create file $ENV{MYSQLTEST_VARDIR}/$$: $!";
+ close(SHORT_NAME);
+ unlink("$ENV{MYSQLTEST_VARDIR}/$$");
+ exit(3);
+} else {
+ close(LONG_NAME);
+ unlink($name);
+ exit(0);
+}
+EOF
+
+# If perl exited with error code 0, the check has passed,
+# so the calling test will be executed.
+# If perl exited with error code 3, it will be caught by
+# --error above, and processed by the check below.
+# If perl exited with some other error code, something went wrong,
+# so the test will fail.
+
+if ($errno)
+{
+ --skip Long file names are not supported
+}
+
diff --git a/mysql-test/t/partition_rename_longfilename.test b/mysql-test/t/partition_rename_longfilename.test
index 5e454f01da7..51d9c583f56 100644
--- a/mysql-test/t/partition_rename_longfilename.test
+++ b/mysql-test/t/partition_rename_longfilename.test
@@ -1,4 +1,5 @@
-- source include/not_windows.inc
+-- source include/support_long_file_names.inc
-- source include/have_partition.inc
-- source include/not_embedded.inc
--disable_warnings