diff options
author | bell@51.0.168.192.in-addr.arpa <> | 2005-02-20 18:49:27 +0200 |
---|---|---|
committer | bell@51.0.168.192.in-addr.arpa <> | 2005-02-20 18:49:27 +0200 |
commit | a11369b999e3002586697c90743ae690a5623917 (patch) | |
tree | ef69852c850b3445152229f7707b70a1601e70c1 /tests | |
parent | 6da6c5be0c57a2bad1aa4546ef8ea7094376cb5d (diff) | |
parent | 2c263ff24c0daf90c2f78e8a596a0fa3e3fc4b49 (diff) | |
download | mariadb-git-a11369b999e3002586697c90743ae690a5623917.tar.gz |
Merge
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mysql_client_test.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 1e117954e93..8f49b45de0c 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -12621,6 +12621,54 @@ from t2);"); /* + Test mysql_real_escape_string() with gbk charset + + The important part is that 0x27 (') is the second-byte in a invalid + two-byte GBK character here. But 0xbf5c is a valid GBK character, so + it needs to be escaped as 0x5cbf27 +*/ +#define TEST_BUG8378_IN "\xef\xbb\xbf\x27\xbf\x10" +#define TEST_BUG8378_OUT "\xef\xbb\x5c\xbf\x5c\x27\x5c\xbf\x10" + +static void test_bug8378() +{ + MYSQL *lmysql; + char out[9]; /* strlen(TEST_BUG8378)*2+1 */ + int len; + + myheader("test_bug8378"); + + if (!opt_silent) + fprintf(stdout, "\n Establishing a test connection ..."); + if (!(lmysql= mysql_init(NULL))) + { + myerror("mysql_init() failed"); + exit(1); + } + if (mysql_options(lmysql, MYSQL_SET_CHARSET_NAME, "gbk")) + { + myerror("mysql_options() failed"); + exit(1); + } + if (!(mysql_real_connect(lmysql, opt_host, opt_user, + opt_password, current_db, opt_port, + opt_unix_socket, 0))) + { + myerror("connection failed"); + exit(1); + } + if (!opt_silent) + fprintf(stdout, " OK"); + + len= mysql_real_escape_string(lmysql, out, TEST_BUG8378_IN, 4); + + /* No escaping should have actually happened. */ + DIE_UNLESS(memcmp(out, TEST_BUG8378_OUT, len) == 0); + + mysql_close(lmysql); +} + +/* Read and parse arguments and MySQL options from my.cnf */ @@ -12841,6 +12889,7 @@ static struct my_tests_st my_tests[]= { { "test_truncation_option", test_truncation_option }, { "test_bug8330", test_bug8330 }, { "test_bug7990", test_bug7990 }, + { "test_bug8378", test_bug8378 }, { 0, 0 } }; |