Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
bb4b8c74
Commit
bb4b8c74
authored
Oct 28, 2016
by
Jan Lindström
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MDEV-9099: Test encryption.innodb_encryption_discard_import fails on buildbot
parent
de0f77a2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
152 additions
and
110 deletions
+152
-110
mysql-test/suite/encryption/include/innodb-util.pl
mysql-test/suite/encryption/include/innodb-util.pl
+126
-0
mysql-test/suite/encryption/r/innodb_encryption_discard_import.result
...uite/encryption/r/innodb_encryption_discard_import.result
+11
-32
mysql-test/suite/encryption/t/innodb_encryption_discard_import.test
.../suite/encryption/t/innodb_encryption_discard_import.test
+15
-78
No files found.
mysql-test/suite/encryption/include/innodb-util.pl
0 → 100644
View file @
bb4b8c74
#
# Utility functions to copy files for WL#5522
#
# All the tables must be in the same database, you can call it like so:
# ib_backup_tablespaces("test", "t1", "blah", ...).
use
File::
Copy
;
use
File::
Spec
;
sub
ib_normalize_path
{
my
(
$path
)
=
@_
;
}
sub
ib_backup_tablespace
{
my
(
$db
,
$table
)
=
@_
;
my
$datadir
=
$ENV
{'
MYSQLD_DATADIR
'};
my
$cfg_file
=
sprintf
("
%s.cfg
",
$table
);
my
$ibd_file
=
sprintf
("
%s.ibd
",
$table
);
my
$tmpd
=
$ENV
{'
MYSQLTEST_VARDIR
'}
.
"
/tmp
";
my
@args
=
(
File::
Spec
->
catfile
(
$datadir
,
$db
,
$ibd_file
),
File::
Spec
->
catfile
(
$tmpd
,
$ibd_file
));
copy
(
@args
)
or
die
"
copy
@args
failed: $!
";
my
@args
=
(
File::
Spec
->
catfile
(
$datadir
,
$db
,
$cfg_file
),
File::
Spec
->
catfile
(
$tmpd
,
$cfg_file
));
copy
(
@args
)
or
die
"
copy
@args
failed: $!
";
}
sub
ib_cleanup
{
my
(
$db
,
$table
)
=
@_
;
my
$datadir
=
$ENV
{'
MYSQLD_DATADIR
'};
my
$cfg_file
=
sprintf
("
%s.cfg
",
$table
);
print
"
unlink:
$cfg_file
\n
";
# These may or may not exist
unlink
(
File::
Spec
->
catfile
(
$datadir
,
$db
,
$cfg_file
));
}
sub
ib_unlink_tablespace
{
my
(
$db
,
$table
)
=
@_
;
my
$datadir
=
$ENV
{'
MYSQLD_DATADIR
'};
my
$ibd_file
=
sprintf
("
%s.ibd
",
$table
);
print
"
unlink:
$ibd_file
\n
";
# This may or may not exist
unlink
(
File::
Spec
->
catfile
(
$datadir
,
$db
,
$ibd_file
));
ib_cleanup
(
$db
,
$table
);
}
sub
ib_backup_tablespaces
{
my
(
$db
,
@tables
)
=
@_
;
foreach
my
$table
(
@tables
)
{
print
"
backup:
$table
\n
";
ib_backup_tablespace
(
$db
,
$table
);
}
}
sub
ib_discard_tablespace
{
}
sub
ib_discard_tablespaces
{
}
sub
ib_restore_cfg_file
{
my
(
$tmpd
,
$datadir
,
$db
,
$table
)
=
@_
;
my
$cfg_file
=
sprintf
("
%s.cfg
",
$table
);
my
@args
=
(
File::
Spec
->
catfile
(
$tmpd
,
$cfg_file
),
File::
Spec
->
catfile
(
$datadir
,
"
$db
",
$cfg_file
));
copy
(
@args
)
or
die
"
copy
@args
failed: $!
";
}
sub
ib_restore_ibd_file
{
my
(
$tmpd
,
$datadir
,
$db
,
$table
)
=
@_
;
my
$ibd_file
=
sprintf
("
%s.ibd
",
$table
);
my
@args
=
(
File::
Spec
->
catfile
(
$tmpd
,
$ibd_file
),
File::
Spec
->
catfile
(
$datadir
,
$db
,
$ibd_file
));
copy
(
@args
)
or
die
"
copy
@args
failed: $!
";
}
sub
ib_restore_tablespace
{
my
(
$db
,
$table
)
=
@_
;
my
$datadir
=
$ENV
{'
MYSQLD_DATADIR
'};
my
$tmpd
=
$ENV
{'
MYSQLTEST_VARDIR
'}
.
"
/tmp
";
ib_restore_cfg_file
(
$tmpd
,
$datadir
,
$db
,
$table
);
ib_restore_ibd_file
(
$tmpd
,
$datadir
,
$db
,
$table
);
}
sub
ib_restore_tablespaces
{
my
(
$db
,
@tables
)
=
@_
;
foreach
my
$table
(
@tables
)
{
print
"
restore:
$table
.ibd and .cfg files
\n
";
ib_restore_tablespace
(
$db
,
$table
);
}
}
sub
ib_restore_cfg_files
{
my
(
$db
,
@tables
)
=
@_
;
my
$datadir
=
$ENV
{'
MYSQLD_DATADIR
'};
my
$tmpd
=
$ENV
{'
MYSQLTEST_VARDIR
'}
.
"
/tmp
";
foreach
my
$table
(
@tables
)
{
print
"
restore:
$table
.cfg file
\n
";
ib_restore_cfg_file
(
$tmpd
,
$datadir
,
$db
,
$table
);
}
}
sub
ib_restore_ibd_files
{
my
(
$db
,
@tables
)
=
@_
;
my
$datadir
=
$ENV
{'
MYSQLD_DATADIR
'};
my
$tmpd
=
$ENV
{'
MYSQLTEST_VARDIR
'}
.
"
/tmp
";
foreach
my
$table
(
@tables
)
{
print
"
restore:
$table
.ibd file
\n
";
ib_restore_ibd_file
(
$tmpd
,
$datadir
,
$db
,
$table
);
}
}
mysql-test/suite/encryption/r/innodb_encryption_discard_import.result
View file @
bb4b8c74
...
...
@@ -28,62 +28,41 @@ NOT FOUND /foobar/ in t1.ibd
NOT FOUND /temp/ in t2.ibd
# t3 ... on expecting NOT FOUND
NOT FOUND /barfoo/ in t3.ibd
FLUSH TABLE t1, t2, t3 FOR EXPORT;
# List before copying files
t1.cfg
t1.frm
t1.ibd
t2.cfg
t2.frm
t2.ibd
t3.cfg
t3.frm
t3.ibd
UNLOCK TABLES;
# Restarting server
# Done restarting server
# List before t1 DISCARD
FLUSH TABLES t1, t2, t3 FOR EXPORT;
backup: t1
backup: t2
backup: t3
t1.cfg
t1.frm
t1.ibd
t2.cfg
t2.frm
t2.ibd
t3.cfg
t3.frm
t3.ibd
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
UNLOCK TABLES;
ALTER TABLE t1 DISCARD TABLESPACE;
ALTER TABLE t2 DISCARD TABLESPACE;
ALTER TABLE t3 DISCARD TABLESPACE;
# List after t1 DISCARD
t1.frm
t2.frm
t3.frm
# Restarting server
# Done restarting server
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
# Tablespaces should be still encrypted
# t1 yes on expecting NOT FOUND
NOT FOUND /foobar/ in t1.ibd
# t2 ... on expecting NOT FOUND
NOT FOUND /temp/ in t2.ibd
# t3 ... on expecting NOT FOUND
NOT FOUND /barfoo/ in t3.ibd
restore: t1 .ibd and .cfg files
restore: t2 .ibd and .cfg files
restore: t3 .ibd and .cfg files
ALTER TABLE t1 IMPORT TABLESPACE;
Warnings:
Warning 1814 Tablespace has been discarded for table 't1'
SELECT COUNT(1) FROM t1;
COUNT(1)
10000
ALTER TABLE t2 IMPORT TABLESPACE;
Warnings:
Warning 1814 Tablespace has been discarded for table 't2'
SELECT COUNT(1) FROM t2;
COUNT(1)
10000
ALTER TABLE t3 IMPORT TABLESPACE;
Warnings:
Warning 1814 Tablespace has been discarded for table 't3'
SELECT COUNT(1) FROM t3;
COUNT(1)
10000
...
...
mysql-test/suite/encryption/t/innodb_encryption_discard_import.test
View file @
bb4b8c74
...
...
@@ -2,12 +2,12 @@
--
source
include
/
have_example_key_management_plugin
.
inc
--
source
include
/
not_valgrind
.
inc
--
source
include
/
not_embedded
.
inc
--
source
include
/
not_windows
.
inc
call
mtr
.
add_suppression
(
"InnoDB: Table .* tablespace is set as discarded."
);
--
let
$MYSQLD_TMPDIR
=
`SELECT @@tmpdir`
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
let
$MYSQLD_TMPDIR
=
`SELECT @@tmpdir`
;
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
;
--
let
SEARCH_RANGE
=
10000000
--
let
$id
=
`SELECT RAND()`
--
let
t1_IBD
=
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
...
...
@@ -66,88 +66,25 @@ set autocommit=1;
--
let
SEARCH_FILE
=
$t3_IBD
--
source
include
/
search_pattern_in_file
.
inc
FLUSH
TABLE
t1
,
t2
,
t3
FOR
EXPORT
;
--
echo
# List before copying files
let
MYSQLD_DATADIR
=
`SELECT @@datadir`
;
--
list_files
$MYSQLD_DATADIR
/
test
--
disable_result_log
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_TMPDIR
/
t1
.
cfg
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_TMPDIR
/
t1
.
ibd
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_TMPDIR
/
t2
.
cfg
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_TMPDIR
/
t2
.
ibd
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_TMPDIR
/
t3
.
cfg
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_TMPDIR
/
t3
.
ibd
--
enable_result_log
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_TMPDIR
/
t1
$id
.
cfg
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_TMPDIR
/
t1
$id
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
$MYSQLD_TMPDIR
/
t2
$id
.
cfg
--
copy_file
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
$MYSQLD_TMPDIR
/
t2
$id
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t3
.
cfg
$MYSQLD_TMPDIR
/
t3
$id
.
cfg
--
copy_file
$MYSQLD_DATADIR
/
test
/
t3
.
ibd
$MYSQLD_TMPDIR
/
t3
$id
.
ibd
UNLOCK
TABLES
;
--
echo
# Restarting server
--
source
include
/
restart_mysqld
.
inc
--
echo
# Done restarting server
--
echo
# List before t1 DISCARD
FLUSH
TABLES
t1
,
t2
,
t3
FOR
EXPORT
;
perl
;
do
"
$ENV
{
MTR_SUITE_DIR
}
/include/innodb-util.pl"
;
ib_backup_tablespaces
(
"test"
,
"t1"
,
"t2"
,
"t3"
);
EOF
--
list_files
$MYSQLD_DATADIR
/
test
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
UNLOCK
TABLES
;
ALTER
TABLE
t1
DISCARD
TABLESPACE
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
ALTER
TABLE
t3
DISCARD
TABLESPACE
;
--
echo
# List after t1 DISCARD
--
list_files
$MYSQLD_DATADIR
/
test
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_DATADIR
/
test
/
t3
.
cfg
--
error
0
,
1
,
2
--
remove_file
$MYSQLD_DATADIR
/
test
/
t3
.
ibd
--
enable_result_log
--
echo
# Restarting server
--
source
include
/
restart_mysqld
.
inc
--
echo
# Done restarting server
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
--
copy_file
$MYSQLD_TMPDIR
/
t1
$id
.
cfg
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
--
copy_file
$MYSQLD_TMPDIR
/
t1
$id
.
ibd
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
--
copy_file
$MYSQLD_TMPDIR
/
t2
$id
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
--
copy_file
$MYSQLD_TMPDIR
/
t2
$id
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_TMPDIR
/
t3
$id
.
cfg
$MYSQLD_DATADIR
/
test
/
t3
.
cfg
--
copy_file
$MYSQLD_TMPDIR
/
t3
$id
.
ibd
$MYSQLD_DATADIR
/
test
/
t3
.
ibd
--
sleep
5
--
echo
# Tablespaces should be still encrypted
--
let
SEARCH_PATTERN
=
foobar
--
echo
# t1 yes on expecting NOT FOUND
--
let
SEARCH_FILE
=
$t1_IBD
--
source
include
/
search_pattern_in_file
.
inc
--
let
SEARCH_PATTERN
=
temp
--
echo
# t2 ... on expecting NOT FOUND
--
let
SEARCH_FILE
=
$t2_IBD
--
source
include
/
search_pattern_in_file
.
inc
--
echo
# t3 ... on expecting NOT FOUND
--
let
SEARCH_PATTERN
=
barfoo
--
let
SEARCH_FILE
=
$t3_IBD
--
source
include
/
search_pattern_in_file
.
inc
perl
;
do
"
$ENV
{
MTR_SUITE_DIR
}
/include/innodb-util.pl"
;
ib_discard_tablespaces
(
"test"
,
"t1"
,
"t2"
,
"t3"
);
ib_restore_tablespaces
(
"test"
,
"t1"
,
"t2"
,
"t3"
);
EOF
ALTER
TABLE
t1
IMPORT
TABLESPACE
;
SELECT
COUNT
(
1
)
FROM
t1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment