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 2021/04/15 22:47:43 UTC
[cassandra] branch cassandra-2.2 updated: Restore running each test
class in its own separate jvm and cassandra directory (Remove test
parallelism from ant build.xml)
This is an automated email from the ASF dual-hosted git repository.
mck pushed a commit to branch cassandra-2.2
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-2.2 by this push:
new c52f50f Restore running each test class in its own separate jvm and cassandra directory (Remove test parallelism from ant build.xml)
c52f50f is described below
commit c52f50f046fd1a8e1c7f17d9a1952e2bd92aeb4c
Author: Mick Semb Wever <mc...@apache.org>
AuthorDate: Thu Apr 15 16:57:36 2021 +0200
Restore running each test class in its own separate jvm and cassandra directory
(Remove test parallelism from ant build.xml)
patch by Mick Semb Wever; reviewed by Yifan Cai, David Capwell for CASSANDRA-16595
---
build.xml | 66 ++++++++++++++++------
.../cassandra/OffsetAwareConfigurationLoader.java | 63 ---------------------
2 files changed, 49 insertions(+), 80 deletions(-)
diff --git a/build.xml b/build.xml
index cbe45ba..95f85c0 100644
--- a/build.xml
+++ b/build.xml
@@ -1268,6 +1268,43 @@
</copy>
</target>
+ <!-- Run tests separately and report errors after and generate a junit report -->
+ <macrodef name="testhelper">
+ <attribute name="testdelegate"/>
+ <sequential>
+ <testhelper_ testdelegate="@{testdelegate}"/>
+ <fail message="Some test(s) failed.">
+ <condition>
+ <and>
+ <isset property="testfailed"/>
+ <not>
+ <isset property="ant.test.failure.ignore"/>
+ </not>
+ </and>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <!-- Run a list of junit tasks but don't track errors or generate a report after
+ If a test fails the testfailed property will be set. All the tests are run using the testdelegate
+ macro that is specified as an attribute and they will be run sequentially in this ant process -->
+ <scriptdef name="testhelper_" language="javascript">
+ <attribute name="testdelegate"/>
+ <![CDATA[
+ sep = project.getProperty("path.separator");
+ all = project.getProperty("all-test-classes").split(sep);
+ var p = project.createTask('sequential');
+ for (i = 0; i < all.length; i++) {
+ if (all[i] == undefined) continue;
+ task = project.createTask( attributes.get("testdelegate") );
+ task.setDynamicAttribute( "test.file.list", "" + all[i]);
+ p.addTask(task);
+ }
+ p.perform();
+ ]]>
+ </scriptdef>
+
<!-- Defines how to run a set of tests. If you change the defaults for attributes
you should also update them in testmacro.,
The two are split because the helper doesn't generate
@@ -1280,7 +1317,6 @@
<attribute name="filter" default="**/${test.name}.java"/>
<attribute name="exclude" default="" />
<attribute name="filelist" default="" />
- <attribute name="poffset" default="0"/>
<attribute name="testtag" default=""/>
<attribute name="usejacoco" default="no"/>
@@ -1315,7 +1351,6 @@
<jvmarg value="-XX:SoftRefLRUPolicyMSPerMB=0" />
<jvmarg value="-Dcassandra.memtable_row_overhead_computation_step=100"/>
<jvmarg value="-Dcassandra.test.use_prepared=${cassandra.test.use_prepared}"/>
- <jvmarg value="-Dcassandra.test.offsetseed=@{poffset}"/>
<jvmarg value="-Dcassandra.test.sstableformatdevelopment=true"/>
<jvmarg value="-Dcassandra.testtag=@{testtag}"/>
<!-- The first time SecureRandom initializes can be slow if it blocks on /dev/random -->
@@ -1335,9 +1370,9 @@
<filelist dir="@{inputdir}" files="@{filelist}"/>
</batchtest>
</junit>
- <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/commitlog:@{poffset}"/>
- <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/data:@{poffset}"/>
- <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/saved_caches:@{poffset}"/>
+ <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/commitlog"/>
+ <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/data"/>
+ <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/saved_caches"/>
</sequential>
</macrodef>
@@ -1410,7 +1445,6 @@
<jvmarg value="-Dmigration-sstable-root=${test.data}/migration-sstables"/>
<jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
- <jvmarg value="-Dcassandra.config.loader=org.apache.cassandra.OffsetAwareConfigurationLoader"/>
<jvmarg value="-Dcassandra.skip_sync=true" />
</testmacrohelper>
</sequential>
@@ -1436,7 +1470,6 @@
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
<jvmarg value="-Dcassandra.config=file:///${compressed_yaml}"/>
<jvmarg value="-Dcassandra.skip_sync=true" />
- <jvmarg value="-Dcassandra.config.loader=org.apache.cassandra.OffsetAwareConfigurationLoader"/>
</testmacrohelper>
</sequential>
</macrodef>
@@ -1479,8 +1512,8 @@
<fileset dir="${test.unit.src}" excludes="**/pig/*.java" includes="**/${test.name}.java" />
<fileset dir="${test.distributed.src}" includes="**/${test.name}.java" />
</path>
- <property name="test.file.list" refid="all-test-classes-path"/>
- <testlist-compression test.file.list="${test.file.list}"/>
+ <property name="all-test-classes" refid="all-test-classes-path"/>
+ <testhelper testdelegate="testlist-compression" />
</target>
<target name="msg-ser-gen-test" depends="build-test" description="Generates message serializations">
@@ -1740,13 +1773,12 @@
<attribute name="filter" default="**/${test.name}.java"/>
<attribute name="exclude" default="" />
<attribute name="filelist" default="" />
- <attribute name="poffset" default="0"/>
<attribute name="testtag" default=""/>
<sequential>
<testmacrohelper inputdir="@{inputdir}" timeout="@{timeout}"
forkmode="@{forkmode}" filter="@{filter}"
- exclude="@{exclude}" filelist="@{filelist}" poffset="@{poffset}"
+ exclude="@{exclude}" filelist="@{filelist}"
testtag="@{testtag}" showoutput="false" >
<optjvmargs/>
</testmacrohelper>
@@ -1767,8 +1799,8 @@
<path id="all-test-classes-path">
<fileset dir="${test.unit.src}" includes="**/${test.name}.java" excludes="**/pig/*.java **/distributed/test/UpgradeTest*.java" />
</path>
- <property name="test.file.list" refid="all-test-classes-path"/>
- <testlist test.file.list="${test.file.list}"/>
+ <property name="all-test-classes" refid="all-test-classes-path"/>
+ <testhelper testdelegate="testlist"/>
</target>
<target name="generate-test-report" description="Generates JUnit's HTML report from results already in build/output">
@@ -1787,16 +1819,16 @@
<path id="all-test-classes-path">
<fileset dir="${test.dir}/${test.classlistprefix}" includesfile="${test.classlistfile}"/>
</path>
- <property name="test.file.list" refid="all-test-classes-path"/>
- <testlist test.file.list="${test.file.list}"/>
+ <property name="all-test-classes" refid="all-test-classes-path"/>
+ <testhelper testdelegate="testlist"/>
</target>
<target name="testclasslist-compression" depends="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="test.file.list" refid="all-test-classes-path"/>
- <testlist-compression test.file.list="${test.file.list}"/>
+ <property name="all-test-classes" refid="all-test-classes-path"/>
+ <testhelper testdelegate="testlist-compression"/>
</target>
<target name="test-distributed" depends="build-test" description="Execute unit tests">
diff --git a/test/unit/org/apache/cassandra/OffsetAwareConfigurationLoader.java b/test/unit/org/apache/cassandra/OffsetAwareConfigurationLoader.java
deleted file mode 100644
index 9023b11..0000000
--- a/test/unit/org/apache/cassandra/OffsetAwareConfigurationLoader.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra;
-
-import org.apache.cassandra.config.Config;
-import org.apache.cassandra.config.YamlConfigurationLoader;
-import org.apache.cassandra.exceptions.ConfigurationException;
-
-import java.io.File;
-
-
-public class OffsetAwareConfigurationLoader extends YamlConfigurationLoader
-{
-
- static final String OFFSET_PROPERTY = "cassandra.test.offsetseed";
- int offset = 0;
-
- public OffsetAwareConfigurationLoader()
- {
- String offsetStr = System.getProperty(OFFSET_PROPERTY);
-
- if (offsetStr == null)
- throw new RuntimeException("offset property is not set: "+OFFSET_PROPERTY);
-
- offset = Integer.valueOf(offsetStr);
-
- assert offset >= 0;
- }
-
- @Override
- public Config loadConfig() throws ConfigurationException
- {
- Config config = super.loadConfig();
-
-
- config.rpc_port += offset;
- config.native_transport_port += offset;
- config.storage_port += offset;
-
- config.commitlog_directory += File.pathSeparator + offset;
- config.saved_caches_directory += File.pathSeparator + offset;
- for (int i = 0; i < config.data_file_directories.length; i++)
- config.data_file_directories[i] += File.pathSeparator + offset;
-
-
- return config;
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org