core-lightning/lightningd/test/test-ping
Rusty Russell 6d55a17642 lightningd/dev_ping: expand to cover gossipd.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-04-25 22:00:28 +02:00

76 lines
2.0 KiB
Bash
Executable File

#! /bin/sh -e
# Wherever we are, we want to be in daemon/test dir.
cd `git rev-parse --show-toplevel`/daemon/test
add_funds()
{
local NEWADDR=`$1 newaddr | get_field address`
local FUND_INPUT_TXID=`$CLI sendtoaddress $NEWADDR $2`
local FUND_INPUT_TX=`$CLI getrawtransaction $FUND_INPUT_TXID`
$1 addfunds $FUND_INPUT_TX
}
. scripts/vars.sh
. scripts/helpers.sh
parse_cmdline 2 "$@"
setup_lightning 2
start_lightningd 2 lightningd/lightningd
lcli1 connect localhost $PORT2 $ID2
# Gossipd pings.
# 0-byte pong gives just type + length field.
[ `lcli1 dev-ping $ID2 0 0 | get_field totlen` = 4 ]
# 1000-byte ping, 0-byte pong.
[ `lcli1 dev-ping $ID2 1000 0 | get_field totlen` = 4 ]
# 1000 byte pong.
[ `lcli1 dev-ping $ID2 1000 1000 | get_field totlen` = 1004 ]
# Maximum length pong.
[ `lcli1 dev-ping $ID2 1000 65531 | get_field totlen` = 65535 ]
# Overlength -> no reply.
[ `lcli1 dev-ping $ID2 1000 65532 | get_field totlen` = 0 ]
[ `lcli1 dev-ping $ID2 1000 65533 | get_field totlen` = 0 ]
[ `lcli1 dev-ping $ID2 1000 65534 | get_field totlen` = 0 ]
[ `lcli1 dev-ping $ID2 1000 65535 | get_field totlen` = 0 ]
add_funds lcli1 0.2
# Now fund the channels
CHANNEL_SAT=10000000
CHANNEL_MSAT=$(($CHANNEL_SAT * 1000))
lcli1 fundchannel $ID2 $CHANNEL_SAT
# Lock them in.
$CLI generate 10
check "lcli1 getpeers info | $FGREP 'Funding tx reached depth'"
# 0-byte pong gives just type + length field.
[ `lcli1 dev-ping $ID2 0 0 | get_field totlen` = 4 ]
# 1000-byte ping, 0-byte pong.
[ `lcli1 dev-ping $ID2 1000 0 | get_field totlen` = 4 ]
# 1000 byte pong.
[ `lcli1 dev-ping $ID2 1000 1000 | get_field totlen` = 1004 ]
# Maximum length pong.
[ `lcli1 dev-ping $ID2 1000 65531 | get_field totlen` = 65535 ]
# Overlength -> no reply.
[ `lcli1 dev-ping $ID2 1000 65532 | get_field totlen` = 0 ]
[ `lcli1 dev-ping $ID2 1000 65533 | get_field totlen` = 0 ]
[ `lcli1 dev-ping $ID2 1000 65534 | get_field totlen` = 0 ]
[ `lcli1 dev-ping $ID2 1000 65535 | get_field totlen` = 0 ]
lcli1 stop
lcli2 stop
all_ok