diff options
author | Elena Stepanova <elenst@gmail.com> | 2013-03-14 16:52:20 +0400 |
---|---|---|
committer | Elena Stepanova <elenst@gmail.com> | 2013-03-14 16:52:20 +0400 |
commit | b0f5c4dbe1df0caf4b5ca1216000f1f87553ad4c (patch) | |
tree | 86f4faeabe36198dc7f5a658323f15e822e5f583 | |
parent | 372bc22bfaacd5c6959b99729a68e2d2a3b923a4 (diff) | |
download | mariadb-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.inc | 37 | ||||
-rw-r--r-- | mysql-test/t/partition_rename_longfilename.test | 1 |
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 |