diff --git a/.build/docker/run-tests.sh b/.build/docker/run-tests.sh
index ede5569834..76e0c7dfb0 100755
--- a/.build/docker/run-tests.sh
+++ b/.build/docker/run-tests.sh
@@ -134,7 +134,7 @@ case ${target} in
# check that ${cassandra_dtest_dir} is valid
[ -f "${cassandra_dtest_dir}/dtest.py" ] || { echo >&2 "${cassandra_dtest_dir}/dtest.py not found. please specify 'cassandra_dtest_dir' to point to the local cassandra-dtest source"; exit 1; }
;;
- "test"| "test-cdc" | "test-compression" | "test-oa" | "test-system-keyspace-directory" | "test-tries" | "jvm-dtest" | "jvm-dtest-upgrade")
+ "test"| "test-cdc" | "test-compression" | "test-oa" | "test-system-keyspace-directory" | "test-tries" | "jvm-dtest" | "jvm-dtest-upgrade" | "jvm-dtest-novnode" | "jvm-dtest-upgrade-novnode" | "simulator-dtest")
[[ ${mem} -gt $((5 * 1024 * 1024 * 1024 * ${jenkins_executors})) ]] || { echo >&2 "tests require minimum docker memory 6g (per jenkins executor (${jenkins_executors})), found ${mem}"; exit 1; }
max_docker_runs_by_cores=$( echo "sqrt( ${cores} / ${jenkins_executors} )" | bc )
max_docker_runs_by_mem=$(( ${mem} / ( 5 * 1024 * 1024 * 1024 * ${jenkins_executors} ) ))
@@ -164,9 +164,23 @@ mkdir -p ${build_dir}/test/logs || true
mkdir -p ${build_dir}/test/output || true
chmod -R ag+rwx ${build_dir}
+# define testtag.extra so tests can be aggregated together. (jdk is already appended in build.xml)
+case ${target} in
+ "cqlsh-test" | "dtest" | "dtest-novnode" | "dtest-offheap" | "dtest-large" | "dtest-large-novnode" | "dtest-upgrade" | "dtest-upgrade-large" | "dtest-upgrade-novnode" | "dtest-upgrade-novnode-large" )
+ ANT_OPTS="-Dtesttag.extra=_$(arch)_python${python_version/./-}"
+ ;;
+ "jvm-dtest-novnode" | "jvm-dtest-upgrade-novnode" )
+ ANT_OPTS="-Dtesttag.extra=_$(arch)_novnode"
+ ;;
+ *)
+ ANT_OPTS="-Dtesttag.extra=_$(arch)"
+ ;;
+esac
+
# cython can be used for cqlsh-test
if [ "$cython" == "yes" ]; then
[ "${target}" == "cqlsh-test" ] || { echo "cython is only supported for cqlsh-test"; exit 1; }
+ ANT_OPTS="${ANT_OPTS}_cython"
else
cython="no"
fi
@@ -178,7 +192,7 @@ TEST_SCRIPT=${test_script}
JAVA_VERSION=${java_version}
PYTHON_VERSION=${python_version}
cython=${cython}
-ANT_OPTS="-Dtesttag.extra=.arch=$(arch).python${python_version}"
+ANT_OPTS="${ANT_OPTS}"
EOF
split_str="0_0"
diff --git a/.build/run-tests.sh b/.build/run-tests.sh
index ce13c2a46a..e419a4f79e 100755
--- a/.build/run-tests.sh
+++ b/.build/run-tests.sh
@@ -151,7 +151,7 @@ _main() {
# check split_chunk is compatible with target (if not a regexp)
if [[ "${_split_chunk}" =~ ^\d+/\d+$ ]] && [[ "1/1" != "${split_chunk}" ]] ; then
case ${target} in
- "stress-test" | "fqltool-test" | "microbench" | "cqlsh-test")
+ "stress-test" | "fqltool-test" | "microbench" | "cqlsh-test" | "simulator-dtest")
echo "Target ${target} does not suport splits."
exit 1
;;
@@ -227,7 +227,11 @@ _main() {
"long-test")
_run_testlist "long" "testclasslist" "${split_chunk}" "$(_timeout_for 'test.long.timeout')"
;;
- "jvm-dtest")
+ "simulator-dtest")
+ ant test-simulator-dtest ${ANT_TEST_OPTS} || echo "failed ${target}"
+ ;;
+ "jvm-dtest" | "jvm-dtest-novnode")
+ [ "jvm-dtest-novnode" == "${target}" ] || ANT_TEST_OPTS="${ANT_TEST_OPTS} -Dcassandra.dtest.num_tokens=16"
testlist=$( _list_tests "distributed" | grep -v "upgrade" | _split_tests "${split_chunk}")
if [[ -z "$testlist" ]]; then
[[ "${split_chunk}" =~ ^[0-9]+/[0-9]+$ ]] || { echo "No tests match ${split_chunk}"; exit 1; }
@@ -237,8 +241,9 @@ _main() {
fi
ant testclasslist -Dtest.classlistprefix=distributed -Dtest.timeout=$(_timeout_for "test.distributed.timeout") -Dtest.classlistfile=<(echo "${testlist}") ${ANT_TEST_OPTS} || echo "failed ${target} ${split_chunk}"
;;
- "jvm-dtest-upgrade")
+ "jvm-dtest-upgrade" | "jvm-dtest-upgrade-novnode")
_build_all_dtest_jars
+ [ "jvm-dtest-upgrade-novnode" == "${target}" ] || ANT_TEST_OPTS="${ANT_TEST_OPTS} -Dcassandra.dtest.num_tokens=16"
testlist=$( _list_tests "distributed" | grep "upgrade" | _split_tests "${split_chunk}")
if [[ -z "${testlist}" ]]; then
[[ "${split_chunk}" =~ ^[0-9]+/[0-9]+$ ]] || { echo "No tests match ${split_chunk}"; exit 1; }
diff --git a/.jenkins/Jenkinsfile b/.jenkins/Jenkinsfile
index fe32d0f4cd..831e2ade65 100644
--- a/.jenkins/Jenkinsfile
+++ b/.jenkins/Jenkinsfile
@@ -231,6 +231,84 @@ pipeline {
}
}
}
+ stage('oa') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ oa = build job: "${env.JOB_NAME}-test-oa", propagate: false
+ if (oa.result != 'FAILURE') break
+ }
+ if (oa.result != 'SUCCESS') unstable('oa failures')
+ if (oa.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('test-oa', oa.getNumber())
+ }
+ }
+ }
+ }
+ }
+ stage('system-keyspace-directory') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ system_keyspace_directory = build job: "${env.JOB_NAME}-test-system-keyspace-directory", propagate: false
+ if (system_keyspace_directory.result != 'FAILURE') break
+ }
+ if (system_keyspace_directory.result != 'SUCCESS') unstable('system-keyspace-directory failures')
+ if (system_keyspace_directory.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('test-system-keyspace-directory', system_keyspace_directory.getNumber())
+ }
+ }
+ }
+ }
+ }
+ stage('trie') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ trie = build job: "${env.JOB_NAME}-test-trie", propagate: false
+ if (trie.result != 'FAILURE') break
+ }
+ if (trie.result != 'SUCCESS') unstable('trie failures')
+ if (trie.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('test-trie', trie.getNumber())
+ }
+ }
+ }
+ }
+ }
stage('cqlsh') {
steps {
script {
@@ -257,6 +335,32 @@ pipeline {
}
}
}
+ stage('simulator-dtest') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ simulator_dtest = build job: "${env.JOB_NAME}-simulator-dtest", propagate: false
+ if (simulator_dtest.result != 'FAILURE') break
+ }
+ if (simulator_dtest.result != 'SUCCESS') unstable('simulator-dtest failures')
+ if (simulator_dtest.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('simulator-dtest', simulator_dtest.getNumber())
+ }
+ }
+ }
+ }
+ }
}
}
stage('Distributed Test') {
@@ -287,6 +391,32 @@ pipeline {
}
}
}
+ stage('jvm-dtest-novnode') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ jvm_dtest_novnode = build job: "${env.JOB_NAME}-jvm-dtest-novnode", propagate: false
+ if (jvm_dtest_novnode.result != 'FAILURE') break
+ }
+ if (jvm_dtest_novnode.result != 'SUCCESS') unstable('jvm-dtest-novnode failures')
+ if (jvm_dtest_novnode.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('jvm-dtest-novnode', jvm_dtest_novnode.getNumber())
+ }
+ }
+ }
+ }
+ }
stage('jvm-dtest-upgrade') {
steps {
script {
@@ -311,8 +441,34 @@ pipeline {
}
}
}
- }
- }
+ }
+ }
+ stage('jvm-dtest-upgrade-novnode') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ jvm_dtest_upgrade_novnode = build job: "${env.JOB_NAME}-jvm-dtest-upgrade-novnode", propagate: false
+ if (jvm_dtest_upgrade_novnode.result != 'FAILURE') break
+ }
+ if (jvm_dtest_upgrade_novnode.result != 'SUCCESS') unstable('jvm-dtest-upgrade-novnode failures')
+ if (jvm_dtest_upgrade_novnode.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('jvm-dtest-upgrade-novnode', jvm_dtest_upgrade_novnode.getNumber())
+ }
+ }
+ }
+ }
+ }
stage('dtest') {
steps {
script {
@@ -469,6 +625,84 @@ pipeline {
}
}
}
+ stage('dtest-upgrade-large') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ dtest_upgrade = build job: "${env.JOB_NAME}-dtest-upgrade-large", propagate: false
+ if (dtest_upgrade.result != 'FAILURE') break
+ }
+ if (dtest_upgrade.result != 'SUCCESS') unstable('dtest failures')
+ if (dtest_upgrade.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('dtest-upgrade', dtest_upgrade.getNumber())
+ }
+ }
+ }
+ }
+ }
+ stage('dtest-upgrade-novnode') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ dtest_upgrade_novnode = build job: "${env.JOB_NAME}-dtest-upgrade-novnode", propagate: false
+ if (dtest_upgrade_novnode.result != 'FAILURE') break
+ }
+ if (dtest_upgrade_novnode.result != 'SUCCESS') unstable('dtest-upgrade-novnode failures')
+ if (dtest_upgrade_novnode.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('dtest-upgrade-novnode', dtest_upgrade_novnode.getNumber())
+ }
+ }
+ }
+ }
+ }
+ stage('dtest-upgrade-novnode-large') {
+ steps {
+ script {
+ def attempt = 1
+ while (attempt <=2) {
+ if (attempt > 1) {
+ sleep(60 * attempt)
+ }
+ attempt = attempt + 1
+ dtest_upgrade_novnode_large = build job: "${env.JOB_NAME}-dtest-upgrade-novnode-large", propagate: false
+ if (dtest_upgrade_novnode_large.result != 'FAILURE') break
+ }
+ if (dtest_upgrade_novnode_large.result != 'SUCCESS') unstable('dtest-upgrade-novnode-large failures')
+ if (dtest_upgrade_novnode_large.result == 'FAILURE') currentBuild.result='FAILURE'
+ }
+ }
+ post {
+ always {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('dtest-upgrade-novnode-large', dtest_upgrade_novnode_large.getNumber())
+ }
+ }
+ }
+ }
+ }
}
}
stage('Summary') {
diff --git a/build.xml b/build.xml
index 64ef9401dd..04b742ad51 100644
--- a/build.xml
+++ b/build.xml
@@ -1152,7 +1152,7 @@
-
+