Merge branch 'develop' into mxs-47-fix
This commit is contained in:
@ -224,9 +224,16 @@ add_custom_target(testall
|
|||||||
COMMAND ${CMAKE_COMMAND} -DDEPS_OK=Y -DBUILD_TESTS=Y -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DINSTALL_SYSTEM_FILES=N ${CMAKE_SOURCE_DIR}
|
COMMAND ${CMAKE_COMMAND} -DDEPS_OK=Y -DBUILD_TESTS=Y -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DINSTALL_SYSTEM_FILES=N ${CMAKE_SOURCE_DIR}
|
||||||
COMMAND make install
|
COMMAND make install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/server/test/MaxScale_test.cnf ${CMAKE_BINARY_DIR}/etc/MaxScale.cnf
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/server/test/MaxScale_test.cnf ${CMAKE_BINARY_DIR}/etc/MaxScale.cnf
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/testall.cmake
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/testall.cmake
|
||||||
COMMENT "Running full test suite..." VERBATIM)
|
COMMENT "Running full test suite..." VERBATIM)
|
||||||
|
|
||||||
|
add_custom_target(testcore
|
||||||
|
COMMAND ${CMAKE_COMMAND} -DDEPS_OK=Y -DBUILD_TESTS=Y -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DINSTALL_SYSTEM_FILES=N ${CMAKE_SOURCE_DIR}
|
||||||
|
COMMAND make install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/server/test/MaxScale_test.cnf ${CMAKE_BINARY_DIR}/etc/MaxScale.cnf
|
||||||
|
COMMAND ctest -R Internal
|
||||||
|
COMMENT "Running core test suite..." VERBATIM)
|
||||||
|
|
||||||
# uninstall target
|
# uninstall target
|
||||||
# see http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
|
# see http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
|
||||||
configure_file(
|
configure_file(
|
||||||
|
|||||||
@ -2,4 +2,4 @@ add_executable(testlog testlog.c)
|
|||||||
add_executable(testorder testorder.c)
|
add_executable(testorder testorder.c)
|
||||||
target_link_libraries(testlog pthread log_manager utils)
|
target_link_libraries(testlog pthread log_manager utils)
|
||||||
target_link_libraries(testorder pthread log_manager utils)
|
target_link_libraries(testorder pthread log_manager utils)
|
||||||
add_test(NAME TestLogOrder COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/logorder.sh 200 0 1000 ${CMAKE_CURRENT_BINARY_DIR}/logorder.log)
|
add_test(NAME Internal-TestLogOrder COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/logorder.sh 200 0 1000 ${CMAKE_CURRENT_BINARY_DIR}/logorder.log)
|
||||||
|
|||||||
@ -11,4 +11,4 @@ endif()
|
|||||||
add_subdirectory(canonical_tests)
|
add_subdirectory(canonical_tests)
|
||||||
add_executable(classify classify.c)
|
add_executable(classify classify.c)
|
||||||
target_link_libraries(classify query_classifier fullcore)
|
target_link_libraries(classify query_classifier fullcore)
|
||||||
add_test(TestQueryClassifier classify ${CMAKE_CURRENT_SOURCE_DIR}/input.sql ${CMAKE_CURRENT_SOURCE_DIR}/expected.sql)
|
add_test(Internal-TestQueryClassifier classify ${CMAKE_CURRENT_SOURCE_DIR}/input.sql ${CMAKE_CURRENT_SOURCE_DIR}/expected.sql)
|
||||||
|
|||||||
@ -9,7 +9,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
add_executable(canonizer canonizer.c)
|
add_executable(canonizer canonizer.c)
|
||||||
target_link_libraries(canonizer pthread query_classifier z dl ssl aio crypt crypto rt m ${EMBEDDED_LIB} fullcore stdc++)
|
target_link_libraries(canonizer pthread query_classifier z dl ssl aio crypt crypto rt m ${EMBEDDED_LIB} fullcore stdc++)
|
||||||
add_test(NAME TestCanonicalQuery COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/canontest.sh
|
add_test(NAME Internal-TestCanonicalQuery COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/canontest.sh
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/test.log
|
${CMAKE_CURRENT_BINARY_DIR}/test.log
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/input.sql
|
${CMAKE_CURRENT_SOURCE_DIR}/input.sql
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/output.sql
|
${CMAKE_CURRENT_BINARY_DIR}/output.sql
|
||||||
|
|||||||
@ -28,33 +28,34 @@ target_link_libraries(test_users fullcore)
|
|||||||
target_link_libraries(test_adminusers fullcore)
|
target_link_libraries(test_adminusers fullcore)
|
||||||
target_link_libraries(testmemlog fullcore)
|
target_link_libraries(testmemlog fullcore)
|
||||||
target_link_libraries(testfeedback fullcore)
|
target_link_libraries(testfeedback fullcore)
|
||||||
add_test(testMySQLUsers test_mysql_users)
|
add_test(Internal-TestMySQLUsers test_mysql_users)
|
||||||
add_test(TestHash test_hash)
|
add_test(Internal-TestHash test_hash)
|
||||||
add_test(TestHint test_hint)
|
add_test(Internal-TestHint test_hint)
|
||||||
add_test(TestSpinlock test_spinlock)
|
add_test(Internal-TestSpinlock test_spinlock)
|
||||||
add_test(TestFilter test_filter)
|
add_test(Internal-TestFilter test_filter)
|
||||||
add_test(TestBuffer test_buffer)
|
add_test(Internal-TestBuffer test_buffer)
|
||||||
add_test(TestDCB test_dcb)
|
add_test(Internal-TestDCB test_dcb)
|
||||||
add_test(TestModutil test_modutil)
|
add_test(Internal-TestModutil test_modutil)
|
||||||
add_test(TestPoll test_poll)
|
add_test(Internal-TestPoll test_poll)
|
||||||
add_test(TestService test_service)
|
add_test(Internal-TestService test_service)
|
||||||
add_test(TestServer test_server)
|
add_test(Internal-TestServer test_server)
|
||||||
add_test(TestUsers test_users)
|
add_test(Internal-TestUsers test_users)
|
||||||
add_test(TestAdminUsers test_adminusers)
|
add_test(Internal-TestAdminUsers test_adminusers)
|
||||||
add_test(TestMemlog testmemlog)
|
add_test(Internal-TestMemlog testmemlog)
|
||||||
add_test(TestFeedback testfeedback)
|
add_test(TestFeedback testfeedback)
|
||||||
set_tests_properties(testMySQLUsers
|
set_tests_properties(Internal-TestMySQLUsers
|
||||||
TestHash
|
Internal-TestHash
|
||||||
TestHint
|
Internal-TestHint
|
||||||
TestSpinlock
|
Internal-TestSpinlock
|
||||||
TestFilter
|
Internal-TestFilter
|
||||||
TestBuffer
|
Internal-TestBuffer
|
||||||
TestDCB
|
Internal-TestDCB
|
||||||
TestModutil
|
Internal-TestModutil
|
||||||
TestPoll
|
Internal-TestPoll
|
||||||
TestService
|
Internal-TestService
|
||||||
TestServer
|
Internal-TestServer
|
||||||
TestUsers
|
Internal-TestUsers
|
||||||
TestAdminUsers
|
Internal-TestAdminUsers
|
||||||
TestMemlog
|
Internal-TestMemlog
|
||||||
TestFeedback PROPERTIES ENVIRONMENT MAXSCALE_HOME=${CMAKE_BINARY_DIR}/)
|
TestFeedback PROPERTIES ENVIRONMENT MAXSCALE_HOME=${CMAKE_BINARY_DIR}/)
|
||||||
|
set_tests_properties(TestFeedback PROPERTIES TIMEOUT 30)
|
||||||
|
|||||||
@ -34,6 +34,8 @@
|
|||||||
* Date Who Description
|
* Date Who Description
|
||||||
* 14/04/2014 Mark Riddoch Initial implementation
|
* 14/04/2014 Mark Riddoch Initial implementation
|
||||||
* 18/02/2015 Massimiliano Pinto Addition of DISCONNECT ALL and DISCONNECT SERVER server_id
|
* 18/02/2015 Massimiliano Pinto Addition of DISCONNECT ALL and DISCONNECT SERVER server_id
|
||||||
|
* 18/03/2015 Markus Makela Better detection of CRC32 | NONE checksum
|
||||||
|
* 19/03/2015 Massimiliano Pinto Addition of basic MariaDB 10 compatibility support
|
||||||
*
|
*
|
||||||
* @endverbatim
|
* @endverbatim
|
||||||
*/
|
*/
|
||||||
@ -80,6 +82,7 @@ static int blr_slave_send_eof(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, int
|
|||||||
static int blr_slave_send_disconnected_server(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, int server_id, int found);
|
static int blr_slave_send_disconnected_server(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, int server_id, int found);
|
||||||
static int blr_slave_disconnect_all(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave);
|
static int blr_slave_disconnect_all(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave);
|
||||||
static int blr_slave_disconnect_server(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, int server_id);
|
static int blr_slave_disconnect_server(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, int server_id);
|
||||||
|
static int blr_slave_send_ok(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave);
|
||||||
|
|
||||||
extern int lm_enabled_logfiles_bitmask;
|
extern int lm_enabled_logfiles_bitmask;
|
||||||
extern size_t log_ses_count[];
|
extern size_t log_ses_count[];
|
||||||
@ -362,14 +365,18 @@ int query_len;
|
|||||||
{
|
{
|
||||||
free(query_text);
|
free(query_text);
|
||||||
return blr_slave_replay(router, slave, router->saved_master.heartbeat);
|
return blr_slave_replay(router, slave, router->saved_master.heartbeat);
|
||||||
|
}
|
||||||
|
else if (strcasecmp(word, "@mariadb_slave_capability") == 0)
|
||||||
|
{
|
||||||
|
free(query_text);
|
||||||
|
return blr_slave_send_ok(router, slave);
|
||||||
}
|
}
|
||||||
else if (strcasecmp(word, "@master_binlog_checksum") == 0)
|
else if (strcasecmp(word, "@master_binlog_checksum") == 0)
|
||||||
{
|
{
|
||||||
word = strtok_r(NULL, sep, &brkb);
|
word = strtok_r(NULL, sep, &brkb);
|
||||||
if (word && (strcasecmp(word, "'none'") == 0))
|
if (word && (strcasecmp(word, "@@global.biglog_checksum'") == 0))
|
||||||
slave->nocrc = 1;
|
slave->nocrc = !router->master_chksum;
|
||||||
else
|
|
||||||
slave->nocrc = 0;
|
|
||||||
free(query_text);
|
free(query_text);
|
||||||
return blr_slave_replay(router, slave, router->saved_master.chksum1);
|
return blr_slave_replay(router, slave, router->saved_master.chksum1);
|
||||||
}
|
}
|
||||||
@ -2072,3 +2079,31 @@ blr_slave_disconnect_all(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave)
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Send a MySQL OK packet to the DCB
|
||||||
|
*
|
||||||
|
* @param dcb The DCB to send the OK packet to
|
||||||
|
* @return result of a write call, non-zero if write was successful
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
blr_slave_send_ok(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave)
|
||||||
|
{
|
||||||
|
GWBUF *pkt;
|
||||||
|
uint8_t *ptr;
|
||||||
|
|
||||||
|
if ((pkt = gwbuf_alloc(11)) == NULL)
|
||||||
|
return 0;
|
||||||
|
ptr = GWBUF_DATA(pkt);
|
||||||
|
*ptr++ = 7; // Payload length
|
||||||
|
*ptr++ = 0;
|
||||||
|
*ptr++ = 0;
|
||||||
|
*ptr++ = 1; // Seqno
|
||||||
|
*ptr++ = 0; // ok
|
||||||
|
*ptr++ = 0;
|
||||||
|
*ptr++ = 0;
|
||||||
|
*ptr++ = 2;
|
||||||
|
*ptr++ = 0;
|
||||||
|
*ptr++ = 0;
|
||||||
|
*ptr++ = 0;
|
||||||
|
return slave->dcb->func.write(slave->dcb, pkt);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user