summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Black <daniel@linux.ibm.com>2020-04-07 14:42:02 +1000
committerSergey Vojtovich <svoj@mariadb.org>2020-04-08 14:51:14 +0400
commit97506bf7c3fc628b19e25fe3c65d0c3edca3f67a (patch)
treefd11eec03dee50bf63e088cbd69a3ddf1f91eda6
parent5f5bb63b2ef03ed67d69f60ed64c4a709b99e28b (diff)
downloadmariadb-git-97506bf7c3fc628b19e25fe3c65d0c3edca3f67a.tar.gz
mysql-test: add large_pages test
On by default, suppress "fallback to conventional memory" warnings as we're never sure what the test has available. Leave off Windows test for now. Running without SeLockMemoryPrivilege is fatal if --large-pages is specified.
-rw-r--r--mysql-test/main/large_pages.opt1
-rw-r--r--mysql-test/main/large_pages.result43
-rw-r--r--mysql-test/main/large_pages.test38
3 files changed, 82 insertions, 0 deletions
diff --git a/mysql-test/main/large_pages.opt b/mysql-test/main/large_pages.opt
new file mode 100644
index 00000000000..857c9c1ecee
--- /dev/null
+++ b/mysql-test/main/large_pages.opt
@@ -0,0 +1 @@
+--large-pages
diff --git a/mysql-test/main/large_pages.result b/mysql-test/main/large_pages.result
new file mode 100644
index 00000000000..9d03e646ddf
--- /dev/null
+++ b/mysql-test/main/large_pages.result
@@ -0,0 +1,43 @@
+call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*");
+create table t1 (
+a int not null auto_increment,
+b char(16) not null,
+primary key (a),
+key (b)
+);
+create table t2(
+a int not null auto_increment,
+b char(16) not null,
+primary key (a),
+key (b)
+);
+insert into t1(b) values
+('test0'),
+('test1'),
+('test2'),
+('test3'),
+('test4'),
+('test5'),
+('test6'),
+('test7');
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+select * from t1 join t2 using (b) ORDER BY t1.a, t2.a;
+b a a
+test0 1 1
+test1 2 2
+test2 3 3
+test3 4 4
+test4 5 5
+test5 6 6
+test6 7 7
+test7 8 8
+test0 9 1
+test1 10 2
+test2 11 3
+test3 12 4
+test4 13 5
+test5 14 6
+test6 15 7
+test7 16 8
+drop table t1, t2;
diff --git a/mysql-test/main/large_pages.test b/mysql-test/main/large_pages.test
new file mode 100644
index 00000000000..136273a2821
--- /dev/null
+++ b/mysql-test/main/large_pages.test
@@ -0,0 +1,38 @@
+# Test of large pages (or at least the fallback to conventional allocation)
+
+# Windows needs SeLockMemoryPrivilege
+--source include/not_windows.inc
+--source include/have_innodb.inc
+
+call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*");
+
+create table t1 (
+ a int not null auto_increment,
+ b char(16) not null,
+ primary key (a),
+ key (b)
+);
+
+create table t2(
+ a int not null auto_increment,
+ b char(16) not null,
+ primary key (a),
+ key (b)
+);
+
+insert into t1(b) values
+ ('test0'),
+ ('test1'),
+ ('test2'),
+ ('test3'),
+ ('test4'),
+ ('test5'),
+ ('test6'),
+ ('test7');
+
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+
+select * from t1 join t2 using (b) ORDER BY t1.a, t2.a;
+
+drop table t1, t2;