This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 013ea05  Integration smoke test for pulsar (#1399)
013ea05 is described below

commit 013ea058a74675764d477d4918bce5bd0a433fb9
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Fri Apr 6 16:21:02 2018 +0200

    Integration smoke test for pulsar (#1399)
    
    * Integration smoke test for pulsar
    
    Boots a cluster, sends and receives some messages, shuts down the
    cluster.
    
    If anything fails, then something is very broken.
    
    * license fix
    
    * Disable AnnotationListener for integration tests
    
    The annotation listener adds timeouts to all tests, which changes the
    threading model, which breaks arquillian.
    
    I've created an issue[1] on arquillian for this, but until that is fixed,
    timeouts cannot be used with arquillian.
    
    [1] https://github.com/arquillian/arquillian-core/issues/168
---
 tests/{ => integration}/pom.xml                    | 25 ++----
 tests/{ => integration/smoke}/pom.xml              | 46 +++++-----
 .../apache/pulsar/tests/integration/TestSmoke.java | 98 ++++++++++++++++++++++
 .../smoke/src/test/resources/arquillian.xml        | 32 +++++++
 tests/pom.xml                                      |  1 +
 5 files changed, 158 insertions(+), 44 deletions(-)

diff --git a/tests/pom.xml b/tests/integration/pom.xml
similarity index 68%
copy from tests/pom.xml
copy to tests/integration/pom.xml
index d4d3137..a2e36d4 100644
--- a/tests/pom.xml
+++ b/tests/integration/pom.xml
@@ -24,28 +24,15 @@
   <packaging>pom</packaging>
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache.pulsar</groupId>
-    <artifactId>pulsar</artifactId>
+    <groupId>org.apache.pulsar.tests</groupId>
+    <artifactId>tests-parent</artifactId>
     <version>2.0.0-incubating-SNAPSHOT</version>
   </parent>
+
   <groupId>org.apache.pulsar.tests</groupId>
-  <artifactId>tests-parent</artifactId>
-  <name>Apache Pulsar :: Tests</name>
+  <artifactId>integration</artifactId>
+  <name>Apache Pulsar :: Tests :: Integration</name>
   <modules>
-    <module>docker-images</module>
-    <module>integration-tests-utils</module>
-    <module>integration-tests-topologies</module>
-    <module>integration-tests-base</module>
+    <module>smoke</module>
   </modules>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
 </project>
diff --git a/tests/pom.xml b/tests/integration/smoke/pom.xml
similarity index 52%
copy from tests/pom.xml
copy to tests/integration/smoke/pom.xml
index d4d3137..eb3d499 100644
--- a/tests/pom.xml
+++ b/tests/integration/smoke/pom.xml
@@ -19,33 +19,29 @@
     under the License.
 
 -->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
-  <packaging>pom</packaging>
+<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.pulsar</groupId>
-    <artifactId>pulsar</artifactId>
+    <groupId>org.apache.pulsar.tests</groupId>
+    <artifactId>integration-tests-base</artifactId>
     <version>2.0.0-incubating-SNAPSHOT</version>
+    <relativePath>../../integration-tests-base</relativePath>
   </parent>
-  <groupId>org.apache.pulsar.tests</groupId>
-  <artifactId>tests-parent</artifactId>
-  <name>Apache Pulsar :: Tests</name>
-  <modules>
-    <module>docker-images</module>
-    <module>integration-tests-utils</module>
-    <module>integration-tests-topologies</module>
-    <module>integration-tests-base</module>
-  </modules>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
+
+  <groupId>org.apache.pulsar.tests.integration</groupId>
+  <artifactId>smoke</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Pulsar :: Tests :: Integration Tests :: Smoke test</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.pulsar</groupId>
+      <artifactId>pulsar-client</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
 </project>
diff --git 
a/tests/integration/smoke/src/test/java/org/apache/pulsar/tests/integration/TestSmoke.java
 
b/tests/integration/smoke/src/test/java/org/apache/pulsar/tests/integration/TestSmoke.java
new file mode 100644
index 0000000..6ecd053
--- /dev/null
+++ 
b/tests/integration/smoke/src/test/java/org/apache/pulsar/tests/integration/TestSmoke.java
@@ -0,0 +1,98 @@
+/**
+ * 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.
+ */
+/*
+* 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.
+*/
+package org.apache.pulsar.tests.integration;
+
+import com.github.dockerjava.api.DockerClient;
+
+import org.apache.pulsar.client.api.Consumer;
+import org.apache.pulsar.client.api.Message;
+import org.apache.pulsar.client.api.Producer;
+import org.apache.pulsar.client.api.PulsarClient;
+import org.apache.pulsar.tests.DockerUtils;
+import org.apache.pulsar.tests.PulsarClusterUtils;
+
+import org.jboss.arquillian.testng.Arquillian;
+import org.jboss.arquillian.test.api.ArquillianResource;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TestSmoke extends Arquillian {
+    private static final Logger LOG = LoggerFactory.getLogger(TestSmoke.class);
+    private static byte[] PASSWD = "foobar".getBytes();
+    private static String clusterName = "test";
+
+    @ArquillianResource
+    DockerClient docker;
+
+    @Test
+    public void testPublishAndConsume() throws Exception {
+        Assert.assertTrue(PulsarClusterUtils.startAllBrokers(docker, 
clusterName));
+        Assert.assertTrue(PulsarClusterUtils.startAllProxies(docker, 
clusterName));
+
+        // create property and namespace
+        PulsarClusterUtils.runOnAnyBroker(docker, clusterName,
+                "/pulsar/bin/pulsar-admin", "properties",
+                "create", "smoke-test", "--allowed-clusters", clusterName,
+                "--admin-roles", "smoke-admin");
+        PulsarClusterUtils.runOnAnyBroker(docker, clusterName,
+                "/pulsar/bin/pulsar-admin", "namespaces",
+                "create", "smoke-test/test/ns1");
+
+        String brokerIp = DockerUtils.getContainerIP(
+                docker, PulsarClusterUtils.proxySet(docker, 
clusterName).stream().findAny().get());
+        String serviceUrl = "pulsar://" + brokerIp + ":6650";
+        String topic = "persistent://smoke-test/test/ns1/topic1";
+
+        try(PulsarClient client = PulsarClient.create(serviceUrl);
+            Consumer consumer = client.subscribe(topic, "my-sub");
+            Producer producer = client.createProducer(topic)) {
+            for (int i = 0; i < 10; i++) {
+                producer.send(("smoke-message"+i).getBytes());
+            }
+            for (int i = 0; i < 10; i++) {
+                Message m = consumer.receive();
+                Assert.assertEquals("smoke-message"+i, new 
String(m.getData()));
+            }
+        }
+
+        PulsarClusterUtils.stopAllProxies(docker, clusterName);
+        Assert.assertTrue(PulsarClusterUtils.stopAllBrokers(docker, 
clusterName));
+    }
+}
diff --git a/tests/integration/smoke/src/test/resources/arquillian.xml 
b/tests/integration/smoke/src/test/resources/arquillian.xml
new file mode 100644
index 0000000..ced9de1
--- /dev/null
+++ b/tests/integration/smoke/src/test/resources/arquillian.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!--
+
+    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.
+
+-->
+<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+            xmlns="http://jboss.org/schema/arquillian";
+            xsi:schemaLocation="http://jboss.org/schema/arquillian
+                                
http://jboss.org/schema/arquillian/arquillian_1_0.xsd";>
+
+  <extension qualifier="docker">
+    <property name="definitionFormat">CUBE</property>
+    <property 
name="dockerContainersResource">cube-definitions/single-cluster-3-bookie-2-broker-unstarted.yaml</property>
+  </extension>
+
+</arquillian>
diff --git a/tests/pom.xml b/tests/pom.xml
index d4d3137..a35a0f0 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -36,6 +36,7 @@
     <module>integration-tests-utils</module>
     <module>integration-tests-topologies</module>
     <module>integration-tests-base</module>
+    <module>integration</module>
   </modules>
   <build>
     <plugins>

-- 
To stop receiving notification emails like this one, please contact
mme...@apache.org.

Reply via email to