Skip to content

Commit

Permalink
Enable ParallelSuiteTest
Browse files Browse the repository at this point in the history
Presumably, test was disabled to get rid of distraction during development
and was forgotten.

Test was broken and commented out temporary back in 2011 in
cc950e9 commit, named `Temp commit`.
Commit was introduced in `AllDynamic` branch

Test is green both on the base commit of AllDynamic branch (10a202a) as well as on branch merge point (b251fce)

Add test: child suite should obey threadCount parameter
  • Loading branch information
sankouski-dzmitry committed Dec 1, 2021
1 parent db17f3c commit d1b0f43
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 17 deletions.
68 changes: 57 additions & 11 deletions testng-core/src/test/java/test/thread/ParallelSuiteTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import test.SimpleBaseTest;

public class ParallelSuiteTest extends SimpleBaseTest {
Expand All @@ -21,12 +22,16 @@ public void suitesShouldRunInParallel1() {
2,
null,
Arrays.asList(
getPathToResource("suite-parallel-1.xml"), getPathToResource("suite-parallel-2.xml")));
getPathToParallelResource("simple-suite-parallel-1.xml"),
getPathToParallelResource("simple-suite-parallel-2.xml")
)
);
}

@Test
public void suitesShouldRunInParallel2() {
runTest(5, 3, 3, null, Collections.singletonList(getPathToResource("suite-parallel-0.xml")));
runTest(5, 3, 3, null,
Collections.singletonList(getPathToParallelResource("simple-suite-parallel-0.xml")));
}

@Test(description = "Number of threads (2) is less than number of suites (3)")
Expand All @@ -35,23 +40,58 @@ public void suitesShouldRunInParallel3() {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG tng = create();
tng.setSuiteThreadPoolSize(SUITE_THREAD_POOL_SIZE);
tng.setTestSuites(Collections.singletonList(getPathToResource("suite-parallel-0.xml")));
tng.setTestSuites(Collections.singletonList(getPathToParallelResource("simple-suite-parallel-0.xml")));
tng.addListener((ITestNGListener) tla);

BaseThreadTest.initThreadLog();
tng.run(); // Shouldn't not deadlock
Assert.assertEquals(BaseThreadTest.getThreadCount(), SUITE_THREAD_POOL_SIZE);
}

@Test(description = "Child suite should obey threadCount parameter")
public void childSuiteObeyParentThreadCount() {
runTest(1, 2, XmlSuite.ParallelMode.CLASSES,2, 2,
null,
Arrays.asList(
getPathToParallelResource("inherit-thread-count-parent.yaml")
)
);
}

private void runTest(
int suiteThreadPoolSize,
int expectedThreadCount,
int expectedSuiteCount,
Boolean randomizeSuites,
List<String> paths) {
runTest(
suiteThreadPoolSize,
null,
null,
expectedThreadCount,
expectedSuiteCount,
randomizeSuites,
paths
);
}

private void runTest(
int suiteThreadPoolSize,
Integer threadCount,
XmlSuite.ParallelMode parallelMode,
int expectedThreadCount,
int expectedSuiteCount,
Boolean randomizeSuites,
List<String> paths) {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG tng = create();
tng.setSuiteThreadPoolSize(suiteThreadPoolSize);
if (threadCount != null) {
tng.setThreadCount(threadCount);
}
if (parallelMode != null) {
tng.setParallel(parallelMode);
}
tng.setTestSuites(paths);
tng.addListener((ITestNGListener) tla);
if (null != randomizeSuites) {
Expand Down Expand Up @@ -79,10 +119,10 @@ public void suitesShouldRunInParallel4() {
5,
null,
Arrays.asList(
getPathToResource("parallel-suites/suite-parallel-1.xml"),
getPathToResource("parallel-suites/suite-parallel-2.xml"),
getPathToResource("parallel-suites/suite-parallel-2-1.xml"),
getPathToResource("parallel-suites/suite-parallel-2-2.xml")));
getPathToParallelResource("suite-parallel-1.xml"),
getPathToParallelResource("suite-parallel-2.xml"),
getPathToParallelResource("suite-parallel-2-1.xml"),
getPathToParallelResource("suite-parallel-2-2.xml")));
}

@Test
Expand All @@ -92,7 +132,7 @@ public void suitesShouldRunInParallel5() {
5,
7,
null,
Collections.singletonList(getPathToResource("parallel-suites/suite-parallel-0.xml")));
Collections.singletonList(getPathToParallelResource("suite-parallel-0.xml")));
}

@Test(description = "Number of threads (2) is less than level of suites (3)")
Expand All @@ -102,7 +142,7 @@ public void suitesShouldRunInParallel6() {
2,
7,
null,
Collections.singletonList(getPathToResource("parallel-suites/suite-parallel-0.xml")));
Collections.singletonList(getPathToParallelResource("suite-parallel-0.xml")));
}

@Test(
Expand All @@ -112,7 +152,8 @@ public void suitesShouldRunInParallel6() {
public void suitesShouldRunInOrder() {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG tng = create();
tng.setTestSuites(Collections.singletonList(getPathToResource("suite-parallel-0.xml")));
tng.setTestSuites(Collections
.singletonList(getPathToParallelResource("simple-suite-parallel-0.xml")));
tng.addListener((ITestNGListener) tla);
BaseThreadTest.initThreadLog();
tng.run();
Expand All @@ -134,6 +175,11 @@ public void suitesShouldRunInOrder() {

@Test(description = "Number of threads (1) is less than number of levels of suites (2)")
public void suitesShouldRun1() {
runTest(1, 1, 3, true, Collections.singletonList(getPathToResource("suite-parallel-0.xml")));
runTest(1, 1, 3, true,
Collections.singletonList(getPathToParallelResource("simple-suite-parallel-0.xml")));
}

private static String getPathToParallelResource(String resourceName) {
return getPathToResource(String.format("parallel-suites/%s", resourceName));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: Child suite

tests:
- name: Tests
classes:
- test.thread.Sample2
- test.thread.Sample1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: Parent suite

suiteFiles:
- ./inherit-thread-count-child.yaml

Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<suite name="Suite Parallel 0">

<suite-files>
<suite-file path="./suite-parallel-1.xml" />
<suite-file path="./suite-parallel-2.xml" />
<suite-file path="simple-suite-parallel-1.xml" />
<suite-file path="simple-suite-parallel-2.xml" />
</suite-files>

<test name="Test0">
<classes>
<class name="test.thread.Sample2"/>
</classes>
</test>
</suite>
</suite>
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</test>

<suite-files>
<suite-file path="./suite-parallel-2-1.xml" />
<suite-file path="./suite-parallel-2-2.xml" />
<suite-file path="./suite-parallel-2-1.xml" />
</suite-files>
</suite>
2 changes: 0 additions & 2 deletions testng-core/src/test/resources/testng.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,7 @@
<class name="test.github765.ExcludeSyntheticMethodsFromTemplateCallsTest"/>
<class name="test.github1405.TestExclusionOfMainMethod"/>
<class name="test.cli.github1517.ExitCodeListenerBehaviorTest"/>
<!--
<class name="test.thread.ParallelSuiteTest"/>
-->
<class name="test.simple.IncludedExcludedTest" />
<class name="test.reports.ReportTest" />
<class name="test.reports.XmlReporterTest"/>
Expand Down
1 change: 1 addition & 0 deletions testng-core/src/test/resources/testng.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ tests:
- test.thread.ThreadPoolSizeTest
- test.thread.SequentialTest
- test.thread.ParallelTestTest
- test.thread.ParallelSuiteTest
- test.thread.FactoryTest
- test.thread.DataProviderThreadPoolSizeTest
- test.thread.MultiThreadedDependentTest
Expand Down

0 comments on commit d1b0f43

Please sign in to comment.