flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Efimov (JIRA)" <j...@apache.org>
Subject [jira] (FLINK-5679) Refactor *CheckpointedITCase tests to speed up
Date Tue, 31 Jan 2017 21:35:51 GMT

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

Andrew Efimov commented on FLINK-5679:
--------------------------------------

I agree. Recently, I checked approach that allows to reuse cluster across multiple test classes.
{{StreamingMultipleProgramsTestBase}} using enables the reusing cluster across test methods
belonging to the single test class.
In {{StreamingMultipleProgramsTestBase}} we can implement {{@ClassRule ExternalResource externalResource}}
like:
{noformat}
        @ClassRule
	public static ExternalResource externalResource =
		new ExternalResource() {
			private int refCount = 0;

			@Override
			protected void before() throws Throwable {
				if (refCount == 0) {
					setup();
				}
				refCount++;
			}

			@Override
			protected void after() {
				refCount--;
				if (refCount == 0) {
					try {
						teardown();
					} catch (Exception e) {
						throw new RuntimeException(e);
					}
				}
			}
		};
{noformat}

Firstly, {{ExternalResource}} it is right way to provide resource as mentioned in junit java
docs.
This approach allows to execute tests of {{StreamingMultipleProgramsTestBase}} inheritors
independently as it is now running on a dedicated cluster
but also we will be able to specify test suite:
{noformat}
@RunWith(Suite.class)
@Suite.SuiteClasses({ StreamCheckpointNotifierITCase.class, StreamCheckpointingITCase.class
})
public final class CheckpointITCaseSuite extends StreamingMultipleProgramsTestBase 
{noformat}
that feature enables dedicated cluster reusing across multiple particular test classes.

I think about the question and that feature. Cluster reusing can significantly speed up the
execution of tests. But there is a question for which tests can reuse cluster, an obvious
answer is those which do not break a cluster.
it could be first step to improve test framework. What do you think about this idea?

> Refactor  *CheckpointedITCase tests to speed up
> -----------------------------------------------
>
>                 Key: FLINK-5679
>                 URL: https://issues.apache.org/jira/browse/FLINK-5679
>             Project: Flink
>          Issue Type: Test
>          Components: Tests
>            Reporter: Andrew Efimov
>            Assignee: Andrew Efimov
>              Labels: test-framework
>             Fix For: 1.3.0
>
>
> Tests refactoring to speed up:
> {noformat}
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 40.193 sec - in org.apache.flink.test.checkpointing.StreamCheckpointingITCasee
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 119.063 sec - in org.apache.flink.test.checkpointing.UdfStreamOperatorCheckpointingITCase
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 47.525 sec - in org.apache.flink.test.checkpointing.PartitionedStateCheckpointingITCase
> Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 40.355 sec - in org.apache.flink.test.checkpointing.EventTimeAllWindowCheckpointingITCase
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 51.615 sec - in org.apache.flink.test.checkpointing.StateCheckpointedITCase
> {noformat}
> Tests could be adjusted in a similar way to save some time (some may actually even be
redundant by now)  https://github.com/StephanEwen/incubator-flink/commit/0dd7ae693f30585283d334a1d65b3d8222b7ca5c



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message