kubo/test/sharness/lib/iptb-lib.sh
Steven Allen d48b80b30e feat: add noise support
We can add a proper configuration option in a followup patch after the RC.
2020-05-25 23:46:48 -07:00

65 lines
1.4 KiB
Bash

# iptb test framework
#
# Copyright (c) 2014, 2016 Jeromy Johnson, Christian Couder
# MIT Licensed; see the LICENSE file in this repository.
export IPTB_ROOT="$(pwd)/.iptb"
ipfsi() {
dir="$1"
shift
IPFS_PATH="$IPTB_ROOT/testbeds/default/$dir" ipfs "$@"
}
check_has_connection() {
node="$1"
ipfsi "$node" swarm peers >"swarm_peers_$node" &&
grep "p2p" "swarm_peers_$node" >/dev/null
}
iptb() {
if ! command iptb "$@"; then
case "$1" in
start|stop|connect)
test_fsh command iptb logs
;;
esac
return 1
fi
}
startup_cluster() {
num_nodes="$1"
shift
other_args="$@"
bound=$(expr "$num_nodes" - 1)
if test -n "$other_args"; then
test_expect_success "start up nodes with additional args" "
iptb start -wait [0-$bound] -- ${other_args[@]}
"
else
test_expect_success "start up nodes" '
iptb start -wait [0-$bound]
'
fi
test_expect_success "connect nodes to each other" '
iptb connect [1-$bound] 0
'
for i in $(test_seq 0 "$bound")
do
test_expect_success "node $i is connected" '
check_has_connection "$i" ||
test_fsh cat "swarm_peers_$i"
'
done
}
iptb_wait_stop() {
while ! iptb run -- sh -c '! { test -e "$IPFS_PATH/repo.lock" && fuser -f "$IPFS_PATH/repo.lock" >/dev/null; }'; do
go-sleep 10ms
done
}