[
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: [email protected]
For additional commands, e-mail: [email protected]