additional test for set_character_set results

pull/2470/head
Valentin Rakush 6 years ago
parent 2e3da27d1f
commit 8dfc63d237

@ -9,7 +9,7 @@ clean:
OPT=-O2
libtap.a: tap.cpp tap.h command_line.cpp command_line.h
g++ -c tap.cpp command_line.cpp -std=c++11 -I$(INCLUDE) $(OPT)
ar rcs libtap.a tap.o command_line.o
libtap.a: tap.cpp tap.h command_line.cpp command_line.h utils.cpp utils.h
g++ -c tap.cpp command_line.cpp utils.cpp -std=c++11 -I$(INCLUDE) $(OPT)
ar rcs libtap.a tap.o command_line.o utils.o

@ -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 || 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 || 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
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
tests: basic-t set_character_set-t charset_unsigned_int-t select_config_file-t sqlite3-t
tests: basic-t set_character_set-t charset_unsigned_int-t select_config_file-t sqlite3-t test_set_character_results-t
testgalera: galera_1_timeout_count galera_2_timeout_no_count
testaurora: aurora
@ -99,6 +99,9 @@ charset_unsigned_int-t: charset_unsigned_int-t.cpp $(TAP_LIBDIR)/libtap.a
select_config_file-t: select_config_file-t.cpp $(TAP_LIBDIR)/libtap.a
g++ select_config_file-t.cpp $(INCLUDEDIRS) $(LDIRS) $(OPT) -std=c++11 -ltap -ldl $(MYLIBS) -o select_config_file-t
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
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)\"

@ -8,82 +8,7 @@
#include "tap.h"
#include "command_line.h"
int show_variable(MYSQL *mysql, const std::string& var_name, std::string& var_value) {
char query[128];
snprintf(query, sizeof(query),"show variables like '%s'", var_name.c_str());
if (mysql_query(mysql, query)) {
fprintf(stderr, "Failed to execute SHOW VARIABLES LIKE : no %d, %s\n",
mysql_errno(mysql), mysql_error(mysql));
return -1;
}
MYSQL_RES *result;
MYSQL_ROW row;
result = mysql_store_result(mysql);
int num_fields = mysql_num_fields(result);
row = mysql_fetch_row(result);
var_value = row[1];
mysql_free_result(result);
}
int show_admin_global_variable(MYSQL *mysql, const std::string& var_name, std::string& var_value) {
char query[128];
snprintf(query, sizeof(query),"select variable_value from global_variables where variable_name='%s'", var_name.c_str());
if (mysql_query(mysql, query)) {
fprintf(stderr, "Failed to execute SHOW VARIABLES LIKE : no %d, %s\n",
mysql_errno(mysql), mysql_error(mysql));
return -1;
}
MYSQL_RES *result;
MYSQL_ROW row;
result = mysql_store_result(mysql);
int num_fields = mysql_num_fields(result);
row = mysql_fetch_row(result);
var_value = row[0];
mysql_free_result(result);
}
int set_admin_global_variable(MYSQL *mysql, const std::string& var_name, const std::string& var_value) {
char query[128];
snprintf(query, sizeof(query),"update global_variables set variable_value = '%s' where variable_name='%s'", var_value.c_str(), var_name.c_str());
if (mysql_query(mysql, query)) {
fprintf(stderr, "Failed to execute SHOW VARIABLES LIKE : no %d, %s\n",
mysql_errno(mysql), mysql_error(mysql));
return -1;
}
}
int get_server_version(MYSQL *mysql, std::string& version) {
char query[128];
if (mysql_query(mysql, "select @@version")) {
fprintf(stderr, "Error %d, %s\n",
mysql_errno(mysql), mysql_error(mysql));
return -1;
}
MYSQL_RES *result;
MYSQL_ROW row;
result = mysql_store_result(mysql);
int num_fields = mysql_num_fields(result);
row = mysql_fetch_row(result);
version = row[0];
mysql_free_result(result);
return 0;
}
#include "utils.h"
int main(int argc, char** argv) {
CommandLine cl;

@ -11,35 +11,7 @@
#include "tap.h"
#include "command_line.h"
#define MYSQL_QUERY(mysql, query) \
do { \
if (mysql_query(mysql, query)) { \
fprintf(stderr, "File %s, line %d, Error: %s\n", \
__FILE__, __LINE__, mysql_error(mysql)); \
return exit_status(); \
} \
} while(0)
int show_variable(MYSQL *mysql, const std::string& var_name, std::string& var_value) {
char query[128];
snprintf(query, sizeof(query),"show variables like '%s'", var_name.c_str());
if (mysql_query(mysql, query)) {
fprintf(stderr, "Failed to execute SHOW VARIABLES LIKE : no %d, %s\n",
mysql_errno(mysql), mysql_error(mysql));
return -1;
}
MYSQL_RES *result;
MYSQL_ROW row;
result = mysql_store_result(mysql);
row = mysql_fetch_row(result);
var_value = row[1];
mysql_free_result(result);
}
#include "utils.h"
int select_config_file(MYSQL* mysql, std::string& resultset) {
if (mysql_query(mysql, "select config file")) {

@ -8,27 +8,7 @@
#include "tap.h"
#include "command_line.h"
int show_variable(MYSQL *mysql, const std::string& var_name, std::string& var_value) {
char query[128];
snprintf(query, sizeof(query),"show variables like '%s'", var_name.c_str());
if (mysql_query(mysql, query)) {
fprintf(stderr, "Failed to execute SHOW VARIABLES LIKE : no %d, %s\n",
mysql_errno(mysql), mysql_error(mysql));
return -1;
}
MYSQL_RES *result;
MYSQL_ROW row;
result = mysql_store_result(mysql);
int num_fields = mysql_num_fields(result);
row = mysql_fetch_row(result);
var_value = row[1];
mysql_free_result(result);
}
#include "utils.h"
int main(int argc, char** argv) {
CommandLine cl;

@ -0,0 +1,66 @@
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <unistd.h>
#include <string>
#include <mysql.h>
#include "tap.h"
#include "command_line.h"
#include "utils.h"
int main(int argc, char** argv) {
CommandLine cl;
if(cl.getEnv())
return exit_status();
plan(2);
diag("Testing SET CHARACTER SET");
MYSQL* mysqladmin = mysql_init(NULL);
if (!mysqladmin)
return exit_status();
if (!mysql_real_connect(mysqladmin, cl.host, cl.admin_username, cl.admin_password, NULL, cl.admin_port, NULL, 0)) {
fprintf(stderr, "File %s, line %d, Error: %s\n",
__FILE__, __LINE__, mysql_error(mysqladmin));
return exit_status();
}
MYSQL_QUERY(mysqladmin, "delete from global_variables");
MYSQL* mysql = mysql_init(NULL);
if (!mysql)
return exit_status();
if (mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8")) {
fprintf(stderr, "File %s, line %d, Error: %s\n",
__FILE__, __LINE__, mysql_error(mysql));
return exit_status();
}
if (!mysql_real_connect(mysql, cl.host, cl.username, cl.password, NULL, cl.port, NULL, 0)) {
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(mysql));
return exit_status();
}
MYSQL_QUERY(mysql, "set character_set_results=NULL");
std::string var_name="character_set_results";
std::string var_value;
show_variable(mysql, var_name, var_value);
ok(var_value.empty(), "Correct result NULL");
MYSQL_QUERY(mysql, "set character_set_results='latin1'");
var_name="character_set_results";
show_variable(mysql, var_name, var_value);
ok(!var_value.compare("latin1"), "Correct result 'latin1'");
mysql_close(mysql);
mysql_close(mysqladmin);
return exit_status();
}
Loading…
Cancel
Save