/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "../config.h"
#include "client.h"
#include "engines.h"
#include "die.h"
#include "dictionary.h"
int main(int argc, char** argv)
{
#ifdef HAVE_MYSQL
Client *c;
c = new_client("mysql");
c->Client::connect("localhost", "test", "root", "");
Rand_dictionary d;
if(d.load_file("/usr/dict/words") == -1)
die(1, "Could not open the dictionary file");
c->set_dictionary("words", &d);
c->safe_parsed_query("select * from mysql_auth where username = '$words'",
1024);
c->lose_result();
c->safe_parsed_query("select * from mysql_auth where \
username in('$words','$words')",
1024);
c->dump_result("/tmp/mysql-auth-test.dump");
Query_barrel qb,qb1;
qb.set_num_rounds(5);
Query q1,q2;
q1.query = "select * from mysql_auth";
q1.parsed = 0;
q1.name = "get_all";
q1.type_name = "full_scan";
q1.has_result_set = 1;
q2.query = "select passwd from mysql_auth where username = '$words'";
q2.parsed = 1;
q2.name = "get_by_username";
q2.type_name = "index_lookup";
q2.has_result_set = 1;
qb.add_query_charge(q1, 2);
qb.add_query_charge(q2, 20);
cout << "running a one threaded test:" << endl;
c->set_query_barrel(&qb);
//c->unload_query_barrel();
c->print_barrel_report();
qb1.set_num_rounds(5);
qb1.add_query_charge(q2, 20);
cout << "running a multi-threaded test: " << endl;
c->disconnect();
int num_threads = 50;
if(argc > 1) num_threads = atoi(argv[1]);
cout << "num_threads = " << num_threads << endl;
c->set_query_barrel(&qb1);
c->start_clock();
c->create_threads(num_threads);
c->connect();
c->unload_query_barrel();
c->thread_sync();
c->stop_clock();
c->print_barrel_report();
delete c;
#endif
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1