diff options
author | Martin Ritchie <ritchiem@apache.org> | 2007-05-18 13:50:59 +0000 |
---|---|---|
committer | Martin Ritchie <ritchiem@apache.org> | 2007-05-18 13:50:59 +0000 |
commit | a980d618a85e3cd6931c2c0cd09946f542e342e0 (patch) | |
tree | 4a9a4925ff0cc12f3797f9dbb95d9839b30b4f98 | |
parent | 5b52a27ad60df55e794a17935bdea5852b426c34 (diff) | |
download | qpid-python-a980d618a85e3cd6931c2c0cd09946f542e342e0.tar.gz |
QPID-401 Integrated python tests with maven tested on windows CMD.exe and linux FC5
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2@539470 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/broker/pom.xml | 47 | ||||
-rwxr-xr-x | java/broker/python-test.xml | 32 | ||||
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/Main.java | 8 | ||||
-rw-r--r-- | java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java | 130 |
4 files changed, 215 insertions, 2 deletions
diff --git a/java/broker/pom.xml b/java/broker/pom.xml index 2cf8a563f0..dbdb9daba6 100644 --- a/java/broker/pom.xml +++ b/java/broker/pom.xml @@ -120,6 +120,7 @@ </configuration> </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> @@ -145,6 +146,52 @@ </testResource> </testResources> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>${antrun.version}</version> + <dependencies> + <dependency> + <groupId>ant</groupId> + <artifactId>ant-nodeps</artifactId> + <version>1.6.5</version> + </dependency> + </dependencies> + + <executions> + <execution> + <id>python_test</id> + <phase>test</phase> + <configuration> + <tasks> + + <condition property="broker.dir" + value="${user.dir}${file.separator}..${file.separator}broker" + else="${user.dir}"> + <equals arg1="${topDirectoryLocation}" arg2="." /> + </condition> + + <property name="command" + value="bash -c 'python run-tests -v -I java_failing.txt'"/> + + <ant antfile="python-test.xml" inheritRefs="true"> + <target name="run-tests" /> + </ant> + + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + + </build> </project> diff --git a/java/broker/python-test.xml b/java/broker/python-test.xml new file mode 100755 index 0000000000..c539013061 --- /dev/null +++ b/java/broker/python-test.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- ====================================================================== --> +<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. --> +<!-- ====================================================================== --> + +<project basedir="." default="default"> + + <target name="default" > + <echo message="Used via maven to run python tests."/> + </target> + + <property name="pythondir" value="../../python"/> + + <target name="run-tests" > + + <echo message="Starting Broker with command"/> + + <java classname="org.apache.qpid.server.RunBrokerWithCommand" + fork="true" + dir="${pythondir}" + failonerror="true" + > + <arg value="${command}"/> + + <classpath refid="maven.test.classpath"/> + <sysproperty key="QPID_HOME" value="${broker.dir}"/> + <sysproperty key="QPID_WORK" value="${broker.dir}${file.separator}target"/> + </java> + + </target> +</project> diff --git a/java/broker/src/main/java/org/apache/qpid/server/Main.java b/java/broker/src/main/java/org/apache/qpid/server/Main.java index c345b43aeb..5b0645ff3d 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/Main.java +++ b/java/broker/src/main/java/org/apache/qpid/server/Main.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.BindException; import java.util.Collection; import java.util.List; import java.util.StringTokenizer; @@ -160,7 +161,8 @@ public class Main } else if (commandLine.hasOption("v")) { - String ver = "Qpid 0.9.0.0"; + String ver = QpidProperties.getVersionString(); + StringBuilder protocol = new StringBuilder("AMQP version(s) [major.minor]: "); boolean first = true; @@ -333,7 +335,7 @@ public class Main } } - protected void bind(int port, ConnectorConfiguration connectorConfig) + protected void bind(int port, ConnectorConfiguration connectorConfig) throws BindException { String bindAddr = commandLine.getOptionValue("b"); if (bindAddr == null) @@ -401,6 +403,8 @@ public class Main catch (Exception e) { _logger.error("Unable to bind service to registry: " + e, e); + //fixme this need tidying up + throw new BindException(e.getMessage()); } } diff --git a/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java b/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java new file mode 100644 index 0000000000..1ebecbacb6 --- /dev/null +++ b/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java @@ -0,0 +1,130 @@ +/* + * 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.qpid.server; + +import org.apache.log4j.Logger; +import org.apache.log4j.Level; + +import java.io.InputStream; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; + +public class RunBrokerWithCommand +{ + public static void main(String[] args) + { + //Start broker + + try + { + + String[] fudge = new String[1]; + fudge[0] = "-v"; + new Main(fudge).startup(); + } + catch (Exception e) + { + System.out.println("Unable to start broker due to: " + e.getMessage()); + + e.printStackTrace(); + exit(1); + } + + Logger.getRootLogger().setLevel(Level.ERROR); + + //run command + try + { + Process task = Runtime.getRuntime().exec(args[0]); + System.out.println("Started Proccess: " + args[0]); + + InputStream inputStream = task.getInputStream(); + + InputStream errorStream = task.getErrorStream(); + + Thread out = new Thread(new Outputter("[OUT]", new BufferedReader(new InputStreamReader(inputStream)))); + Thread err = new Thread(new Outputter("[ERR]", new BufferedReader(new InputStreamReader(errorStream)))); + + out.start(); + err.start(); + + out.join(); + err.join(); + + System.out.println("Waiting for process to exit: " + args[0]); + task.waitFor(); + System.out.println("Done Proccess: " + args[0]); + + } + catch (IOException e) + { + System.out.println("Proccess had problems: " + e.getMessage()); + exit(1); + } + catch (InterruptedException e) + { + System.out.println("Proccess had problems: " + e.getMessage()); + + exit(1); + } + + + exit(0); + } + + private static void exit(int i) + { + Logger.getRootLogger().setLevel(Level.INFO); + System.exit(i); + } + + static class Outputter implements Runnable + { + + BufferedReader reader; + String prefix; + + Outputter(String s, BufferedReader r) + { + prefix = s; + reader = r; + } + + public void run() + { + String line; + try + { + while ((line = reader.readLine()) != null) + { + System.out.println(prefix + line); + } + } + catch (IOException e) + { + System.out.println("Error occured reading; " + e.getMessage()); + } + } + + } + +} |