#!/bin/bash

# Test sockfd connection

seq=`basename $0`
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1        # failure is the default!

trap "_uninit; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.rc
. ./common.filter

_need_to_be_root

_uninit()
{
	for i in `seq 1 7`; do
		_cleanup_machine_simulation $i
	done
}

_cleanup

for i in `seq 0 5`; do
	_start_sheep $i
done

_wait_for_sheep 6

$COLLIE cluster format -c 3 -m unsafe

$COLLIE vdi create test 40M
_random | $COLLIE vdi write test &

sleep 3
# Test write timeout
for i in `seq 1 4`; do
	_simulate_machine_down $i
done

# wait for collie to finish
wait
_wait_for_sheep_recovery 0

$COLLIE vdi read test | md5sum > /tmp/csum.1

for i in `seq 0 9`; do
	$COLLIE vdi object -i $i test
done

for i in 6 7 8; do
	_start_sheep $i
done

_wait_for_sheep_recovery 0

# Test read timeout
$COLLIE vdi read test | md5sum > /tmp/csum.2 &
for i in `seq 5 7`; do
	_simulate_machine_down $i
done
wait

diff -u /tmp/csum.1 /tmp/csum.2
status=0
