diff --git a/cmd/tmsp/cli.go b/cmd/tmsp/cli.go index 9f06c3f7..75cd921d 100644 --- a/cmd/tmsp/cli.go +++ b/cmd/tmsp/cli.go @@ -121,6 +121,8 @@ func cmdBatch(app *cli.App, c *cli.Context) { Exit("input line is too long") } else if err == io.EOF { break + } else if len(line) == 0 { + continue } else if err != nil { Exit(err.Error()) } diff --git a/example/python/app.py b/example/python/app.py index f7797698..a9e9d3b7 100644 --- a/example/python/app.py +++ b/example/python/app.py @@ -38,9 +38,12 @@ class CounterAppContext(): def append_tx(self, txBytes): if self.serial: - txValue = decode_big_endian(BytesReader(txBytes), len(txBytes)) + txByteArray = bytearray(txBytes) + if len(txBytes) >= 2 and txBytes[:2] == "0x": + txByteArray = hex2bytes(txBytes[2:]) + txValue = decode_big_endian(BytesReader(txByteArray), len(txBytes)) if txValue != self.txCount: - return [], 1 + return None, 1 self.txCount += 1 return None, 0 @@ -48,7 +51,9 @@ class CounterAppContext(): self.hashCount += 1 if self.txCount == 0: return "", 0 - return str(encode_big_endian(self.txCount, 8)), 0 + h = encode_big_endian(self.txCount, 8) + h.reverse() + return str(h), 0 def commit(self): return 0 diff --git a/example/python/tmsp/reader.py b/example/python/tmsp/reader.py index edb88e67..f1b3dfae 100644 --- a/example/python/tmsp/reader.py +++ b/example/python/tmsp/reader.py @@ -6,6 +6,7 @@ class BytesReader(): def read(self, n): if len(self.buf) < n: + print "reader err: buf less than n" # TODO: exception return r = self.buf[:n] diff --git a/example/python/tmsp/server.py b/example/python/tmsp/server.py index cc1970c4..e25e4e1f 100644 --- a/example/python/tmsp/server.py +++ b/example/python/tmsp/server.py @@ -77,9 +77,9 @@ class TMSPServer(): ret_code = res res = None + print "called", req_type, "ret code:", ret_code if ret_code != 0: print "non-zero retcode:", ret_code - return if req_type in ("echo", "info"): # these dont return a ret code response += bytearray([resTypeByte]) + encode(res) diff --git a/example/python/tmsp/wire.py b/example/python/tmsp/wire.py index e1d37eff..fde4e160 100644 --- a/example/python/tmsp/wire.py +++ b/example/python/tmsp/wire.py @@ -2,6 +2,9 @@ # the decoder works off a reader # the encoder returns bytearray +def hex2bytes(h): + return bytearray(h.decode('hex')) + def bytes2hex(b): if type(b) in (str, unicode): return "".join([hex(ord(c))[2:].zfill(2) for c in b]) diff --git a/tests/test.sh b/tests/test.sh new file mode 100644 index 00000000..848d14cb --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,13 @@ + +ROOT=$GOPATH/src/github.com/tendermint/tmsp +cd $ROOT + +# test golang dummy +bash tests/test_dummy.sh + +# test golang counter +bash tests/test_counter.sh + +# test python counter +cd example/python +COUNTER_APP="python app.py" bash $ROOT/tests/test_counter.sh diff --git a/tests/test_counter.sh b/tests/test_counter.sh new file mode 100644 index 00000000..41909dde --- /dev/null +++ b/tests/test_counter.sh @@ -0,0 +1,75 @@ + +# so we can test other languages +if [[ "$COUNTER_APP" == "" ]]; then + COUNTER_APP="counter" +fi + +echo "Testing counter app for: $COUNTER_APP" + +# run the counter app +$COUNTER_APP &> /dev/null & +PID=`echo $!` + +if [[ "$?" != 0 ]]; then + echo "Error running tmsp command" + echo $OUTPUT + exit 1 +fi + +sleep 1 +OUTPUT=`(tmsp batch) < /dev/null +if [[ "$?" == "0" ]]; then + kill -9 $PID +fi + diff --git a/test.sh b/tests/test_dummy.sh similarity index 56% rename from test.sh rename to tests/test_dummy.sh index 2f445861..b88475df 100755 --- a/test.sh +++ b/tests/test_dummy.sh @@ -51,50 +51,3 @@ echo "" kill $PID sleep 1 - -# test the counter app -echo "Counter test ..." -counter &> /dev/null & -PID=`echo $!` -sleep 1 -OUTPUT=`(tmsp batch) <