diff --git a/test/tap/tests/Makefile b/test/tap/tests/Makefile index a7f9d9709..553638d89 100644 --- a/test/tap/tests/Makefile +++ b/test/tap/tests/Makefile @@ -74,13 +74,13 @@ all: tests .PHONY: clean clean: - rm -f basic-t set_character_set-t charset_unsigned_int-t select_config_file-t sqlite3-t galera_1_timeout_count galera_2_timeout_no_count aurora test_set_character_results-t || true + rm -f basic-t set_character_set-t charset_unsigned_int-t select_config_file-t sqlite3-t galera_1_timeout_count galera_2_timeout_no_count aurora test_set_character_results-t test_ps_large_result-t || true OPT=-O2 -SRC=basic-t.cpp set_character_set-t.cpp charset_unsigned_int-t.cpp select_config_file-t.cpp sqlite3-t.cpp galera_1_timeout_count.cpp galera_2_timeout_no_count.cpp aurora.cpp test_set_character_results-t.cpp +SRC=basic-t.cpp set_character_set-t.cpp charset_unsigned_int-t.cpp select_config_file-t.cpp sqlite3-t.cpp galera_1_timeout_count.cpp galera_2_timeout_no_count.cpp aurora.cpp test_set_character_results-t.cpp test_ps_large_result-t.cpp -tests: basic-t set_character_set-t charset_unsigned_int-t select_config_file-t sqlite3-t test_set_character_results-t +tests: basic-t set_character_set-t charset_unsigned_int-t select_config_file-t sqlite3-t test_set_character_results-t test_ps_large_result-t testgalera: galera_1_timeout_count galera_2_timeout_no_count testaurora: aurora @@ -102,6 +102,9 @@ select_config_file-t: select_config_file-t.cpp $(TAP_LIBDIR)/libtap.a test_set_character_results-t: test_set_character_results-t.cpp $(TAP_LIBDIR)/libtap.a g++ test_set_character_results-t.cpp $(INCLUDEDIRS) $(LDIRS) $(OPT) -std=c++11 $(MYLIBS) -ltap -lssl -lcrypto -ldl -lpthread -o test_set_character_results-t +test_ps_large_result-t: test_ps_large_result-t.cpp $(TAP_LIBDIR)/libtap.a + g++ test_ps_large_result-t.cpp $(INCLUDEDIRS) $(LDIRS) $(OPT) -std=c++11 $(MYLIBS) -ltap -lssl -lcrypto -ldl -lpthread -o test_ps_large_result-t + galera_1_timeout_count: galera_1_timeout_count.cpp $(TAP_LIBDIR)/libtap.a g++ -DTEST_GALERA -DDEBUG galera_1_timeout_count.cpp ../tap/SQLite3_Server.cpp $(INCLUDEDIRS) $(LDIRS) $(OPT) -std=c++11 $(OBJ) $(MYLIBS) -ltap -ldl -o galera_1_timeout_count -DGITVERSION=\"$(GIT_VERSION)\" diff --git a/test/tap/tests/test_ps_large_result-t.cpp b/test/tap/tests/test_ps_large_result-t.cpp new file mode 100644 index 000000000..1ac94051c --- /dev/null +++ b/test/tap/tests/test_ps_large_result-t.cpp @@ -0,0 +1,161 @@ +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "tap.h" +#include "command_line.h" +#include "utils.h" + +const int NUM_ROWS=10000; + +int select_config_file(MYSQL* mysql, std::string& resultset) { + if (mysql_query(mysql, "select config file")) { + fprintf(stderr, "File %s, line %d, Error: %s\n", + __FILE__, __LINE__, mysql_error(mysql)); + return exit_status(); + } + + MYSQL_RES *result; + MYSQL_ROW row; + result = mysql_store_result(mysql); + if (result) { + row = mysql_fetch_row(result); + resultset = row[0]; + mysql_free_result(result); + } else { + fprintf(stderr, "error\n"); + } + +} + + +int main(int argc, char** argv) { + CommandLine cl; + + if(cl.getEnv()) + return exit_status(); + + plan(9); + diag("Testing SELECT CONFIG FILE"); + + MYSQL* mysql = mysql_init(NULL); + if (!mysql) + return exit_status(); + + if (!mysql_real_connect(mysql, cl.host, cl.username, cl.password, NULL, cl.port, NULL, 0)) { + fprintf(stderr, "File %s, line %d, Error: %s\n", + __FILE__, __LINE__, mysql_error(mysql)); + return exit_status(); + } + + MYSQL_QUERY(mysql, "drop database if exists test"); + MYSQL_QUERY(mysql, "create database if not exists test"); + MYSQL_QUERY(mysql, "create table if not exists test.t (i int)"); + MYSQL_QUERY(mysql, "CREATE TABLE if not exists test.sbtest1 (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `k` int(10) unsigned NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '', `pad` char(60) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_1` (`k`))"); + + std::random_device rd; + std::mt19937 mt(rd()); + std::uniform_int_distribution dist(0.0, 9.0); + + std::stringstream q; + q << "INSERT INTO test.sbtest1 (k, c, pad) values "; + bool put_comma = false; + for (int i=0; i