[
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