You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2013/06/18 23:09:20 UTC

svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Author: aconway
Date: Tue Jun 18 21:09:19 2013
New Revision: 1494306

URL: http://svn.apache.org/r1494306
Log:
QPID-4745: Alternative port allocation for tests, instead of 'qpidd --port=0'

qpidd-p0 script binds a new port to a socket using bind(0), and then
execs qpidd using the --socket-fd option to pass the socket to qpidd.

It is intended to replace
  /path/to/qpidd --port 0 <args...>
with
  qpidd-p0 /path/to/qpidd <args...>

Most tests do not yet use qpidd-p0, they will be updated in a future commit.

Changes:
- Added qpidd-p0
- Fixed qpidd port printing logic: print port only if --port=0, regardless of --transport.

Added:
    qpid/trunk/qpid/cpp/src/tests/qpidd-p0   (with props)
Modified:
    qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp
    qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/Makefile.am

Modified: qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp?rev=1494306&r1=1494305&r2=1494306&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp Tue Jun 18 21:09:19 2013
@@ -132,8 +132,8 @@ struct QpiddDaemon : public Daemon {
     /** Code for parent process */
     void parent() {
         uint16_t port = wait(options->daemon.wait);
-        if (options->parent->broker.port == 0 || options->daemon.transport != TCP)
-            cout << port << endl;
+        if (options->parent->broker.port == 0
+        ) cout << port << endl;
     }
 
     /** Code for forked child process */
@@ -196,7 +196,7 @@ int QpiddBroker::execute (QpiddOptions *
         boost::intrusive_ptr<Broker> brokerPtr(new Broker(options->broker));
         ScopedSetBroker ssb(brokerPtr);
         brokerPtr->accept();
-        if (options->broker.port == 0 || myOptions->daemon.transport != TCP) {
+        if (options->broker.port == 0) {
             uint16_t port = brokerPtr->getPort(myOptions->daemon.transport);
             cout << port << endl;
             if (options->broker.enableMgmt) {

Modified: qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt?rev=1494306&r1=1494305&r2=1494306&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt Tue Jun 18 21:09:19 2013
@@ -47,6 +47,8 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows
     ${CMAKE_CURRENT_BINARY_DIR}/test_env.sh)
 endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
 
+# Copy qpidd-p0 script to build directory so tests can find it.
+configure_file (${CMAKE_CURRENT_SOURCE_DIR}/qpidd-p0 ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
 
 # If valgrind is selected in the configuration step, set up the path to it
 # for CTest.

Modified: qpid/trunk/qpid/cpp/src/tests/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Makefile.am?rev=1494306&r1=1494305&r2=1494306&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/src/tests/Makefile.am Tue Jun 18 21:09:19 2013
@@ -380,13 +380,19 @@ check-long:
 	$(MAKE) check TESTS="$(LONG_TESTS)" VALGRIND=
 
 # Things that should be built before the check target runs.
-check-am: python_prep test_env.sh install_env.sh sasl_config
+check-am: python_prep test_env.sh install_env.sh sasl_config qpidd-p0
 
 PYTHON_SRC_DIR=$(abs_srcdir)/../../../python
 PYTHON_BLD_DIR=$(abs_builddir)/python
 
+# Copy qpidd-p0 to build directory so tests can find it easily.
+qpidd-p0: force
+	cp $(abs_srcdir)/qpidd-p0 .
+
+force:
+
 # Generate python client as part of the all-am target so it gets built before tests.
-all-am: python_prep
+all-am: python_prep qpidd-p0
 
 python_prep:
 	if test -d $(PYTHON_SRC_DIR); \

Added: qpid/trunk/qpid/cpp/src/tests/qpidd-p0
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/qpidd-p0?rev=1494306&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/qpidd-p0 (added)
+++ qpid/trunk/qpid/cpp/src/tests/qpidd-p0 Tue Jun 18 21:09:19 2013
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+
+#
+# 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.
+#
+
+# Wrapper script to allocate a port and fork a broker to listen on it.
+#
+# Instead of this:
+#  qpidd --port 0 <qpidd-args...>
+# do this:
+#  qpidd-p0 <qpidd-args...>
+#
+# The port is bound by python code, and then handed over to the broker via the
+# --socket-fd option.  This avoids problems with the qpidd --port 0 option which
+# ocassional fails with an "address in use" error. It's not clear why --port 0
+# doesn't work, it may be to do with the way qpidd binds a port to multiple
+# addresses on a multi-homed host.
+#
+
+import subprocess, socket, time, os, sys
+
+s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.bind(("", 0))
+s.listen(5)
+port = s.getsockname()[1]
+print port
+sys.stdout.flush()
+if len(sys.argv) > 1:
+    cmd = sys.argv[1:] + ["--socket-fd", str(s.fileno()), "--listen-disable=tcp", "--port", str(port)]
+    os.execvp(sys.argv[1], cmd)

Propchange: qpid/trunk/qpid/cpp/src/tests/qpidd-p0
------------------------------------------------------------------------------
    svn:executable = *



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


Re: svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Posted by Robbie Gemmell <ro...@gmail.com>.
On 26 June 2013 10:57, Robbie Gemmell <ro...@gmail.com> wrote:

>
>
>
> On 25 June 2013 18:07, Andrew Stitcher <as...@redhat.com> wrote:
>
>> On Tue, 2013-06-25 at 15:41 +0100, Robbie Gemmell wrote:
>> > The Jenkins job to run the Java client tests against the C++ broker has
>> > been failing since this commit last week. It seems to be having trouble
>> > trying to copy a file to its own location.
>> >
>> >
>> https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Java-Cpp-Test/1431/
>> >
>> > Is this an issue with the Jenkins job, or the build process?
>>
>> Hmm, the jenkins job appears to be building in place, which is not what
>> we recommend for the C++ build. Having said that it is supposed to work.
>>
>> The easiest fix (given that we are removing the autotools build soon and
>> so don't want to spend lots of time on it) would be to move to a build
>> with a separate build directory.
>>
>> Something like instead of:
>>
>> cd qpid/cpp
>> ./bootstrap
>> ./configure
>> make
>>
>> Do
>>
>> cd qpid/cpp
>> ./bootstrap
>> cd ..
>> mkdir BLD
>> cd BLD
>> ../cpp/configure
>> make
>>
>>
> I think the 'cpp[-*]' Java test profiles actually depend on the in-tree
> build in order to know where to find the broker. I'll try to take a look at
> them later and see about updating them.
>
>
Alex pointed out there is already a property defined to let you override
the directory the broker executable is located, so we should be able to use
that to work around the issue by building out out of the tree.


>  >
>> > (The job is still using the Autotools build, as we have yet to try
>> swapping
>> > it to CMake and requesting installation of any necessary packages on the
>> > Jenkins nodes...anyone actually working on C++ bits is of course also
>> > welcome to volunteer :P)
>>
>> We will need to shift to cmake soon, what is involved in doing this? I'm
>> happy to help here.
>>
>
> That would be great. You would need access to the Jenkins nodes, which
> Carl can grant you on request. After that it would just be a case of
> changing the script the job executes, trying it, and emailing
> builds@apache.org if necessary to request additional packages on the
> nodes to get it working. Since Proton is already being built on them it may
> be the case that the necessary packages are already installed.
>
> Robbie
>

Re: svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Posted by Robbie Gemmell <ro...@gmail.com>.
On 26 June 2013 16:16, Andrew Stitcher <as...@redhat.com> wrote:

> On Wed, 2013-06-26 at 10:57 +0100, Robbie Gemmell wrote:
> > On 25 June 2013 18:07, Andrew Stitcher <as...@redhat.com> wrote:
> > ...
> > > We will need to shift to cmake soon, what is involved in doing this?
> I'm
> > > happy to help here.
> > >
> >
> > That would be great. You would need access to the Jenkins nodes, which
> Carl
> > can grant you on request. After that it would just be a case of changing
> > the script the job executes, trying it, and emailing builds@apache.orgif
> > necessary to request additional packages on the nodes to get it working.
> > Since Proton is already being built on them it may be the case that the
> > necessary packages are already installed.
>
> I can already login to jenkins as it uses the regular Apache LDAP
> authentication - I assume you are saying that there are some extra
> permissions I need to create/change jobs etc. and further I'm guessing
> that Carl is the one with the power to change my access rights there?
>

Thats correct, I dont think you can configure the jobs or force builds etc
without having permissions granted, which is indeed something Carl has to
do.


> >
> > Robbie
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
> For additional commands, e-mail: dev-help@qpid.apache.org
>
>

Re: svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Posted by Andrew Stitcher <as...@redhat.com>.
On Wed, 2013-06-26 at 10:57 +0100, Robbie Gemmell wrote:
> On 25 June 2013 18:07, Andrew Stitcher <as...@redhat.com> wrote:
> ...
> > We will need to shift to cmake soon, what is involved in doing this? I'm
> > happy to help here.
> >
> 
> That would be great. You would need access to the Jenkins nodes, which Carl
> can grant you on request. After that it would just be a case of changing
> the script the job executes, trying it, and emailing builds@apache.org if
> necessary to request additional packages on the nodes to get it working.
> Since Proton is already being built on them it may be the case that the
> necessary packages are already installed.

I can already login to jenkins as it uses the regular Apache LDAP
authentication - I assume you are saying that there are some extra
permissions I need to create/change jobs etc. and further I'm guessing
that Carl is the one with the power to change my access rights there?

> 
> Robbie



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Re: svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Posted by Robbie Gemmell <ro...@gmail.com>.
On 25 June 2013 18:07, Andrew Stitcher <as...@redhat.com> wrote:

> On Tue, 2013-06-25 at 15:41 +0100, Robbie Gemmell wrote:
> > The Jenkins job to run the Java client tests against the C++ broker has
> > been failing since this commit last week. It seems to be having trouble
> > trying to copy a file to its own location.
> >
> >
> https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Java-Cpp-Test/1431/
> >
> > Is this an issue with the Jenkins job, or the build process?
>
> Hmm, the jenkins job appears to be building in place, which is not what
> we recommend for the C++ build. Having said that it is supposed to work.
>
> The easiest fix (given that we are removing the autotools build soon and
> so don't want to spend lots of time on it) would be to move to a build
> with a separate build directory.
>
> Something like instead of:
>
> cd qpid/cpp
> ./bootstrap
> ./configure
> make
>
> Do
>
> cd qpid/cpp
> ./bootstrap
> cd ..
> mkdir BLD
> cd BLD
> ../cpp/configure
> make
>
>
I think the 'cpp[-*]' Java test profiles actually depend on the in-tree
build in order to know where to find the broker. I'll try to take a look at
them later and see about updating them.

>
> > (The job is still using the Autotools build, as we have yet to try
> swapping
> > it to CMake and requesting installation of any necessary packages on the
> > Jenkins nodes...anyone actually working on C++ bits is of course also
> > welcome to volunteer :P)
>
> We will need to shift to cmake soon, what is involved in doing this? I'm
> happy to help here.
>

That would be great. You would need access to the Jenkins nodes, which Carl
can grant you on request. After that it would just be a case of changing
the script the job executes, trying it, and emailing builds@apache.org if
necessary to request additional packages on the nodes to get it working.
Since Proton is already being built on them it may be the case that the
necessary packages are already installed.

Robbie

Re: svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Posted by Andrew Stitcher <as...@redhat.com>.
On Tue, 2013-06-25 at 15:41 +0100, Robbie Gemmell wrote:
> The Jenkins job to run the Java client tests against the C++ broker has
> been failing since this commit last week. It seems to be having trouble
> trying to copy a file to its own location.
> 
> https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Java-Cpp-Test/1431/
> 
> Is this an issue with the Jenkins job, or the build process?

Hmm, the jenkins job appears to be building in place, which is not what
we recommend for the C++ build. Having said that it is supposed to work.

The easiest fix (given that we are removing the autotools build soon and
so don't want to spend lots of time on it) would be to move to a build
with a separate build directory.

Something like instead of:

cd qpid/cpp
./bootstrap
./configure
make

Do

cd qpid/cpp
./bootstrap
cd ..
mkdir BLD
cd BLD
../cpp/configure
make

> 
> (The job is still using the Autotools build, as we have yet to try swapping
> it to CMake and requesting installation of any necessary packages on the
> Jenkins nodes...anyone actually working on C++ bits is of course also
> welcome to volunteer :P)

We will need to shift to cmake soon, what is involved in doing this? I'm
happy to help here.

Andrew



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Re: svn commit: r1494306 - in /qpid/trunk/qpid/cpp/src: posix/QpiddBroker.cpp tests/CMakeLists.txt tests/Makefile.am tests/qpidd-p0

Posted by Robbie Gemmell <ro...@gmail.com>.
The Jenkins job to run the Java client tests against the C++ broker has
been failing since this commit last week. It seems to be having trouble
trying to copy a file to its own location.

https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Java-Cpp-Test/1431/

Is this an issue with the Jenkins job, or the build process?

(The job is still using the Autotools build, as we have yet to try swapping
it to CMake and requesting installation of any necessary packages on the
Jenkins nodes...anyone actually working on C++ bits is of course also
welcome to volunteer :P)

Robbie

On 18 June 2013 22:09, <ac...@apache.org> wrote:

> Author: aconway
> Date: Tue Jun 18 21:09:19 2013
> New Revision: 1494306
>
> URL: http://svn.apache.org/r1494306
> Log:
> QPID-4745: Alternative port allocation for tests, instead of 'qpidd
> --port=0'
>
> qpidd-p0 script binds a new port to a socket using bind(0), and then
> execs qpidd using the --socket-fd option to pass the socket to qpidd.
>
> It is intended to replace
>   /path/to/qpidd --port 0 <args...>
> with
>   qpidd-p0 /path/to/qpidd <args...>
>
> Most tests do not yet use qpidd-p0, they will be updated in a future
> commit.
>
> Changes:
> - Added qpidd-p0
> - Fixed qpidd port printing logic: print port only if --port=0, regardless
> of --transport.
>
> Added:
>     qpid/trunk/qpid/cpp/src/tests/qpidd-p0   (with props)
> Modified:
>     qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp
>     qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
>     qpid/trunk/qpid/cpp/src/tests/Makefile.am
>
> Modified: qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp
> URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp?rev=1494306&r1=1494305&r2=1494306&view=diff
>
> ==============================================================================
> --- qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp (original)
> +++ qpid/trunk/qpid/cpp/src/posix/QpiddBroker.cpp Tue Jun 18 21:09:19 2013
> @@ -132,8 +132,8 @@ struct QpiddDaemon : public Daemon {
>      /** Code for parent process */
>      void parent() {
>          uint16_t port = wait(options->daemon.wait);
> -        if (options->parent->broker.port == 0 ||
> options->daemon.transport != TCP)
> -            cout << port << endl;
> +        if (options->parent->broker.port == 0
> +        ) cout << port << endl;
>      }
>
>      /** Code for forked child process */
> @@ -196,7 +196,7 @@ int QpiddBroker::execute (QpiddOptions *
>          boost::intrusive_ptr<Broker> brokerPtr(new
> Broker(options->broker));
>          ScopedSetBroker ssb(brokerPtr);
>          brokerPtr->accept();
> -        if (options->broker.port == 0 || myOptions->daemon.transport !=
> TCP) {
> +        if (options->broker.port == 0) {
>              uint16_t port =
> brokerPtr->getPort(myOptions->daemon.transport);
>              cout << port << endl;
>              if (options->broker.enableMgmt) {
>
> Modified: qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
> URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt?rev=1494306&r1=1494305&r2=1494306&view=diff
>
> ==============================================================================
> --- qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt (original)
> +++ qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt Tue Jun 18 21:09:19 2013
> @@ -47,6 +47,8 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows
>      ${CMAKE_CURRENT_BINARY_DIR}/test_env.sh)
>  endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
>
> +# Copy qpidd-p0 script to build directory so tests can find it.
> +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/qpidd-p0
> ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
>
>  # If valgrind is selected in the configuration step, set up the path to it
>  # for CTest.
>
> Modified: qpid/trunk/qpid/cpp/src/tests/Makefile.am
> URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Makefile.am?rev=1494306&r1=1494305&r2=1494306&view=diff
>
> ==============================================================================
> --- qpid/trunk/qpid/cpp/src/tests/Makefile.am (original)
> +++ qpid/trunk/qpid/cpp/src/tests/Makefile.am Tue Jun 18 21:09:19 2013
> @@ -380,13 +380,19 @@ check-long:
>         $(MAKE) check TESTS="$(LONG_TESTS)" VALGRIND=
>
>  # Things that should be built before the check target runs.
> -check-am: python_prep test_env.sh install_env.sh sasl_config
> +check-am: python_prep test_env.sh install_env.sh sasl_config qpidd-p0
>
>  PYTHON_SRC_DIR=$(abs_srcdir)/../../../python
>  PYTHON_BLD_DIR=$(abs_builddir)/python
>
> +# Copy qpidd-p0 to build directory so tests can find it easily.
> +qpidd-p0: force
> +       cp $(abs_srcdir)/qpidd-p0 .
> +
> +force:
> +
>  # Generate python client as part of the all-am target so it gets built
> before tests.
> -all-am: python_prep
> +all-am: python_prep qpidd-p0
>
>  python_prep:
>         if test -d $(PYTHON_SRC_DIR); \
>
> Added: qpid/trunk/qpid/cpp/src/tests/qpidd-p0
> URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/qpidd-p0?rev=1494306&view=auto
>
> ==============================================================================
> --- qpid/trunk/qpid/cpp/src/tests/qpidd-p0 (added)
> +++ qpid/trunk/qpid/cpp/src/tests/qpidd-p0 Tue Jun 18 21:09:19 2013
> @@ -0,0 +1,46 @@
> +#!/usr/bin/env python
> +
> +#
> +# 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.
> +#
> +
> +# Wrapper script to allocate a port and fork a broker to listen on it.
> +#
> +# Instead of this:
> +#  qpidd --port 0 <qpidd-args...>
> +# do this:
> +#  qpidd-p0 <qpidd-args...>
> +#
> +# The port is bound by python code, and then handed over to the broker
> via the
> +# --socket-fd option.  This avoids problems with the qpidd --port 0
> option which
> +# ocassional fails with an "address in use" error. It's not clear why
> --port 0
> +# doesn't work, it may be to do with the way qpidd binds a port to
> multiple
> +# addresses on a multi-homed host.
> +#
> +
> +import subprocess, socket, time, os, sys
> +
> +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> +s.bind(("", 0))
> +s.listen(5)
> +port = s.getsockname()[1]
> +print port
> +sys.stdout.flush()
> +if len(sys.argv) > 1:
> +    cmd = sys.argv[1:] + ["--socket-fd", str(s.fileno()),
> "--listen-disable=tcp", "--port", str(port)]
> +    os.execvp(sys.argv[1], cmd)
>
> Propchange: qpid/trunk/qpid/cpp/src/tests/qpidd-p0
>
> ------------------------------------------------------------------------------
>     svn:executable = *
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
> For additional commands, e-mail: commits-help@qpid.apache.org
>
>