MXS-2900 Move testcore library files to a dedicated directory
The library is now named "maxtest". The related include-files are, for now, usable without designating the full include path. This may be changed later, but would require modifying every test.
This commit is contained in:
105
maxscale-system-test/maxtest/src/get_com_select_insert.cpp
Normal file
105
maxscale-system-test/maxtest/src/get_com_select_insert.cpp
Normal file
@ -0,0 +1,105 @@
|
||||
#include "testconnections.h"
|
||||
|
||||
/**
|
||||
* Reads COM_SELECT and COM_INSERT variables from all nodes and stores into 'selects' and 'inserts'
|
||||
*/
|
||||
int get_global_status_allnodes(long int* selects, long int* inserts, Mariadb_nodes* nodes, int silent)
|
||||
{
|
||||
int i;
|
||||
MYSQL_RES* res;
|
||||
MYSQL_ROW row;
|
||||
|
||||
for (i = 0; i < nodes->N; i++)
|
||||
{
|
||||
if (nodes->nodes[i] != NULL)
|
||||
{
|
||||
|
||||
if (mysql_query(nodes->nodes[i], "show global status like 'COM_SELECT';") != 0)
|
||||
{
|
||||
printf("Error: can't execute SQL-query\n");
|
||||
printf("%s\n", mysql_error(nodes->nodes[i]));
|
||||
return 1;
|
||||
}
|
||||
|
||||
res = mysql_store_result(nodes->nodes[i]);
|
||||
if (res == NULL)
|
||||
{
|
||||
printf("Error: can't get the result description\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mysql_num_rows(res) > 0)
|
||||
{
|
||||
while ((row = mysql_fetch_row(res)) != NULL)
|
||||
{
|
||||
if (silent == 0)
|
||||
{
|
||||
printf("Node %d COM_SELECT=%s\n", i, row[1]);
|
||||
}
|
||||
sscanf(row[1], "%ld", &selects[i]);
|
||||
}
|
||||
}
|
||||
|
||||
mysql_free_result(res);
|
||||
while (mysql_next_result(nodes->nodes[i]) == 0)
|
||||
{
|
||||
res = mysql_store_result(nodes->nodes[i]);
|
||||
mysql_free_result(res);
|
||||
}
|
||||
|
||||
if (mysql_query(nodes->nodes[i], "show global status like 'COM_INSERT';") != 0)
|
||||
{
|
||||
printf("Error: can't execute SQL-query\n");
|
||||
}
|
||||
|
||||
res = mysql_store_result(nodes->nodes[i]);
|
||||
if (res == NULL)
|
||||
{
|
||||
printf("Error: can't get the result description\n");
|
||||
}
|
||||
|
||||
if (mysql_num_rows(res) > 0)
|
||||
{
|
||||
while ((row = mysql_fetch_row(res)) != NULL)
|
||||
{
|
||||
if (silent == 0)
|
||||
{
|
||||
printf("Node %d COM_INSERT=%s\n", i, row[1]);
|
||||
}
|
||||
sscanf(row[1], "%ld", &inserts[i]);
|
||||
}
|
||||
}
|
||||
|
||||
mysql_free_result(res);
|
||||
while (mysql_next_result(nodes->nodes[i]) == 0)
|
||||
{
|
||||
res = mysql_store_result(nodes->nodes[i]);
|
||||
mysql_free_result(res);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
selects[i] = 0;
|
||||
inserts[i] = 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints difference in COM_SELECT and COM_INSERT
|
||||
*/
|
||||
int print_delta(long int* new_selects,
|
||||
long int* new_inserts,
|
||||
long int* selects,
|
||||
long int* inserts,
|
||||
int nodes_num)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < nodes_num; i++)
|
||||
{
|
||||
printf("COM_SELECT increase on node %d is %ld\n", i, new_selects[i] - selects[i]);
|
||||
printf("COM_INSERT increase on node %d is %ld\n", i, new_inserts[i] - inserts[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user