[
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