diff options
Diffstat (limited to 'unittest')
-rw-r--r-- | unittest/mysys/ma_dyncol-t.c | 44 | ||||
-rw-r--r-- | unittest/sql/explain_filename-t.cc | 15 | ||||
-rw-r--r-- | unittest/strings/strings-t.c | 4 |
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", |