1- /* Copyright (c) 2016, 2017 , Oracle and/or its affiliates. All rights reserved.
1+ /* Copyright (c) 2016, 2020 , Oracle and/or its affiliates. All rights reserved.
22
33 This program is free software; you can redistribute it and/or modify
44 it under the terms of the GNU General Public License, version 2.0,
@@ -52,7 +52,69 @@ TEST_F(WildCaseCompareTest, BasicTest) {
5252 wild_case_compare (system_charset_info, " aaaa_users_lost_aaaa" , " " ));
5353 EXPECT_EQ (0 , wild_case_compare (system_charset_info, " aaaa" , " %%%%" ));
5454 EXPECT_EQ (1 , wild_case_compare (system_charset_info, " \\ _\\ _\\ _" , " _\\ _\\ _" ));
55+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " %" ));
56+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " %%" ));
57+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , (" %%%" )));
58+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , (" xyz" )));
59+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " %yz" ));
60+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " x%z" ));
61+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " xy%" ));
62+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " ___" ));
63+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " __z" ));
64+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " xyz" ));
65+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " _yz" ));
66+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " x_z" ));
67+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " xy_" ));
68+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " x__" ));
69+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " ___" ));
70+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " __z" ));
71+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " xyz" ));
72+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " _yz" ));
73+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " x_z" ));
74+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " xy_" ));
75+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyza" , " x__" ));
76+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyz" , " xyzz" ));
77+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyz" , " %yzz" ));
78+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyz" , " x%zz" ));
79+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyz" , " x%%zz" ));
80+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " xyz" , " x%%%zz" ));
81+
82+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz_" , " xyz_" ));
83+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz_" , " xyz\\ _" ));
84+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xy_z_" , " xy\\ _z\\ _" ));
85+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xy%z%" , " xy\\ %z\\ %" ));
86+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xy%za" , " xy\\ %z%" ));
87+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xy%zaaaaa" , " xy\\ %z%" ));
88+ EXPECT_EQ (0 ,
89+ wild_case_compare (system_charset_info,
90+ " xy%zabcdefghiljklomnopqrstuvwxyz" , " xy\\ %z%" ));
91+ EXPECT_EQ (1 ,
92+ wild_case_compare (system_charset_info,
93+ " xy%aabcdefghiljklomnopqrstuvwxyz" , " xy\\ %z%" ));
94+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xy%zaa%aa" , " xy\\ %z%" ));
95+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " %" , " \\ %" ));
96+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " _" , " \\ _" ));
97+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " ___" , " \\ _\\ _\\ _" ));
5598 EXPECT_EQ (0 , wild_case_compare (system_charset_info, " ___" , " _\\ _\\ _" ));
99+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " ___" , " __\\ _" ));
100+ EXPECT_EQ (1 ,
101+ wild_case_compare (system_charset_info, " \\ _\\ _\\ _" , " \\ _\\ _\\ _" ));
102+ EXPECT_EQ (1 ,
103+ wild_case_compare (system_charset_info, " \\ %\\ %\\ %" , " \\ %\\ %\\ %" ));
104+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " \\ %\\ %\\ %" , " \\ %\\ %" ));
105+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " \\ %\\ %\\ %" , " \\ %" ));
106+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " \\ %\\ %\\ %" , " %" ));
107+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " \\\\ " , " \\\\ " ));
108+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " \\\\ " , " \\\\\\\\ " ));
109+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " åäö" , " åäö" ));
110+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " xyz" , " xyz%" ));
111+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " " , " %" ));
112+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " " , " " ));
113+
114+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " db1" , " db_" ));
115+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " dbbb1" , " db_" ));
116+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " dddddb1" , " db_" ));
117+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " dddddb1" , " db%" ));
56118 EXPECT_EQ (0 , wild_case_compare (system_charset_info, " ___" , " ___" ));
57119 EXPECT_EQ (0 , wild_case_compare (system_charset_info, " " , " %" ));
58120 EXPECT_EQ (1 , wild_case_compare (system_charset_info, " " , " " ));
@@ -64,5 +126,8 @@ TEST_F(WildCaseCompareTest, BasicTest) {
64126 EXPECT_EQ (1 , wild_case_compare (system_charset_info, " " , " db_aaaa" ));
65127 EXPECT_EQ (1 , wild_case_compare (system_charset_info, " " , " db%aaaa" ));
66128 EXPECT_EQ (1 , wild_case_compare (system_charset_info, " " , " db%aa_aa" ));
129+ EXPECT_EQ (0 , wild_case_compare (system_charset_info, " aaaAA_*" , " %A_*" ));
130+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " aaaAA_" , " %A_*" ));
131+ EXPECT_EQ (1 , wild_case_compare (system_charset_info, " aaF" , " %F_*-*=<" ));
67132}
68133} // namespace wild_case_compare_unittest
0 commit comments