ipfs-cluster/sharness/t0051-service-state-upgrade-from-old.sh

36 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
test_description="Test service state upgrade v1 -> v2 and v2 -> v2"
. lib/test-lib.sh
test_ipfs_init
test_cluster_init
test_confirm_v1State
# Make a pin and shutdown to force a snapshot. Modify snapshot files to specify
# a snapshot of v1 state pinning "test" (it's easier than taking a new one each
# time with the correct metadata). Upgrade state, check that the correct
# pin cid is in the state
test_expect_success IPFS,CLUSTER,V1STATE,JQ "cluster-service loads v1 state correctly" '
cid=`docker exec ipfs sh -c "echo test | ipfs add -q"` &&
cid2=`docker exec ipfs sh -c "echo testing | ipfs add -q"` &&
ipfs-cluster-ctl pin add "$cid2" &&
cluster_kill &&
sleep 15 &&
SNAP_DIR=`find test-config/raft/snapshots/ -maxdepth 1 -mindepth 1 | head -n 1` &&
cp v1State "$SNAP_DIR/state.bin" &&
cat "$SNAP_DIR/meta.json" | jq --arg CRC "$V1_CRC" '"'"'.CRC = $CRC'"'"' > tmp.json &&
cp tmp.json "$SNAP_DIR/meta.json" &&
ipfs-cluster-service --debug --config "test-config" state upgrade &&
cluster_start &&
ipfs-cluster-ctl pin ls "$cid" | grep -q "$cid" &&
ipfs-cluster-ctl status "$cid" | grep -q -i "PINNED"
'
test_clean_ipfs
test_clean_cluster
test_done