Jenkins: increase splits for simulator-dtest to 2 (support for multiple splits is added) and for test-burn to 4

Patch by Dmitry Konstantinov; reviewed by Michael Semb Wever, Jyothsna Konisa for CASSANDRA-21082
This commit is contained in:
Dmitry Konstantinov 2025-12-17 12:38:40 +00:00
parent e14816e244
commit d2c48faf71
3 changed files with 51 additions and 26 deletions

View File

@ -285,8 +285,8 @@ _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" | "sstableloader-test" | "microbench" | "cqlsh-test" | "simulator-dtest")
error 1 "Target ${target} does not suport splits."
"stress-test" | "fqltool-test" | "sstableloader-test" | "microbench" | "cqlsh-test")
error 1 "Target ${target} does not support splits."
;;
*)
;;
@ -377,7 +377,7 @@ _main() {
_run_testlist "long" "testclasslist" "${test_name_regexp}" "${split_chunk}" "$(_timeout_for 'test.long.timeout')" "${repeat_count}"
;;
"simulator-dtest")
ant test-simulator-dtest ${ANT_TEST_OPTS} || echo "failed ${target}"
_run_testlist "simulator" "testclasslist-simulator" "${test_name_regexp}" "${split_chunk}" "$(_timeout_for 'test.simulation.timeout')" "${repeat_count}"
;;
"jvm-dtest" | "jvm-dtest-novnode")
[ "jvm-dtest-novnode" == "${target}" ] || ANT_TEST_OPTS="${ANT_TEST_OPTS} -Dcassandra.dtest.num_tokens=16"

View File

@ -188,13 +188,13 @@ def tasks() {
'test-latest': [splits: 20],
'test-compression': [splits: 20],
'stress-test': [splits: 1, size: 'small'],
'test-burn': [splits: 2],
'test-burn': [splits: 4],
'long-test': [splits: 4],
'test-oa': [splits: 20],
'test-system-keyspace-directory': [splits: 20],
'jvm-dtest': [splits: 16],
'jvm-dtest-upgrade': [splits: 6],
'simulator-dtest': [splits: 1, size: 'large'],
'simulator-dtest': [splits: 2, size: 'large'],
'dtest': [splits: 64, size: 'large'],
'dtest-novnode': [splits: 64, size: 'large'],
'dtest-latest': [splits: 64, size: 'large'],

View File

@ -1792,6 +1792,13 @@
<property name="all-test-classes" refid="all-test-classes-path"/>
<testhelper testdelegate="testlist-system-keyspace-directory"/>
</target>
<target name="testclasslist-simulator" depends="maybe-build-test" description="Run tests given in file -Dtest.classlistfile (one-class-per-line, e.g. org/apache/cassandra/db/SomeTest.java)">
<path id="all-test-classes-path">
<fileset dir="${test.dir}/${test.classlistprefix}" includesfile="${test.classlistfile}"/>
</path>
<property name="all-test-classes" refid="all-test-classes-path"/>
<testhelper testdelegate="testlist-simulator"/>
</target>
<!-- Build a self-contained jar for e.g. remote execution; not currently used for running burn tests with this build script -->
<target name="burn-test-jar" depends="build-test, build" description="Create dtest-compatible jar, including all dependencies">
@ -1857,32 +1864,50 @@
</testmacro>
</target>
<property name="simulator.asm.print" value="none"/> <!-- Supports: NONE, CLASS_SUMMARY, CLASS_DETAIL, METHOD_SUMMARY, METHOD_DETAIL, ASM; see org.apache.cassandra.simulator.asm.MethodLogger.Level -->
<property name="simulator.asm.print" value="none"/> <!-- Supports: NONE, CLASS_SUMMARY, CLASS_DETAIL, METHOD_SUMMARY, METHOD_DETAIL, ASM; see org.apache.cassandra.simulator.asm.MethodLogger.Level -->
<resources id="_simulator_jvmargs_items">
<string>-Djdk.attach.allowAttachSelf=true</string>
<string>-Dlogback.configurationFile=test/conf/logback-simulator.xml</string>
<string>-Dcassandra.ring_delay_ms=10000</string>
<string>-Dcassandra.tolerate_sstable_size=true</string>
<string>-Dcassandra.skip_sync=true</string>
<string>-Dcassandra.debugrefcount=false</string>
<string>-Dcassandra.test.simulator.determinismcheck=strict</string>
<string>-Dcassandra.test.simulator.print_asm=${simulator.asm.print}</string>
<!-- Support Simulator Tests -->
<string>-javaagent:${test.lib}/jars/simulator-asm.jar</string>
<string>-Xbootclasspath/a:${test.lib}/jars/simulator-bootstrap.jar</string>
<string>-XX:ActiveProcessorCount=4</string>
<string>-XX:-TieredCompilation</string>
<string>-XX:-BackgroundCompilation</string>
<string>-XX:CICompilerCount=1</string>
<string>-XX:Tier4CompileThreshold=1000</string>
<string>-XX:ReservedCodeCacheSize=256M</string>
<!-- total memory must fit within the pod constraints, see comments in .jenkins/Jenkinsfile and dind's container resourceRequestMemory in .jenkins/k8s/jenkins-deployment.yaml -->
<string>-Xmx8G</string>
<!-- Harry tests kept failing due to direct memory failures and looks like its undersized... so upping to allow more stable runs -->
<string>-XX:MaxDirectMemorySize=8G</string>
</resources>
<pathconvert property="_simulator.jvmargs_concat" refid="_simulator_jvmargs_items" pathsep=" "/>
<target name="test-simulator-dtest" depends="maybe-build-test" description="Execute simulator dtests">
<testmacro inputdir="${test.simulator-test.src}" timeout="${test.simulation.timeout}" forkmode="perTest" showoutput="true" filter="**/test/${test.name}.java" maxmemory="8g">
<jvmarg value="-Dlogback.configurationFile=test/conf/logback-simulator.xml"/>
<jvmarg value="-Dcassandra.ring_delay_ms=10000"/>
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
<jvmarg value="-Dcassandra.skip_sync=true" />
<jvmarg value="-Dcassandra.debugrefcount=false"/>
<jvmarg value="-Dcassandra.test.simulator.determinismcheck=strict"/>
<jvmarg value="-Dcassandra.test.simulator.print_asm=${simulator.asm.print}" />
<!-- Support Simulator Tests -->
<jvmarg line="-javaagent:${test.lib}/jars/simulator-asm.jar"/>
<jvmarg line="-Xbootclasspath/a:${test.lib}/jars/simulator-bootstrap.jar"/>
<jvmarg line="-XX:ActiveProcessorCount=4"/>
<jvmarg line="-XX:-TieredCompilation"/>
<jvmarg line="-XX:-BackgroundCompilation"/>
<jvmarg line="-XX:CICompilerCount=1"/>
<jvmarg line="-XX:Tier4CompileThreshold=1000"/>
<jvmarg line="-XX:ReservedCodeCacheSize=256M"/>
<!-- total memory must fit within the pod constraints, see comments in .jenkins/Jenkinsfile and dind's container resourceRequestMemory in .jenkins/k8s/jenkins-deployment.yaml -->
<jvmarg line="-Xmx8G"/>
<!-- Harry tests kept failing due to direct memory failures and looks like its undersized... so upping to allow more stable runs -->
<jvmarg line="-XX:MaxDirectMemorySize=8G"/>
<jvmarg line="${_simulator.jvmargs_concat}"/>
</testmacro>
</target>
<macrodef name="testlist-simulator">
<attribute name="test.file.list" />
<sequential>
<testmacrohelper inputdir="${test.simulator-test.src}" timeout="${test.timeout}"
forkmode="perTest" showoutput="true"
exclude="**/*.java" filelist="@{test.file.list}"
maxmemory="8g">
<jvmarg line="${_simulator.jvmargs_concat}"/>
</testmacrohelper>
</sequential>
</macrodef>
<!-- To run them you'll need to:
- `ant dtest-jar` on each version involved, including your current feature branch
- copy the build/dtest-*.jar for each version into your feature branch build folder