[ https://issues.apache.org/jira/browse/CASSANDRA-17939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17615970#comment-17615970 ]
Andres de la Peña commented on CASSANDRA-17939: ----------------------------------------------- [This commit|https://github.com/adelapena/cassandra/commit/edb452ce2ef718877ba24e42f2287b4fd0490ea2] shows a draft of how doing the diff locally with the {{generate.sh}} script would look like. The script would do the diff and simply add the detected tests to the usual env vars. For example: {code:java} $ .circleci/generate.sh -m \ -e REPEATED_UTESTS=org.apache.cassandra.cql3.DurationTest#testAddTo,org.apache.cassandra.cql3.validation.entities.DateTypeTest \ -e REPEATED_JVM_DTESTS=org.apache.cassandra.distributed.test.AlterTest#getAndSetCompressionParametersTest \ -e REPEATED_UTESTS_LONG=org.apache.cassandra.io.sstable.CQLSSTableWriterLongTest#testWideRow \ -e REPEATED_DTESTS=cfid_test.py,pending_range_test.py::TestPendingRangeMovements::test_pending_range Generating new config.yml file with middle resources from config-2_1.yml patching file .circleci/config-2_1.yml Detecting new or modified tests with git diff --diff-filter=AMR trunk...HEAD: org.apache.cassandra.cql3.functions.NewTimeFctsTest org.apache.cassandra.cql3.functions.RenamedCastFctsTest org.apache.cassandra.cql3.functions.TimeFctsTest org.apache.cassandra.db.commitlog.BatchCommitLogStressTest org.apache.cassandra.db.commitlog.GroupCommitLogStressTest org.apache.cassandra.db.commitlog.NewBatchCommitLogStressTest org.apache.cassandra.db.commitlog.PeriodicCommitLogStressTest org.apache.cassandra.db.commitlog.RenamedCommitLogStressTest org.apache.cassandra.stress.generate.RenamedDistributionSequenceTest org.apache.cassandra.stress.settings.NewOptionReplicationTest org.apache.cassandra.stress.settings.OptionReplicationTest org.apache.cassandra.fqltool.FQLReplayTest org.apache.cassandra.fqltool.NewFQLReplayTest org.apache.cassandra.fqltool.RenamedFQLCompareTest org.apache.cassandra.simulator.test.NewShortPaxosSimulationTest org.apache.cassandra.simulator.test.RenamedMonitorMethodTransformerTest org.apache.cassandra.simulator.test.TrivialSimulationTest org.apache.cassandra.distributed.test.NewBooleanTest org.apache.cassandra.distributed.test.QueriesTableTest org.apache.cassandra.distributed.test.RenamedGroupByTest org.apache.cassandra.distributed.upgrade.MixedModeMessageForwardTest org.apache.cassandra.distributed.upgrade.NewMixedModeAvailabilityV3XOneAllTest org.apache.cassandra.distributed.upgrade.RenamedMixedModeWritetimeOrTTLTest Setting environment variables: REPEATED_UTESTS: org.apache.cassandra.cql3.functions.TimeFctsTest,org.apache.cassandra.cql3.functions.RenamedCastFctsTest,org.apache.cassandra.cql3.functions.NewTimeFctsTest,org.apache.cassandra.cql3.DurationTest#testAddTo,org.apache.cassandra.cql3.validation.entities.DateTypeTest REPEATED_JVM_DTESTS: org.apache.cassandra.distributed.test.RenamedGroupByTest,org.apache.cassandra.distributed.test.QueriesTableTest,org.apache.cassandra.distributed.test.NewBooleanTest,org.apache.cassandra.distributed.test.AlterTest#getAndSetCompressionParametersTest REPEATED_UTESTS_LONG: org.apache.cassandra.db.commitlog.RenamedCommitLogStressTest,org.apache.cassandra.db.commitlog.PeriodicCommitLogStressTest,org.apache.cassandra.db.commitlog.NewBatchCommitLogStressTest,org.apache.cassandra.db.commitlog.GroupCommitLogStressTest,org.apache.cassandra.db.commitlog.BatchCommitLogStressTest,org.apache.cassandra.io.sstable.CQLSSTableWriterLongTest#testWideRow REPEATED_DTESTS: cfid_test.py,pending_range_test.py::TestPendingRangeMovements::test_pending_range REPEATED_UTESTS_STRESS: org.apache.cassandra.stress.settings.OptionReplicationTest,org.apache.cassandra.stress.settings.NewOptionReplicationTest,org.apache.cassandra.stress.generate.RenamedDistributionSequenceTest REPEATED_UTESTS_FQLTOOL: org.apache.cassandra.fqltool.RenamedFQLCompareTest,org.apache.cassandra.fqltool.NewFQLReplayTest,org.apache.cassandra.fqltool.FQLReplayTest REPEATED_SIMULATOR_DTESTS: org.apache.cassandra.simulator.test.TrivialSimulationTest,org.apache.cassandra.simulator.test.RenamedMonitorMethodTransformerTest,org.apache.cassandra.simulator.test.NewShortPaxosSimulationTest REPEATED_JVM_UPGRADE_DTESTS: org.apache.cassandra.distributed.upgrade.RenamedMixedModeWritetimeOrTTLTest,org.apache.cassandra.distributed.upgrade.NewMixedModeAvailabilityV3XOneAllTest,org.apache.cassandra.distributed.upgrade.MixedModeMessageForwardTest {code} Note how the detected tests are listed and added to the final CircleCI env vars, together with the tests manually provided by the user. As mentioned before, the downside of this approach is that the detection of tests depends on developers using the {{generate.sh}} script. > CircleCI: Automatically detect and repeat new or modified JUnit tests > --------------------------------------------------------------------- > > Key: CASSANDRA-17939 > URL: https://issues.apache.org/jira/browse/CASSANDRA-17939 > Project: Cassandra > Issue Type: Task > Components: CI > Reporter: Andres de la Peña > Priority: Normal > Fix For: 3.0.x, 3.11.x, 4.0.x, 4.x > > > The purpose of this ticket is adding a new CircleCI job that automatically > detects new or modified test classes and runs them repeatedly. That way we > wouldn't need to manually specify those tests with {{.circleci/generate.sh}}. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org