You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2015/09/30 00:55:40 UTC

[2/7] maven-surefire git commit: [SUREFIRE-1179] integration test

[SUREFIRE-1179] integration test


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/65b26d12
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/65b26d12
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/65b26d12

Branch: refs/heads/master
Commit: 65b26d12051c5ddb973238ed10b3ae5d334159c9
Parents: f3bbccb
Author: Tibor17 <ti...@lycos.com>
Authored: Sun Sep 27 01:18:12 2015 +0200
Committer: Tibor17 <ti...@lycos.com>
Committed: Wed Sep 30 00:53:53 2015 +0200

----------------------------------------------------------------------
 .../maven/surefire/its/Surefire1179IT.java      | 43 ++++++++++++++
 .../pom.xml                                     | 60 ++++++++++++++++++++
 .../src/test/java/debug/ParallelTest.java       | 45 +++++++++++++++
 3 files changed, 148 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/65b26d12/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire1179IT.java
----------------------------------------------------------------------
diff --git a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire1179IT.java b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire1179IT.java
new file mode 100644
index 0000000..6acb97b
--- /dev/null
+++ b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire1179IT.java
@@ -0,0 +1,43 @@
+package org.apache.maven.surefire.its;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase;
+import org.apache.maven.surefire.its.fixture.SurefireLauncher;
+import org.junit.Test;
+
+/**
+ * Fix for TestNG parameter -dataproviderthreadcount.
+ */
+public class Surefire1179IT
+    extends SurefireJUnit4IntegrationTestCase
+{
+
+    @Test
+    public void suiteXmlForkCountTwoReuse()
+    {
+        unpack().executeTest().verifyErrorFreeLog().verifyTextInLog( " CONCURRENCY=10." );
+    }
+
+    private SurefireLauncher unpack()
+    {
+        return unpack( "surefire-1179-testng-parallel-dataprovider" );
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/65b26d12/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/pom.xml b/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/pom.xml
new file mode 100644
index 0000000..90d2238
--- /dev/null
+++ b/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/pom.xml
@@ -0,0 +1,60 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.maven.surefire</groupId>
+        <artifactId>it-parent</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <groupId>org.apache.maven.plugins.surefire</groupId>
+    <artifactId>surefire-1179-testng-parallel-dataprovider</artifactId>
+    <version>1.0</version>
+    <url>http://maven.apache.org</url>
+    <developers>
+        <developer>
+            <id>tibordigana</id>
+            <name>Tibor Digaňa (tibor17)</name>
+            <email>tibordigana@apache.org</email>
+            <roles>
+                <role>Committer</role>
+            </roles>
+            <timezone>Europe/Bratislava</timezone>
+        </developer>
+    </developers>
+    <dependencies>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>6.9.6</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <properties>
+                        <property>
+                            <name>parallel</name>
+                            <value>methods</value>
+                        </property>
+                        <property>
+                            <name>dataproviderthreadcount</name>
+                            <value>10</value>
+                        </property>
+                    </properties>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/65b26d12/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/src/test/java/debug/ParallelTest.java
----------------------------------------------------------------------
diff --git a/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/src/test/java/debug/ParallelTest.java b/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/src/test/java/debug/ParallelTest.java
new file mode 100644
index 0000000..6863f62
--- /dev/null
+++ b/surefire-integration-tests/src/test/resources/surefire-1179-testng-parallel-dataprovider/src/test/java/debug/ParallelTest.java
@@ -0,0 +1,45 @@
+package debug;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class ParallelTest
+{
+    private static final AtomicInteger concurrency = new AtomicInteger();
+
+    private static final AtomicInteger counter = new AtomicInteger();
+
+    @DataProvider( parallel = true, name = "dataProvider" )
+    public Iterator<Object[]> dataProvider()
+    {
+        List<Object[]> data = new ArrayList<Object[]>();
+        for ( int i = 0; i < 5000; i++ )
+        {
+            data.add( new Object[]{ "ID_" + i } );
+        }
+        return data.iterator();
+    }
+
+    @Test( dataProvider = "dataProvider" )
+    public void testParallelDataProvider( String iterId )
+        throws Exception
+    {
+        int methodCount = counter.incrementAndGet();
+        int currentlyParallelCalls = concurrency.incrementAndGet();
+        if ( methodCount % 100 == 0 )
+        {
+            System.out.println( iterId + ": CONCURRENCY=" + currentlyParallelCalls + "." );
+        }
+        TimeUnit.MILLISECONDS.sleep( 20 );
+        concurrency.decrementAndGet();
+    }
+}
\ No newline at end of file