[ 
https://issues.apache.org/jira/browse/CASSANDRA-16625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17333349#comment-17333349
 ] 

Andres de la Peña commented on CASSANDRA-16625:
-----------------------------------------------

[Here|https://github.com/adelapena/cassandra/commit/682aa6082f55f0d508eeaf3d31021ce9363a3f84]
 is as simple patch adding jobs to run a specific Python dtest multiple times. 
The new jobs are:
 * j8_repeated-dtest-with-vnodes
 * j8_repeated-dtest-no-vnodes
 * 11_repeated-dtest-with-vnodes
 * j11_repeated-dtest-no-vnodes

All these jobs are optional and require user approval to start. The name of the 
test to run is defined by the env var {{REPEATED_DTEST_PYTHON_TEST_NAME}}. It 
can be anything of the form:
 * pending_range_test.py
 * pending_range_test.py::TestPendingRangeMovements
 * pending_range_test.py::TestPendingRangeMovements::test_pending_range

The number of iterations is set in the environment variable 
{{REPEATED_DTEST_PYTHON_COUNT}}, which defaults to 100. Sadly I haven't found a 
way to introduce these values in the CircleCI UI, so they should be set in the 
{{.circleci/config.yml}}, as we do when we want to run a specific dtest branch.

All the jobs use the parallel executor, evenly distributing the test iterations 
among the runners. For example, if we use the MIDRES config with a parallelism 
of 25 and we want to run a certain test 100 times, each runner will run the 
test 4 times.

[Here|https://app.circleci.com/pipelines/github/adelapena/cassandra/305/workflows/827ede69-9a87-4738-a326-4368e94daa0b/jobs/2737]
 we can see 100 runs of {{pending_range_test.py}}, which was recently fixed by 
CASSANDRA-16614. It has taken less than 3 minutes with HIGHRES.

Also, 
[here|https://app.circleci.com/pipelines/github/adelapena/cassandra/304/workflows/e848906f-86e5-4779-a982-b4887570c012/jobs/2729]
 we can see 100 runs of the class 
{{cqlsh_tests/test_cqlsh.py::TestCqlshSmoke}}, taking around six minutes with 
HIGHRES.

> Add a CircleCI job to run some tests repeatedly
> -----------------------------------------------
>
>                 Key: CASSANDRA-16625
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16625
>             Project: Cassandra
>          Issue Type: Task
>          Components: CI
>            Reporter: Andres de la Peña
>            Assignee: Andres de la Peña
>            Priority: Normal
>
> I think it could be useful to have an optional CircleCI job to run some 
> specific tests n times. That way, tickets could attach CircleCI runs showing 
> that the changes don't make a certain ticket flaky or, conversely, that they 
> fix a flaky test. Doing this systematically should mitigate the risk of 
> introducing new flaky tests, and I guess it would be more convenient and easy 
> to share than running the tests locally or on a private CI system.
> It would also be nice to have something similar in Jenkins, but I'm focusing 
> this ticket on CircleCI because it's available also for non-committers, so 
> assignees can run their tests before setting the tickets as ready for review.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to