You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Will Pierce (JIRA)" <ji...@apache.org> on 2011/03/16 13:03:29 UTC

[jira] Created: (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

bug in TCompactProto python readMessageEnd method and updated test cases
------------------------------------------------------------------------

                 Key: THRIFT-1094
                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
             Project: Thrift
          Issue Type: Bug
          Components: Python - Library
    Affects Versions: 0.6
            Reporter: Will Pierce
            Assignee: Will Pierce


The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.

Changes in this patch:
* fixed the readMessageEnd bug (2 lines)
* added TCompactProto to the list of target protocols for the test suite
* added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
* changed RunTests.py so it has a nested loop, trying each protocol with each server type
* added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
* fixed a bug in testOneWay() that was being passed a float instead of an int
* added new TProcessPool class to list of servers and imports
** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
* added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
* added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
* RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
* RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code


It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Will Pierce (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13008759#comment-13008759 ] 

Will Pierce commented on THRIFT-1094:
-------------------------------------

I think I know what the problem is.   I only tested using python2.7... My bad.  I'll have to be more thorough in future patches.

Using python2.4 for testing, and running just the TSimpleServer test, the import for the TProcessPool line chokes, since the multiprocessing module isn't available in python2.4.

I get this output (the top of the output is more helpful, as the server process's error gets buried with a lot of junk from the client and test runner):
{noformat}
% python2.4 ./RunClientServer.py 2>&1 | head -20
Traceback (most recent call last):
  File "./TestServer.py", line 33, in ?
    from thrift.server import TServer, TNonblockingServer, THttpServer, TProcessPoolServer
  File "../../lib/py/build/lib.linux-x86_64-2.7/thrift/server/TProcessPoolServer.py", line 22, in ?
    from multiprocessing import  Process, Value, Condition, reduction
ImportError: No module named multiprocessing
testByte (__main__.AcceleratedBinaryTest) ... ERROR
testDouble (__main__.AcceleratedBinaryTest) ... ERROR
testEnum (__main__.AcceleratedBinaryTest) ... ERROR
testException (__main__.AcceleratedBinaryTest) ... ERROR
testI32 (__main__.AcceleratedBinaryTest) ... ERROR
testI64 (__main__.AcceleratedBinaryTest) ... ERROR
testList (__main__.AcceleratedBinaryTest) ... ERROR
testMap (__main__.AcceleratedBinaryTest) ... ERROR
testMapMap (__main__.AcceleratedBinaryTest) ... ERROR
testMulti (__main__.AcceleratedBinaryTest) ... ERROR
testNest (__main__.AcceleratedBinaryTest) ... ERROR
testOneway (__main__.AcceleratedBinaryTest) ... ERROR
testOnewayThenNormal (__main__.AcceleratedBinaryTest) ... ERROR
testSet (__main__.AcceleratedBinaryTest) ... ERROR
{noformat}

The root problem is that the TProcessPool server uses a module unavailable in python2.4.  But there's no reason that should break the tests.  It should generate a warning maybe, in the 'except' clause, and skip testing that type of server.

I'll update the patch so that the RunClientServer doesn't do the TProcessPoolServer testing if the multiprocessing module is unavailable, and update the {{import TProcessPoolServer}} line in TestServer.py so it is done dynamically, not unconditionally.

I'll upload a corrected patch shortly.

> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Will Pierce (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13009271#comment-13009271 ] 

Will Pierce commented on THRIFT-1094:
-------------------------------------

Teerific! Thanks!

> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>             Fix For: 0.7
>
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch, THRIFT-1094.python_compactproto_fix_and_tests_v2.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Closed] (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Bryan Duxbury (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bryan Duxbury closed THRIFT-1094.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 0.7

The latest patch's tests all pass. I just committed this. Thanks for the patch, Will!

> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>             Fix For: 0.7
>
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch, THRIFT-1094.python_compactproto_fix_and_tests_v2.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Updated: (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Will Pierce (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Will Pierce updated THRIFT-1094:
--------------------------------

    Attachment: THRIFT-1094.python_compactproto_fix_and_tests.patch

patch attached. touches 2 lines in the actual library code, and adds a lot to the test/py/ test suite to expand coverage

> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Bryan Duxbury (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13008675#comment-13008675 ] 

Bryan Duxbury commented on THRIFT-1094:
---------------------------------------

I applied this patch and tried to run the tests and got:

{code}
FAILED (errors=18)
Traceback (most recent call last):
  File "./RunClientServer.py", line 97, in <module>
    runTest(try_server, try_proto, options.port)
  File "./RunClientServer.py", line 79, in runTest
    raise Exception("subprocess %s failed, args: %s" % (server_class, ' '.join(argv)))
Exception: subprocess TSimpleServer failed, args: /usr/bin/python ./TestClient.py --proto=accel --port=9090
FAIL: RunClientServer.py
===================
1 of 4 tests failed
===================
make[1]: *** [check-TESTS] Error 1
make: *** [check-am] Error 2
{code}

> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Will Pierce (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13007443#comment-13007443 ] 

Will Pierce commented on THRIFT-1094:
-------------------------------------

looks like this readMessageEnd bug has been spotted before: http://mail-archives.apache.org/mod_mbox/thrift-user/201010.mbox/%3C1286890923.5086.2.camel@ubuntu.localdomain%3E


> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Updated: (THRIFT-1094) bug in TCompactProto python readMessageEnd method and updated test cases

Posted by "Will Pierce (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Will Pierce updated THRIFT-1094:
--------------------------------

    Attachment: THRIFT-1094.python_compactproto_fix_and_tests_v2.patch

v2 of the patch attached.

This version of the patch skips testing of the TProcessPoolServer when the RunClientServer.py is run and the multiprocessing module fails to import.  So the rest of the tests will be done under python2.4, but the TProcessPoolServer tests will be skipped on python2.4.

A warning message is printed to stdout if the user manually specifies the TProcessPoolServer type on the RunClientServer.py command line:

{noformat}
% switchpython 2.4 # switches hardlink in /usr/bin for me
% ./RunClientServer.py TProcessPoolServer
Warning: the multiprocessing module is unavailable. Skipping tests for TProcessPoolServer
Unavailable server type "TProcessPoolServer", please choose one of: ['TSimpleServer', 'TThreadedServer', 'TThreadPoolServer', 'TForkingServer', 'TNonblockingServer', 'THttpServer']
{noformat}



> bug in TCompactProto python readMessageEnd method and updated test cases
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-1094
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1094
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.6
>            Reporter: Will Pierce
>            Assignee: Will Pierce
>         Attachments: THRIFT-1094.python_compactproto_fix_and_tests.patch, THRIFT-1094.python_compactproto_fix_and_tests_v2.patch
>
>
> The python implementation of TCompactProtocol has a bug in readMessageEnd, an assert on its internal state being READ_VALUE when it's actually CLEAR.  I am including a patch that is 2 lines of library code change to TCompactProtocol.py, and a few dozen lines of ./test/py/ code changes.
> Changes in this patch:
> * fixed the readMessageEnd bug (2 lines)
> * added TCompactProto to the list of target protocols for the test suite
> * added a new --proto cmdline option to TestServer.py/TestClient.py to permit one of [accel, binary, compact]
> * changed RunTests.py so it has a nested loop, trying each protocol with each server type
> * added more client/server test methods for the ThriftTest service's: testNest(), testMap(), testSet(), testList(), testEnum(), testTypedef(), testMapMap(), testMulti()
> * fixed a bug in testOneWay() that was being passed a float instead of an int
> * added new TProcessPool class to list of servers and imports
> ** added extra code to shut down the individual process pool workers, to avoid leaving the server listen socket bound
> * added optional --port option to RunTests.py and TestServer.py so the port can be changed for both server & client from the RunTests.py cmdline
> * added optional argument to RunTests.py to run just a single server type, i.e. ./RunTests.py --port=9092 THttpServer
> * RunTests.py now prints out the exact cmdlines it executes for both server and client, to be more explicit
> * RunTests.py checks to make sure the server process didn't fail (via serverproc.poll() & serverproc.returncode test) which was a 'fixme' note in the code
> It takes a bit longer now for RunTests.py to execute, since it's testing 21 combinations of 3 protocols and 7 server type (with 3.5 extra seconds of shutdown time for the TProcessPool server type).  It's ~35 seconds now to run the whole suite, but gives more thorough code coverage for the tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira