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