mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-04-18 21:24:07 +03:00
Travis and test fixes:
- Build server build with latest C/C: Instead of copying the C/C directory into server, we now fetch the actual commit or PR into server repository - Fix travis environment variables (Windows) - Skip character set tests if the server doesn't support charset/collation - Don't use CREATE OR REPLACE SQL syntax to make MySQL happy - Disable TLS connection test for MaxScale - Don't set TEST environment variables if they are empty
This commit is contained in:
parent
486a07c824
commit
fa9f5f66be
31
travis.sh
31
travis.sh
@ -32,6 +32,22 @@ if [ -n "$server_branch" ] ; then
|
||||
# build latest server with latest C/C as libmariadb
|
||||
# skip to build some storage engines to speed up the build
|
||||
|
||||
if [ -n "$TRAVIS_PULL_REQUEST" ] && [ "$TRAVIS_PULL_REQUEST" != "false" ] ; then
|
||||
git submodule update --init --remote libmariadb
|
||||
cd libmariadb
|
||||
git fetch origin ${TRAVIS_PULL_REQUEST}
|
||||
git checkout -qf FETCH_HEAD
|
||||
else
|
||||
git submodule set-branch -b ${TRAVIS_BRANCH} libmariadb
|
||||
git submodule sync
|
||||
git submodule update --init --remote libmariadb
|
||||
cd libmariadb
|
||||
git checkout ${TRAVIS_COMMIT}
|
||||
fi
|
||||
|
||||
cd $SERVER_DIR
|
||||
git add libmariadb
|
||||
|
||||
mkdir bld
|
||||
cd bld
|
||||
cmake .. -DPLUGIN_MROONGA=NO -DPLUGIN_ROCKSDB=NO -DPLUGIN_SPIDER=NO -DPLUGIN_TOKUDB=NO
|
||||
@ -43,10 +59,6 @@ if [ -n "$server_branch" ] ; then
|
||||
echo "checkout commit"
|
||||
fi
|
||||
|
||||
cp $CC_DIR/* $SERVER_DIR/libmariadb -r
|
||||
cd $SERVER_DIR
|
||||
git add libmariadb
|
||||
|
||||
cd $SERVER_DIR/bld
|
||||
make -j9
|
||||
|
||||
@ -68,12 +80,11 @@ else
|
||||
echo "build from windows"
|
||||
export MARIADB_CC_TEST=1
|
||||
export MYSQL_TEST_DB=testc
|
||||
export MYSQL_TEST_TLS=%TEST_REQUIRE_TLS%
|
||||
export MYSQL_TEST_USER=%TEST_DB_USER%
|
||||
export MYSQL_TEST_HOST=%TEST_DB_HOST%
|
||||
export MYSQL_TEST_PASSWD=%TEST_DB_PASSWORD%
|
||||
export MYSQL_TEST_PORT=%TEST_DB_PORT%
|
||||
export MYSQL_TEST_TLS=%TEST_REQUIRE_TLS%
|
||||
export MYSQL_TEST_TLS=$TEST_REQUIRE_TLS
|
||||
export MYSQL_TEST_USER=$TEST_DB_USER
|
||||
export MYSQL_TEST_HOST=$TEST_DB_HOST
|
||||
export MYSQL_TEST_PASSWD=$TEST_DB_PASSWORD
|
||||
export MYSQL_TEST_PORT=$TEST_DB_PORT
|
||||
cmake --build . --config RelWithDebInfo
|
||||
else
|
||||
echo "build from linux"
|
||||
|
@ -26,6 +26,10 @@ INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include
|
||||
${CC_SOURCE_DIR}/unittest/libmariadb)
|
||||
ADD_DEFINITIONS(-DLIBMARIADB)
|
||||
|
||||
IF($ENV{TRAVIS})
|
||||
ADD_DEFINITIONS("-DHAVE_TRAVIS=1")
|
||||
ENDIF()
|
||||
|
||||
SET(API_TESTS "conc336" "bulk1" "performance" "basic-t" "fetch" "charset" "logs" "cursor" "errors" "view" "ps" "ps_bugs" "sp" "result" "connection" "misc" "ps_new" "thread" "features-10_2")
|
||||
IF(WITH_DYNCOL)
|
||||
SET(API_TESTS ${API_TESTS} "dyncol")
|
||||
|
@ -547,6 +547,11 @@ static int test_bug30472(MYSQL *mysql)
|
||||
diag("Test requires MySQL Server version 5.1 or above");
|
||||
return SKIP;
|
||||
}
|
||||
if (mariadb_connection(mysql) && mysql_get_server_version(mysql) >= 110400)
|
||||
{
|
||||
diag("C/C 3.3 doesn't support all collations from 11.4 and above");
|
||||
return SKIP;
|
||||
}
|
||||
/* Retrieve character set information. */
|
||||
|
||||
mysql_set_character_set(mysql, "latin1");
|
||||
@ -804,6 +809,13 @@ static int test_conc223(MYSQL *mysql)
|
||||
|
||||
SKIP_MYSQL(mysql);
|
||||
|
||||
if (mariadb_connection(mysql) && mysql_get_server_version(mysql) >= 110400)
|
||||
{
|
||||
diag("C/C 3.3 doesn't support all collations from 11.4 and above");
|
||||
return SKIP;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Test if we're running against an MDEV-27266 server.
|
||||
It can be detected by the presense of the FULL_COLLATION_NAME
|
||||
|
@ -2339,6 +2339,8 @@ static int test_conc748(MYSQL *my __attribute__((unused)))
|
||||
int i;
|
||||
const char *ciphers[3]= {"TLS_AES_128_GCM_SHA256", "TLS_AES_256_GCM_SHA384", "TLS_CHACHA20_POLY1305_SHA256"};
|
||||
|
||||
SKIP_MAXSCALE;
|
||||
|
||||
for (i=0; i < 3; i++)
|
||||
{
|
||||
const char *tls_version;
|
||||
|
@ -1544,7 +1544,10 @@ static int test_conc163(MYSQL *mysql)
|
||||
|
||||
FAIL_IF(mysql_info(mysql) != NULL, "mysql_info: expected NULL");
|
||||
|
||||
rc= mysql_query(mysql, "CREATE OR REPLACE TABLE t1 AS SELECT 1");
|
||||
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
|
||||
check_mysql_rc(rc, mysql);
|
||||
|
||||
rc= mysql_query(mysql, "CREATE TABLE t1 AS SELECT 1");
|
||||
check_mysql_rc(rc, mysql);
|
||||
|
||||
FAIL_IF(mysql_info(mysql) == NULL, "mysql_info: expected != NULL");
|
||||
@ -1557,7 +1560,9 @@ static int test_conc163(MYSQL *mysql)
|
||||
check_stmt_rc(rc, stmt);
|
||||
FAIL_IF(mysql_info(mysql) != NULL, "mysql_info: expected NULL");
|
||||
|
||||
rc= mariadb_stmt_execute_direct(stmt, SL("CREATE OR REPLACE TABLE t1 AS SELECT 1"));
|
||||
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
|
||||
check_mysql_rc(rc, mysql);
|
||||
rc= mariadb_stmt_execute_direct(stmt, SL("CREATE TABLE t1 AS SELECT 1"));
|
||||
check_stmt_rc(rc, stmt);
|
||||
FAIL_IF(mysql_info(mysql) == NULL, "mysql_info: expected != NULL");
|
||||
|
||||
|
@ -575,6 +575,15 @@ static int reset_connection(MYSQL *mysql) {
|
||||
return OK;
|
||||
}
|
||||
|
||||
static char *check_envvar(const char *envvar)
|
||||
{
|
||||
char *p = getenv(envvar);
|
||||
|
||||
if (p && p[0])
|
||||
return p;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* function get_envvars((
|
||||
*
|
||||
@ -593,51 +602,44 @@ void get_envvars() {
|
||||
if (getenv("TRAVIS_JOB_ID"))
|
||||
travis_test= 1;
|
||||
|
||||
if (!hostname && (envvar= getenv("MYSQL_TEST_HOST")))
|
||||
hostname= envvar;
|
||||
if (!hostname)
|
||||
hostname= check_envvar("MYSQL_TEST_HOST");
|
||||
|
||||
if (!username && !(username= check_envvar("MYSQL_TEST_USER")))
|
||||
username= (char *)"root";
|
||||
|
||||
if (!username)
|
||||
{
|
||||
if ((envvar= getenv("MYSQL_TEST_USER")))
|
||||
username= envvar;
|
||||
else
|
||||
username= (char *)"root";
|
||||
}
|
||||
if (!password && (envvar= getenv("MYSQL_TEST_PASSWD")))
|
||||
password= envvar;
|
||||
if (!schema && (envvar= getenv("MYSQL_TEST_DB")))
|
||||
schema= envvar;
|
||||
if (!schema)
|
||||
if (!password)
|
||||
password= check_envvar("MYSQL_TEST_PASSWD");
|
||||
|
||||
if (!schema && !(schema= check_envvar("MYSQL_TEST_DB")))
|
||||
schema= "test";
|
||||
|
||||
if (!port)
|
||||
{
|
||||
if ((envvar= getenv("MYSQL_TEST_PORT")))
|
||||
if ((envvar= check_envvar("MYSQL_TEST_PORT")) ||
|
||||
(envvar= check_envvar("MASTER_MYPORT")))
|
||||
port= atoi(envvar);
|
||||
else if ((envvar= getenv("MASTER_MYPORT")))
|
||||
port= atoi(envvar);
|
||||
diag("port: %d", port);
|
||||
}
|
||||
if (!ssl_port)
|
||||
{
|
||||
if ((envvar= getenv("MYSQL_TEST_SSL_PORT")))
|
||||
if ((envvar= check_envvar("MYSQL_TEST_SSL_PORT")))
|
||||
ssl_port= atoi(envvar);
|
||||
else
|
||||
ssl_port = port;
|
||||
diag("ssl_port: %d", ssl_port);
|
||||
}
|
||||
|
||||
if (!force_tls && (envvar= getenv("MYSQL_TEST_TLS")))
|
||||
if (!force_tls && (envvar= check_envvar("MYSQL_TEST_TLS")))
|
||||
force_tls= atoi(envvar);
|
||||
|
||||
if (!socketname)
|
||||
{
|
||||
if ((envvar= getenv("MYSQL_TEST_SOCKET")))
|
||||
socketname= envvar;
|
||||
else if ((envvar= getenv("MASTER_MYSOCK")))
|
||||
if ((envvar= check_envvar("MYSQL_TEST_SOCKET")) ||
|
||||
(envvar= check_envvar("MASTER_MYSOCK")))
|
||||
socketname= envvar;
|
||||
diag("socketname: %s", socketname);
|
||||
}
|
||||
if ((envvar= getenv("MYSQL_TEST_PLUGINDIR")))
|
||||
if ((envvar= check_envvar("MYSQL_TEST_PLUGINDIR")))
|
||||
plugindir= envvar;
|
||||
|
||||
if (IS_XPAND())
|
||||
|
Loading…
x
Reference in New Issue
Block a user