|
|
|
|
@ -20,7 +20,7 @@ int main(int argc, char** argv) {
|
|
|
|
|
if(cl.getEnv())
|
|
|
|
|
return exit_status();
|
|
|
|
|
|
|
|
|
|
plan(10);
|
|
|
|
|
plan(1);
|
|
|
|
|
diag("Testing PS host groups routing");
|
|
|
|
|
|
|
|
|
|
MYSQL* mysqladmin = mysql_init(NULL);
|
|
|
|
|
@ -70,20 +70,13 @@ int main(int argc, char** argv) {
|
|
|
|
|
|
|
|
|
|
std::string query = "SELECT * FROM test.test1";
|
|
|
|
|
if (mysql_stmt_prepare(stmt, query.c_str(), query.size())) {
|
|
|
|
|
fprintf(stderr, "Query error %s\n", mysql_error(mysql));
|
|
|
|
|
ok(false, "Query error %s\n", mysql_error(mysql));
|
|
|
|
|
mysql_close(mysql);
|
|
|
|
|
mysql_library_end();
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
ok(true, "Statement prepared");
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_execute(stmt))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " mysql_stmt_execute(), failed\n");
|
|
|
|
|
ok(false, " %s\n", mysql_stmt_error(stmt));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
ok(true, "Statement executed");
|
|
|
|
|
MYSQL_QUERY(mysql, "update test.test1 set c1='aaaaaa'");
|
|
|
|
|
|
|
|
|
|
MYSQL_BIND bind[2];
|
|
|
|
|
char char_data0[STRING_SIZE];
|
|
|
|
|
@ -107,76 +100,30 @@ int main(int argc, char** argv) {
|
|
|
|
|
bind[1].length= &length[1];
|
|
|
|
|
bind[1].error= &error[1];
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_bind_result(stmt, bind))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " mysql_stmt_bind_result() failed\n");
|
|
|
|
|
ok(false, " %s\n", mysql_stmt_error(stmt));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_store_result(stmt))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " mysql_stmt_store_result() failed\n");
|
|
|
|
|
ok(false, " %s\n", mysql_stmt_error(stmt));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
ok(true, "Result stored");
|
|
|
|
|
|
|
|
|
|
while (!mysql_stmt_fetch(stmt)) {
|
|
|
|
|
ok(strcmp((char*)bind[0].buffer, "abcdef") == 0 && strcmp((char*)bind[1].buffer, "abcdef") == 0, "Data received");
|
|
|
|
|
}
|
|
|
|
|
ok(true, "Result fetched");
|
|
|
|
|
|
|
|
|
|
MYSQL_QUERY(mysql, "update test.test1 set c1='aaaaaa'");
|
|
|
|
|
|
|
|
|
|
ok(true, "Record is updated");
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_execute(stmt))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " mysql_stmt_execute(), failed\n");
|
|
|
|
|
ok(false, " %s\n", mysql_stmt_error(stmt));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ok(true, "Statement executed second time");
|
|
|
|
|
|
|
|
|
|
bind[0].buffer_type= MYSQL_TYPE_STRING;
|
|
|
|
|
bind[0].buffer= (char *)&char_data0;
|
|
|
|
|
bind[0].buffer_length= STRING_SIZE;
|
|
|
|
|
bind[0].is_null= &is_null[0];
|
|
|
|
|
bind[0].length= &length[0];
|
|
|
|
|
bind[0].error= &error[0];
|
|
|
|
|
|
|
|
|
|
bind[1].buffer_type= MYSQL_TYPE_STRING;
|
|
|
|
|
bind[1].buffer= (char *)&char_data1;
|
|
|
|
|
bind[1].buffer_length= STRING_SIZE;
|
|
|
|
|
bind[1].is_null= &is_null[1];
|
|
|
|
|
bind[1].length= &length[1];
|
|
|
|
|
bind[1].error= &error[1];
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_bind_result(stmt, bind))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " mysql_stmt_bind_result() failed\n");
|
|
|
|
|
ok(false, " %s\n", mysql_stmt_error(stmt));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_store_result(stmt))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " mysql_stmt_store_result() failed\n");
|
|
|
|
|
ok(false, " %s\n", mysql_stmt_error(stmt));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
ok(true, "Result stored");
|
|
|
|
|
|
|
|
|
|
while (!mysql_stmt_fetch(stmt)) {
|
|
|
|
|
ok(strcmp((char*)bind[0].buffer, "aaaaaa") == 0, "Read value that was updated. Expected [aaaaaa]. Actual [%s]", bind[0].buffer);
|
|
|
|
|
}
|
|
|
|
|
ok(true, "Result fetched");
|
|
|
|
|
|
|
|
|
|
if (mysql_stmt_close(stmt))
|
|
|
|
|
{
|
|
|
|
|
fprintf(stderr, " failed while closing the statement\n");
|
|
|
|
|
ok(false, " %s\n", mysql_error(mysql));
|
|
|
|
|
return exit_status();
|
|
|
|
|
}
|
|
|
|
|
|