summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2004-06-22 23:07:08 +0400
committerunknown <konstantin@mysql.com>2004-06-22 23:07:08 +0400
commit83698bab085a73e6d82bc43c51d504131be7e4db (patch)
treea14021a16f8e7514a1a371e60c4f95c8d74ea50e /tests
parentc65bf20be8c9cca1aa7f0d21bcea657926daef03 (diff)
downloadmariadb-git-83698bab085a73e6d82bc43c51d504131be7e4db.tar.gz
Fixes to make client_test run on 64 bit Sun: a bug in libmysql and
test suite fixed. libmysql/libmysql.c: - fixed a bug in protocol -> host integer conversions in send_data_str tests/client_test.c: Fixes to make client_test run on 64 bit Sun: - strlen() doesn't accept NULL input - Sun is high byte first, so we can't store bind 32-bit variables to 16-bit to MYSQL_TYPE_SHORT/TINY
Diffstat (limited to 'tests')
-rw-r--r--tests/client_test.c65
1 files changed, 44 insertions, 21 deletions
diff --git a/tests/client_test.c b/tests/client_test.c
index efcb9c1be0b..c035691fe47 100644
--- a/tests/client_test.c
+++ b/tests/client_test.c
@@ -177,7 +177,8 @@ static void client_connect()
int rc;
myheader_r("client_connect");
- fprintf(stdout, "\n Establishing a connection to '%s' ...", opt_host);
+ fprintf(stdout, "\n Establishing a connection to '%s' ...",
+ opt_host ? opt_host : "");
if (!(mysql= mysql_init(NULL)))
{
@@ -3226,8 +3227,11 @@ static void bind_fetch(int row_count)
{
MYSQL_STMT *stmt;
int rc, i, count= row_count;
- ulong bit;
long data[10];
+ int8 i8_data;
+ int16 i16_data;
+ int32 i32_data;
+ longlong i64_data;
float f_data;
double d_data;
char s_data[10];
@@ -3283,9 +3287,16 @@ static void bind_fetch(int row_count)
}
bind[0].buffer_type= MYSQL_TYPE_TINY;
+ bind[0].buffer= (char *)&i8_data;
+
bind[1].buffer_type= MYSQL_TYPE_SHORT;
+ bind[1].buffer= (char *)&i16_data;
+
bind[2].buffer_type= MYSQL_TYPE_LONG;
+ bind[2].buffer= (char *)&i32_data;
+
bind[3].buffer_type= MYSQL_TYPE_LONGLONG;
+ bind[3].buffer= (char *)&i64_data;
bind[4].buffer_type= MYSQL_TYPE_FLOAT;
bind[4].buffer= (char *)&f_data;
@@ -3312,36 +3323,47 @@ static void bind_fetch(int row_count)
check_execute(stmt, rc);
fprintf(stdout, "\n");
- fprintf(stdout, "\n tiny : %ld(%lu)", data[0], length[0]);
- fprintf(stdout, "\n short : %ld(%lu)", data[1], length[1]);
- fprintf(stdout, "\n int : %ld(%lu)", data[2], length[2]);
- fprintf(stdout, "\n longlong : %ld(%lu)", data[3], length[3]);
+ fprintf(stdout, "\n tiny : %ld(%lu)", (ulong) i8_data, length[0]);
+ fprintf(stdout, "\n short : %ld(%lu)", (ulong) i16_data, length[1]);
+ fprintf(stdout, "\n int : %ld(%lu)", (ulong) i32_data, length[2]);
+ fprintf(stdout, "\n longlong : %ld(%lu)", (ulong) i64_data, length[3]);
fprintf(stdout, "\n float : %f(%lu)", f_data, length[4]);
fprintf(stdout, "\n double : %g(%lu)", d_data, length[5]);
fprintf(stdout, "\n char : %s(%lu)", s_data, length[6]);
- bit= 1;
rc= 10+row_count;
- for (i= 0; i < 4; i++)
- {
- assert(data[i] == rc+i);
- assert(length[i] == bit);
- bit<<= 1;
- rc+= 12;
- }
+
+ /* TINY */
+ assert((int) i8_data == rc);
+ assert(length[0] == 1);
+ rc+= 13;
+
+ /* SHORT */
+ assert((int) i16_data == rc);
+ assert(length[1] == 2);
+ rc+= 13;
+
+ /* LONG */
+ assert((int) i32_data == rc);
+ assert(length[2] == 4);
+ rc+= 13;
+
+ /* LONGLONG */
+ assert((int) i64_data == rc);
+ assert(length[3] == 8);
+ rc+= 13;
/* FLOAT */
- rc+= i;
assert((int)f_data == rc);
assert(length[4] == 4);
+ rc+= 13;
/* DOUBLE */
- rc+= 13;
assert((int)d_data == rc);
assert(length[5] == 8);
+ rc+= 13;
/* CHAR */
- rc+= 13;
{
char buff[20];
long len= my_sprintf(buff, (buff, "%d", rc));
@@ -4523,7 +4545,8 @@ static void test_multi_stmt()
{
MYSQL_STMT *stmt, *stmt1, *stmt2;
- int rc, id;
+ int rc;
+ ulong id;
char name[50];
MYSQL_BIND bind[2];
ulong length[2];
@@ -4555,7 +4578,7 @@ static void test_multi_stmt()
*/
bzero((char*) bind, sizeof(bind));
- bind[0].buffer_type= MYSQL_TYPE_SHORT;
+ bind[0].buffer_type= MYSQL_TYPE_LONG;
bind[0].buffer= (char *)&id;
bind[0].is_null= &is_null[0];
bind[0].length= &length[0];
@@ -4582,7 +4605,7 @@ static void test_multi_stmt()
rc= mysql_stmt_fetch(stmt);
check_execute(stmt, rc);
- fprintf(stdout, "\n int_data: %d(%lu)", id, length[0]);
+ fprintf(stdout, "\n int_data: %lu(%lu)", id, length[0]);
fprintf(stdout, "\n str_data: %s(%lu)", name, length[1]);
assert(id == 10);
assert(strcmp(name, "mysql") == 0);
@@ -4611,7 +4634,7 @@ static void test_multi_stmt()
rc= mysql_stmt_fetch(stmt);
check_execute(stmt, rc);
- fprintf(stdout, "\n int_data: %d(%lu)", id, length[0]);
+ fprintf(stdout, "\n int_data: %lu(%lu)", id, length[0]);
fprintf(stdout, "\n str_data: %s(%lu)", name, length[1]);
assert(id == 10);
assert(strcmp(name, "updated") == 0);