2016-01-07 18:26:44 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
import argparse
|
|
|
|
import sys
|
|
|
|
|
|
|
|
from util import add_common_args, init_protocol
|
2016-02-28 02:28:19 +00:00
|
|
|
from local_thrift import thrift # noqa
|
2016-01-07 18:26:44 +00:00
|
|
|
from thrift.Thrift import TMessageType, TType
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: generate from ThriftTest.thrift
|
|
|
|
def test_string(proto, value):
|
2016-02-02 16:57:03 +00:00
|
|
|
method_name = 'testString'
|
|
|
|
ttype = TType.STRING
|
|
|
|
proto.writeMessageBegin(method_name, TMessageType.CALL, 3)
|
|
|
|
proto.writeStructBegin(method_name + '_args')
|
|
|
|
proto.writeFieldBegin('thing', ttype, 1)
|
|
|
|
proto.writeString(value)
|
|
|
|
proto.writeFieldEnd()
|
|
|
|
proto.writeFieldStop()
|
|
|
|
proto.writeStructEnd()
|
|
|
|
proto.writeMessageEnd()
|
|
|
|
proto.trans.flush()
|
|
|
|
|
|
|
|
_, mtype, _ = proto.readMessageBegin()
|
|
|
|
assert mtype == TMessageType.REPLY
|
|
|
|
proto.readStructBegin()
|
|
|
|
_, ftype, fid = proto.readFieldBegin()
|
|
|
|
assert fid == 0
|
|
|
|
assert ftype == ttype
|
|
|
|
result = proto.readString()
|
|
|
|
proto.readFieldEnd()
|
|
|
|
_, ftype, _ = proto.readFieldBegin()
|
|
|
|
assert ftype == TType.STOP
|
|
|
|
proto.readStructEnd()
|
|
|
|
proto.readMessageEnd()
|
|
|
|
assert value == result
|
2016-01-07 18:26:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
def main(argv):
|
2016-02-02 16:57:03 +00:00
|
|
|
p = argparse.ArgumentParser()
|
|
|
|
add_common_args(p)
|
|
|
|
p.add_argument('--limit', type=int)
|
|
|
|
args = p.parse_args()
|
|
|
|
proto = init_protocol(args)
|
|
|
|
test_string(proto, 'a' * (args.limit - 1))
|
|
|
|
test_string(proto, 'a' * (args.limit - 1))
|
|
|
|
print('[OK]: limit - 1')
|
|
|
|
test_string(proto, 'a' * args.limit)
|
|
|
|
test_string(proto, 'a' * args.limit)
|
|
|
|
print('[OK]: just limit')
|
|
|
|
try:
|
|
|
|
test_string(proto, 'a' * (args.limit + 1))
|
|
|
|
except:
|
|
|
|
print('[OK]: limit + 1')
|
|
|
|
else:
|
|
|
|
print('[ERROR]: limit + 1')
|
|
|
|
assert False
|
2016-01-07 18:26:44 +00:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2016-02-02 16:57:03 +00:00
|
|
|
main(sys.argv[1:])
|