You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by mc...@apache.org on 2023/11/15 03:01:08 UTC

(cassandra) branch cassandra-5.0 updated: Add to jenkins pipeline: test-oa, test-system-keyspace-directory, test-trie, jvm-dtest-novnode, jvm-dtest-upgrade-novnode simulator-dtest, dtest-large-novnode, dtest-upgrade-large, dtest-upgrade-novnode, dtest-upgrade-novnode-large.

This is an automated email from the ASF dual-hosted git repository.

mck pushed a commit to branch cassandra-5.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-5.0 by this push:
     new f0655159e6 Add to jenkins pipeline: test-oa, test-system-keyspace-directory, test-trie, jvm-dtest-novnode, jvm-dtest-upgrade-novnode simulator-dtest, dtest-large-novnode, dtest-upgrade-large, dtest-upgrade-novnode, dtest-upgrade-novnode-large.
f0655159e6 is described below

commit f0655159e692816a2703e2a0ff6c9458f90cab75
Author: Mick Semb Wever <mc...@apache.org>
AuthorDate: Mon Nov 13 18:34:44 2023 +0100

    Add to jenkins pipeline: test-oa, test-system-keyspace-directory, test-trie, jvm-dtest-novnode, jvm-dtest-upgrade-novnode simulator-dtest, dtest-large-novnode, dtest-upgrade-large, dtest-upgrade-novnode, dtest-upgrade-novnode-large.
    
     patch by Mick Semb Wever; reviewed by Berenguer Blasi, Brandon Williams for CASSANDRA-17989, CASSANDRA-18008, CASSANDRA-17145, CASSANDRA-18003
---
 .build/docker/run-tests.sh |  18 +++-
 .build/run-tests.sh        |  11 ++-
 .jenkins/Jenkinsfile       | 238 ++++++++++++++++++++++++++++++++++++++++++++-
 build.xml                  |   2 +-
 4 files changed, 261 insertions(+), 8 deletions(-)

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 9eaf8b0833..c0a1e1eb2e 100755
--- a/.build/run-tests.sh
+++ b/.build/run-tests.sh
@@ -150,7 +150,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
           ;;
@@ -226,7 +226,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; }
@@ -236,8 +240,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 856892020d..341a4b95c4 100644
--- a/build.xml
+++ b/build.xml
@@ -1152,7 +1152,7 @@
         <jvmarg value="-Dcassandra.test.sstableformatdevelopment=true"/>
         <!-- The first time SecureRandom initializes can be slow if it blocks on /dev/random -->
         <jvmarg value="-Djava.security.egd=file:/dev/urandom" />
-        <jvmarg value="-Dcassandra.testtag=@{testtag}.jdk${ant.java.version}${testtag.extra}"/>
+        <jvmarg value="-Dcassandra.testtag=@{testtag}_jdk${ant.java.version}${testtag.extra}"/>
         <jvmarg value="-Dcassandra.keepBriefBrief=${cassandra.keepBriefBrief}" />
         <jvmarg value="-Dcassandra.strict.runtime.checks=true" />
         <jvmarg value="-Dcassandra.reads.thresholds.coordinator.defensive_checks_enabled=true" /> <!-- enable defensive checks -->


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org