Skip to content

Commit 60a6ab9

Browse files
committed
Bug#28737177: MAIN.INFORMATION_SCHEMA_CS FAILS WITH RESULT CONTENT MISMATCH
The problem was that main.information_schema_cs (and a handful of other tests) could sometimes fail due to missing characterset comments. The root cause was the regression test for Bug#16204175 in main.ctype_uca. This test temporarily replaced share/charset/Index.xml in the source directory with its own file. If this happened to coincide with other tests depending on the original contents of Index.xml, those tests would fail. This patch fixes the problem by rewriting the regression test for Bug#16204175 such that it leaves Index.xml intact and instead restarts the server with --character-sets-dir pointing to a different directory. This is similar to what is already done in e.g. main.invalid_collation. Change-Id: Ic1eef7b8f448ecf4620d77123e247f106fcd328a
1 parent 951ab56 commit 60a6ab9

File tree

3 files changed

+29
-31
lines changed

3 files changed

+29
-31
lines changed

mysql-test/r/ctype_uca.result

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7520,7 +7520,9 @@ DROP TABLE t1;
75207520
# Bug #16204175 : COLLATION NAME MISSING FROM LOG MESSAGES
75217521
# ABOUT LDML DEFINITION PROBLEMS
75227522
#
7523-
# restart
7523+
#
7524+
# Restart the server with a collation with invalid grammar rules.
7525+
# restart:--character-sets-dir=MYSQL_TEST_DIR/std_data/bug16204175/
75247526
# Check whether the new collation is loaded after restart
75257527
SHOW COLLATION LIKE 'utf8_test';
75267528
Collation Charset Id Default Compiled Sortlen Pad_attribute
@@ -7531,7 +7533,9 @@ ERROR HY000: Unknown collation: 'utf8_test'
75317533
# Below error is caused as a result of this test. The error message
75327534
# contains collation name which is added as a part of the fix.
75337535
call mtr.add_suppression("Shift expected at '' for COLLATION : utf8_test");
7534-
# restart
7536+
#
7537+
# Restart server with original character sets dir:
7538+
# restart:--character-sets-dir=MYSQL_CHARSETSDIR
75357539
#
75367540
# End of 5.6 tests
75377541
#
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version='1.0' encoding="utf-8"?>
2+
<charsets max-id="99">
3+
<charset name="utf8">
4+
<family>Unicode</family>
5+
<description>UTF-8 Unicode</description>
6+
<alias>utf-8</alias>
7+
<collation name="utf8_test" id="999">
8+
<rules>
9+
<reset>A</reset>
10+
</rules>
11+
</collation>
12+
</charset>
13+
</charsets>

mysql-test/t/ctype_uca.test

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -549,31 +549,11 @@ SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci;
549549
--echo # ABOUT LDML DEFINITION PROBLEMS
550550
--echo #
551551

552-
553-
# Creating a temporary file for Index.xml
554-
--copy_file $MYSQL_CHARSETSDIR/Index.xml $MYSQLTEST_VARDIR/temp.xml
555-
--remove_file $MYSQL_CHARSETSDIR/Index.xml
556-
557-
# Adding an unknown collation with invalid grammer rules.
558-
# Please make sure the id is not used by any existing collations.
559-
--write_file $MYSQL_CHARSETSDIR/Index.xml
560-
<?xml version='1.0' encoding="utf-8"?>
561-
<charsets max-id="99">
562-
<charset name="utf8">
563-
<family>Unicode</family>
564-
<description>UTF-8 Unicode</description>
565-
<alias>utf-8</alias>
566-
<collation name="utf8_test" id="999">
567-
<rules>
568-
<reset>A</reset>
569-
</rules>
570-
</collation>
571-
</charset>
572-
</charsets>
573-
EOF
574-
575-
# Restart the server
576-
-- source include/restart_mysqld.inc
552+
--echo #
553+
--echo # Restart the server with a collation with invalid grammar rules.
554+
--let $restart_parameters=restart:--character-sets-dir=$MYSQL_TEST_DIR/std_data/bug16204175/
555+
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
556+
--source include/restart_mysqld.inc
577557

578558
--echo # Check whether the new collation is loaded after restart
579559
SHOW COLLATION LIKE 'utf8_test';
@@ -587,10 +567,11 @@ CREATE TABLE t1(id INT PRIMARY KEY, c CHAR(1) COLLATE utf8_test);
587567
call mtr.add_suppression("Shift expected at '' for COLLATION : utf8_test");
588568

589569
# Cleanup
590-
--remove_file $MYSQL_CHARSETSDIR/Index.xml
591-
--copy_file $MYSQLTEST_VARDIR/temp.xml $MYSQL_CHARSETSDIR/Index.xml
592-
--remove_file $MYSQLTEST_VARDIR/temp.xml
593-
-- source include/restart_mysqld.inc
570+
--echo #
571+
--echo # Restart server with original character sets dir:
572+
--let $restart_parameters=restart:--character-sets-dir=$MYSQL_CHARSETSDIR
573+
--replace_result $MYSQL_CHARSETSDIR MYSQL_CHARSETSDIR
574+
--source include/restart_mysqld.inc
594575

595576
--echo #
596577
--echo # End of 5.6 tests

0 commit comments

Comments
 (0)