[ https://issues.apache.org/jira/browse/THRIFT-3585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15128535#comment-15128535 ]
ASF GitHub Bot commented on THRIFT-3585: ---------------------------------------- Github user nsuke commented on the pull request: https://github.com/apache/thrift/pull/828#issuecomment-178683522 Tested with `test/lua/test_basic_client.lua` and found several problems. Examples of problematic valus were negative i8 values (-128 ~ -1), some i32 values (0x40000000, -1 ...), i64 values. For i64 values, we need it to work with `liblualongnumber.new`. I recommend you to run the test yourself. Here's how: 1. pull master branch 2. `make precross` 3. in `test/go/bin` run `./testserver --protocol=compact --transport=framed` (leave it blocked) 4. uncommend compact entry around line 75 in `test/lua/test_basic_client.lua`. also add require to compact 5. in `test/lua` run `lua test_basic_client.lua --transport=framed --protocol=compact` with appropriate LUA_PATH and LUA_CPATH > compact protocol implement of lua for thrift. > --------------------------------------------- > > Key: THRIFT-3585 > URL: https://issues.apache.org/jira/browse/THRIFT-3585 > Project: Thrift > Issue Type: Improvement > Components: Lua - Library > Affects Versions: 0.9.3 > Environment: Linux Mac Windows > Reporter: WangYaofu > Labels: patch > Fix For: 0.9.4 > > > This is compact protocol lua implement for thrift. > Here are some description for each source code file. > luabpack.c > To add bits operation function for thrift compact protocol. > new functions: > > l_i64ToZigza,l_i32ToZigzag,l_zigzagToI32,l_zigzagToI64,l_toVarint32,l_toVarint64,l_packMesgType. > TCompactProtocol.lua > new source of lua for thrift compact protocol. > compact_protocol_client.lua > test client source code for thrift compact protocol. > compact_protocol_server.lua > test server source code for thrift compact protocol. > rpc.thrift > test thrift IDL file for test > case(compact_protocol_client.lua,compact_protocol_server.lua). > pcap offset hex of rpc test service.txt > This is dump file create by tcpdump for test case. > Test cases: > client <--------------> server > compact_protocol_client.lua compact_server.go (golang thrift > server) > compact_client.go (golang thrift client) compact_protocol_server.lua > compact_protocol_client.lua compact_protocol_server.lua > Test console log: > log for compact_protocol_client.lua: > 1 return 1 by FunCall. > 2 return 2 by FunCall. > log for compact_protocol_server.lua: > 53 54 12 43 11.22 str value > 53 54 12 34 11.22 login > name namess > pass vpass > 10 val10 > 20 val20 > ele1 > ele3 > ele2 > l1. > l2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)