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

Reply via email to