Skip to content

Commit 960ea1f

Browse files
committed
shell script for simple network-delay test
1 parent 04136d5 commit 960ea1f

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
NETWORK_DELAY=${NETWORK_DELAY:-500}
6+
BUILD_IMAGE=${BUILD_IMAGE:-true}
7+
NODES=${NODES:-"Node0:Node1:Node2:Node3:Node4"}
8+
9+
function build_test_image() {
10+
docker build -t aleph-node:network_tests -f docker/Dockerfile.network_tests .
11+
}
12+
13+
function set_network_delay() {
14+
local node=$1
15+
local delay=$2
16+
17+
log "setting network delay for node $node"
18+
docker exec $node tc qdisc add dev eth1 root netem delay ${delay}ms
19+
}
20+
21+
function log() {
22+
echo "$1" 1>&2
23+
}
24+
25+
function into_array() {
26+
result=()
27+
local tmp=$IFS
28+
IFS=:
29+
for e in $1; do
30+
result+=($e)
31+
done
32+
IFS=$tmp
33+
}
34+
35+
into_array $NODES
36+
NODES=(${result[@]})
37+
38+
if [[ "$BUILD_IMAGE" = true ]]; then
39+
log "building docker image for network tests"
40+
build_test_image
41+
fi
42+
43+
log "starting network"
44+
OVERRIDE_DOCKER_COMPOSE=./docker/docker-compose.network_test.yml DOCKER_COMPOSE=./docker/docker-compose.bridged.yml ./.github/scripts/run_consensus.sh 1>&2
45+
log "network started"
46+
47+
log "setting network delay"
48+
for node in ${NODES[@]}; do
49+
set_network_delay $node $NETWORK_DELAY
50+
done
51+
52+
log "done"

0 commit comments

Comments
 (0)