ipld-eth-server/vendor/github.com/ipfs/go-ipfs/test/sharness/t0125-twonode.sh
2019-12-02 13:24:46 -06:00

120 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Copyright (c) 2017 Jeromy Johnson
# MIT Licensed; see the LICENSE file in this repository.
#
test_description="Test two ipfs nodes transferring a file"
. lib/test-lib.sh
check_file_fetch() {
node=$1
fhash=$2
fname=$3
test_expect_success "can fetch file" '
ipfsi $node cat $fhash > fetch_out
'
test_expect_success "file looks good" '
test_cmp $fname fetch_out
'
}
check_dir_fetch() {
node=$1
ref=$2
test_expect_success "node can fetch all refs for dir" '
ipfsi $node refs -r $ref > /dev/null
'
}
run_single_file_test() {
test_expect_success "add a file on node1" '
random 1000000 > filea &&
FILEA_HASH=$(ipfsi 1 add -q filea)
'
check_file_fetch 0 $FILEA_HASH filea
}
run_random_dir_test() {
test_expect_success "create a bunch of random files" '
random-files -depth=3 -dirs=4 -files=5 -seed=5 foobar > /dev/null
'
test_expect_success "add those on node 0" '
DIR_HASH=$(ipfsi 0 add -r -q foobar | tail -n1)
'
check_dir_fetch 1 $DIR_HASH
}
run_advanced_test() {
startup_cluster 2 "$@"
test_expect_success "clean repo before test" '
ipfsi 0 repo gc > /dev/null &&
ipfsi 1 repo gc > /dev/null
'
run_single_file_test
run_random_dir_test
test_expect_success "node0 data transferred looks correct" '
ipfsi 0 bitswap stat > stat0 &&
grep "blocks sent: 126" stat0 > /dev/null &&
grep "blocks received: 5" stat0 > /dev/null &&
grep "data sent: 228113" stat0 > /dev/null &&
grep "data received: 1000256" stat0 > /dev/null
'
test_expect_success "node1 data transferred looks correct" '
ipfsi 1 bitswap stat > stat1 &&
grep "blocks received: 126" stat1 > /dev/null &&
grep "blocks sent: 5" stat1 > /dev/null &&
grep "data received: 228113" stat1 > /dev/null &&
grep "data sent: 1000256" stat1 > /dev/null
'
test_expect_success "shut down nodes" '
iptb stop && iptb_wait_stop
'
}
test_expect_success "set up tcp testbed" '
iptb testbed create -type localipfs -count 2 -force -init
'
# Enable quic but don't use it yet.
test_expect_success "enable QUIC experiment" '
ipfsi 0 config --json Experimental.QUIC true &&
ipfsi 1 config --json Experimental.QUIC true
'
# test multiplex muxer
echo "Running advanced tests with mplex"
export LIBP2P_MUX_PREFS="/mplex/6.7.0"
run_advanced_test "--enable-mplex-experiment"
unset LIBP2P_MUX_PREFS
# test default configuration
echo "Running advanced tests with default config"
run_advanced_test
# test QUIC
echo "Running advanced tests over QUIC"
addr1='"[\"/ip4/127.0.0.1/udp/0/quic/\"]"'
addr2='"[\"/ip4/127.0.0.1/udp/0/quic/\"]"'
test_expect_success "add QUIC swarm addresses" '
ipfsi 0 config --json Addresses.Swarm '$addr1' &&
ipfsi 1 config --json Addresses.Swarm '$addr2'
'
run_advanced_test
test_done