#!/bin/sh # shellcheck source=testlib.sh . ./testlib.sh echo [STEP] Skip this test if tools are missing command -v nc >/dev/null || exit $EXIT_SKIP_TEST command -v timeout >/dev/null || exit $EXIT_SKIP_TEST foo_port=30050 bar_port=30051 # usage: splice protocol_version splice() { ./splice foo localhost $foo_port bar localhost $bar_port "$1" & sleep 10 } # usage: send_with_timeout "data to send" "data expected to receive" send_with_timeout() { data=$1 expected=$3 result=$( ( sleep 6 printf "%s\n" "$data" ) | timeout 10 nc localhost $foo_port ) && exit 1 test $? = $EXIT_TIMEOUT if [ -z "$expected" ]; then test -z "$result" else echo "$result" | grep -q "^$expected" fi } echo [STEP] Initialize two nodes tinc foo <