summaryrefslogtreecommitdiff
path: root/unittest
diff options
context:
space:
mode:
Diffstat (limited to 'unittest')
-rw-r--r--unittest/mysys/ma_dyncol-t.c44
-rw-r--r--unittest/sql/explain_filename-t.cc15
-rw-r--r--unittest/strings/strings-t.c4
3 files changed, 53 insertions, 10 deletions
diff --git a/unittest/mysys/ma_dyncol-t.c b/unittest/mysys/ma_dyncol-t.c
index 51e84bc4e40..b3fff638b65 100644
--- a/unittest/mysys/ma_dyncol-t.c
+++ b/unittest/mysys/ma_dyncol-t.c
@@ -691,13 +691,54 @@ err:
mariadb_dyncol_free(&str2);
}
+static void test_mdev_9773()
+{
+ int rc;
+ uint i;
+ uint num_keys[5]= {1,2,3,4,5};
+ char const *strval[]= {"Val1", "Val2", "Val3", "Val4", "Val5"};
+ DYNAMIC_COLUMN_VALUE vals[5];
+ DYNAMIC_COLUMN dynstr;
+ uint unpack_columns= 0;
+ MYSQL_LEX_STRING *unpack_keys= 0;
+ DYNAMIC_COLUMN_VALUE *unpack_vals= 0;
+
+ for (i = 0; i < 5; i++)
+ {
+ vals[i].type= DYN_COL_STRING;
+ vals[i].x.string.value.str= (char *)strval[i];
+ vals[i].x.string.value.length= strlen(strval[i]);
+ vals[i].x.string.charset= &my_charset_latin1;
+ }
+
+ mariadb_dyncol_init(&dynstr);
+
+ /* create numeric */
+ rc= mariadb_dyncol_create_many_num(&dynstr, 5, num_keys, vals, 1);
+
+ if (rc == ER_DYNCOL_OK)
+ rc= mariadb_dyncol_unpack(&dynstr, &unpack_columns, &unpack_keys,
+ &unpack_vals);
+ ok (rc == ER_DYNCOL_OK && unpack_columns == 5, "5 fields unpacked");
+ for (i = 0; i < unpack_columns; i++)
+ {
+ ok(memcmp(unpack_vals[i].x.string.value.str,
+ vals[i].x.string.value.str, vals[i].x.string.value.length) == 0,
+ "unpack %u", i);
+ }
+
+ my_free(unpack_keys);
+ my_free(unpack_vals);
+ mariadb_dyncol_free(&dynstr);
+}
+
int main(int argc __attribute__((unused)), char **argv)
{
uint i;
char *big_string= (char *)malloc(1024*1024);
MY_INIT(argv[0]);
- plan(62);
+ plan(68);
if (!big_string)
exit(1);
@@ -830,6 +871,7 @@ int main(int argc __attribute__((unused)), char **argv)
}
test_mdev_4994();
test_mdev_4995();
+ test_mdev_9773();
my_end(0);
return exit_status();
diff --git a/unittest/sql/explain_filename-t.cc b/unittest/sql/explain_filename-t.cc
index 69ce51c0446..a737ebec608 100644
--- a/unittest/sql/explain_filename-t.cc
+++ b/unittest/sql/explain_filename-t.cc
@@ -26,7 +26,8 @@
char to[BUFLEN];
char from[BUFLEN];
-const char *error_messages[1000];
+static const char *error_messages_txt[1000];
+static const char **error_messages[1]= { error_messages_txt };
int setup()
{
@@ -34,12 +35,12 @@ int setup()
my_default_lc_messages = &my_locale_en_US;
/* Populate the necessary error messages */
- error_messages[ER_DATABASE_NAME - ER_ERROR_FIRST] = "Database";
- error_messages[ER_TABLE_NAME - ER_ERROR_FIRST] = "Table";
- error_messages[ER_PARTITION_NAME - ER_ERROR_FIRST] = "Partition";
- error_messages[ER_SUBPARTITION_NAME - ER_ERROR_FIRST] = "Subpartition";
- error_messages[ER_TEMPORARY_NAME - ER_ERROR_FIRST] = "Temporary";
- error_messages[ER_RENAMED_NAME - ER_ERROR_FIRST] = "Renamed";
+ error_messages[0][ER_DATABASE_NAME - ER_ERROR_FIRST] = "Database";
+ error_messages[0][ER_TABLE_NAME - ER_ERROR_FIRST] = "Table";
+ error_messages[0][ER_PARTITION_NAME - ER_ERROR_FIRST] = "Partition";
+ error_messages[0][ER_SUBPARTITION_NAME - ER_ERROR_FIRST] = "Subpartition";
+ error_messages[0][ER_TEMPORARY_NAME - ER_ERROR_FIRST] = "Temporary";
+ error_messages[0][ER_RENAMED_NAME - ER_ERROR_FIRST] = "Renamed";
my_default_lc_messages->errmsgs->errmsgs = error_messages;
diff --git a/unittest/strings/strings-t.c b/unittest/strings/strings-t.c
index fe595a5c303..22b50fc1659 100644
--- a/unittest/strings/strings-t.c
+++ b/unittest/strings/strings-t.c
@@ -627,7 +627,7 @@ strcollsp(CHARSET_INFO *cs, const STRNNCOLL_PARAM *param)
{
char ahex[64], bhex[64];
int res= cs->coll->strnncollsp(cs, (uchar *) p->a, p->alen,
- (uchar *) p->b, p->blen, 0);
+ (uchar *) p->b, p->blen);
str2hex(ahex, sizeof(ahex), p->a, p->alen);
str2hex(bhex, sizeof(bhex), p->b, p->blen);
diag("%-20s %-10s %-10s %10d %10d%s",
@@ -641,7 +641,7 @@ strcollsp(CHARSET_INFO *cs, const STRNNCOLL_PARAM *param)
{
/* Test in reverse order */
res= cs->coll->strnncollsp(cs, (uchar *) p->b, p->blen,
- (uchar *) p->a, p->alen, 0);
+ (uchar *) p->a, p->alen);
if (!eqres(res, -p->res))
{
diag("Comparison in reverse order failed. Expected %d, got %d",