#! /bin/bash
|
|
|
|
cd $GOPATH/src/github.com/tendermint/go-rpc
|
|
|
|
# get deps
|
|
go get -u -t ./...
|
|
|
|
# go tests
|
|
go test --race github.com/tendermint/go-rpc/...
|
|
|
|
|
|
# integration tests
|
|
cd test
|
|
set -e
|
|
|
|
go build -o server main.go
|
|
./server > /dev/null &
|
|
PID=$!
|
|
sleep 2
|
|
|
|
# simple request
|
|
R1=`curl -s 'http://localhost:8008/hello_world?name="my_world"&num=5'`
|
|
R2=`curl -s --data @data.json http://localhost:8008`
|
|
if [[ "$R1" != "$R2" ]]; then
|
|
echo "responses are not identical:"
|
|
echo "R1: $R1"
|
|
echo "R2: $R2"
|
|
exit 1
|
|
else
|
|
echo "Success"
|
|
fi
|
|
|
|
# request with 0x-prefixed hex string arg
|
|
R1=`curl -s 'http://localhost:8008/hello_world?name=0x41424344&num=123'`
|
|
R2='{"jsonrpc":"2.0","id":"","result":{"Result":"hi ABCD 123"},"error":""}'
|
|
if [[ "$R1" != "$R2" ]]; then
|
|
echo "responses are not identical:"
|
|
echo "R1: $R1"
|
|
echo "R2: $R2"
|
|
exit 1
|
|
else
|
|
echo "Success"
|
|
fi
|
|
|
|
# request with unquoted string arg
|
|
R1=`curl -s 'http://localhost:8008/hello_world?name=abcd&num=123'`
|
|
R2="{\"jsonrpc\":\"2.0\",\"id\":\"\",\"result\":null,\"error\":\"Error converting http params to args: invalid character 'a' looking for beginning of value\"}"
|
|
if [[ "$R1" != "$R2" ]]; then
|
|
echo "responses are not identical:"
|
|
echo "R1: $R1"
|
|
echo "R2: $R2"
|
|
exit 1
|
|
else
|
|
echo "Success"
|
|
fi
|
|
|
|
# request with string type when expecting number arg
|
|
R1=`curl -s 'http://localhost:8008/hello_world?name="abcd"&num=0xabcd'`
|
|
R2="{\"jsonrpc\":\"2.0\",\"id\":\"\",\"result\":null,\"error\":\"Error converting http params to args: Got a hex string arg, but expected 'int'\"}"
|
|
if [[ "$R1" != "$R2" ]]; then
|
|
echo "responses are not identical:"
|
|
echo "R1: $R1"
|
|
echo "R2: $R2"
|
|
exit 1
|
|
else
|
|
echo "Success"
|
|
fi
|
|
|
|
kill -9 $PID || exit 0
|