81 lines
1.7 KiB
C++
81 lines
1.7 KiB
C++
/**
|
|
* @file maxinfo.cpp maxinfo JSON listener test
|
|
* - sends 1000 'status' request to the listener
|
|
*/
|
|
|
|
|
|
#include <iostream>
|
|
#include <unistd.h>
|
|
#include "testconnections.h"
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include "maxinfo_func.h"
|
|
|
|
using namespace std;
|
|
|
|
//const int N = 9;
|
|
//const char * resources[N] = {"variables", "status", "services", "listeners", "modules", "sessions", "clients", "servers", "eventTimes"};
|
|
const int N = 8;
|
|
const char * resources[N] = {"variables", "status", "services", "listeners", "modules", "sessions", "clients", "servers"};
|
|
|
|
bool exit_flag = false;
|
|
|
|
void *maxinfo_thread( void *ptr );
|
|
int threads_num = 25;
|
|
TestConnections * Test;
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
Test = new TestConnections(argc, argv);
|
|
int sleep_time = Test->smoke ? 30 : 1000;
|
|
|
|
Test->set_timeout(sleep_time + 100);
|
|
|
|
pthread_t thread1[threads_num];
|
|
int iret1[threads_num];
|
|
|
|
int i;
|
|
for (i = 0; i < threads_num; i++)
|
|
{
|
|
iret1[i] = pthread_create(&thread1[i], NULL, maxinfo_thread, NULL);
|
|
}
|
|
|
|
sleep(sleep_time);
|
|
|
|
exit_flag = true;
|
|
Test->set_timeout(120);
|
|
for (i = 0; i < threads_num; i++)
|
|
{
|
|
pthread_join(thread1[i], NULL);
|
|
}
|
|
|
|
Test->check_maxscale_alive(0);
|
|
|
|
int rval = Test->global_result;
|
|
delete Test;
|
|
return rval;
|
|
}
|
|
|
|
void *maxinfo_thread( void *ptr )
|
|
{
|
|
char * result;
|
|
int ind;
|
|
|
|
while (! exit_flag)
|
|
{
|
|
ind = rand() % N;
|
|
result = get_maxinfo(resources[ind], Test);
|
|
if (result != NULL)
|
|
{
|
|
Test->tprintf("Query %s, result: \n%s\n", resources[ind], result);
|
|
free(result);
|
|
}
|
|
else
|
|
{
|
|
Test->add_result(1, "Can't get result from maxinfo, query %s\n", resources[ind]);
|
|
}
|
|
}
|
|
|
|
}
|