system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
system sh/deploy.sh -n dnode4 -i 4

system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1

system sh/cfg.sh -n dnode1 -c role -v 1
system sh/cfg.sh -n dnode2 -c role -v 2
system sh/cfg.sh -n dnode3 -c role -v 2
system sh/cfg.sh -n dnode4 -c role -v 2

system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator

print ============== step0: start tarbitrator
system sh/exec_tarbitrator.sh -s start

print ============== step1: start dnode1, only deploy mnode
system sh/exec.sh -n dnode1 -s start
sql connect

print ============== step2: start dnode2/dnode3
system sh/exec.sh -n dnode2 -s start 
system sh/exec.sh -n dnode3 -s start
sql create dnode $hostname2
sql create dnode $hostname3

$x = 0
step2: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step2
endi
if $data4_2 != ready then
  goto step2
endi
if $data4_3 != ready then
  goto step2
endi

sleep 1000

print ============== step3
sql create database db replica 2
sql use db

sql create table stb (ts timestamp, c1 int, c2 int) tags(t1 int)
sql create table t1 using stb tags(1)
sql insert into t1 values(1577980800000, 1, 5)
sql insert into t1 values(1577980800001, 2, 4)
sql insert into t1 values(1577980800002, 3, 3)
sql insert into t1 values(1577980800003, 4, 2)
sql insert into t1 values(1577980800004, 5, 1)

sql show db.vgroups
if $data04 != 3 then
	return -1
endi
if $data06 != 2 then
	return -1
endi
if $data05 != master then
	return -1
endi
if $data07 != slave then
	return -1
endi

sql select * from t1
if $rows != 5 then
	return -1
endi

system sh/exec.sh -n dnode2 -s stop -x SIGKILL
system sh/exec.sh -n dnode3 -s stop -x SIGKILL

print ============== step4
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start

$x = 0
step4: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step4
endi
if $data4_2 != ready then
  goto step4
endi
if $data4_3 != ready then
  goto step4
endi

sql show db.vgroups
if $data04 != 3 then
	goto step4
endi
if $data06 != 2 then
	goto step4
endi
if $data05 != master then
	goto step4
endi
if $data07 != slave then
	goto step4
endi

sql create table t2 using stb tags(1)
sql insert into t2 values(1577980800000, 1, 5)
sql insert into t2 values(1577980800001, 2, 4)
sql insert into t2 values(1577980800002, 3, 3)
sql insert into t2 values(1577980800003, 4, 2)
sql insert into t2 values(1577980800004, 5, 1)

sql select * from t2
if $rows != 5 then
	return -1
endi

print ============== step5
system sh/exec.sh -n dnode3 -s stop  -x SIGKILL

$x = 0
step5: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step5
endi
if $data4_2 != ready then
  goto step5
endi
if $data4_3 != offline then
  goto step5
endi

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi

sql show db.vgroups
if $data04 != 3 then
	goto step5
endi
if $data06 != 2 then
	goto step5
endi
if $data05 != offline then
	goto step5
endi
if $data07 != master then
	goto step5
endi

print ============== step6
sql create table t3 using stb tags(1)
sql insert into t3 values(1577980800000, 1, 5)
sql insert into t3 values(1577980800001, 2, 4)
sql insert into t3 values(1577980800002, 3, 3)
sql insert into t3 values(1577980800003, 4, 2)
sql insert into t3 values(1577980800004, 5, 1)
sql insert into t3 values(1577980800010, 11, 5)
sql insert into t3 values(1577980800011, 12, 4)
sql insert into t3 values(1577980800012, 13, 3)
sql insert into t3 values(1577980800013, 14, 2)
sql insert into t3 values(1577980800014, 15, 1)

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi

system sh/exec.sh -n dnode3 -s start

$x = 0
step6: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step6
endi
if $data4_2 != ready then
  goto step6
endi
if $data4_3 != ready then
  goto step6
endi

sql show db.vgroups
if $data04 != 3 then
	goto step6
endi
if $data06 != 2 then
	goto step6
endi
if $data05 != slave then
	goto step6
endi
if $data07 != master then
	goto step6
endi

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi

print ============== step7
sql create table t4 using stb tags(1)
sql insert into t4 values(1577980800000, 1, 5)
sql insert into t4 values(1577980800001, 2, 4)
sql insert into t4 values(1577980800002, 3, 3)
sql insert into t4 values(1577980800003, 4, 2)
sql insert into t4 values(1577980800004, 5, 1)
sql insert into t4 values(1577980800010, 11, 5)
sql insert into t4 values(1577980800011, 12, 4)
sql insert into t4 values(1577980800012, 13, 3)
sql insert into t4 values(1577980800013, 14, 2)
sql insert into t4 values(1577980800014, 15, 1)
sql insert into t4 values(1577980800020, 21, 5)
sql insert into t4 values(1577980800021, 22, 4)
sql insert into t4 values(1577980800022, 23, 3)
sql insert into t4 values(1577980800023, 24, 2)
sql insert into t4 values(1577980800024, 25, 1)

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi
sql select * from t4
if $rows != 15 then
	return -1
endi

system sh/exec.sh -n dnode2 -s stop -x SIGKILL
$x = 0
step7: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step7
endi
if $data4_2 != offline then
  goto step7
endi
if $data4_3 !=  ready then
  goto step7
endi

sql show db.vgroups
if $data04 != 3 then
	goto step7
endi
if $data06 != 2 then
	goto step7
endi
if $data05 != master then
	goto step7
endi
if $data07 != offline then
	goto step7
endi

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi
sql select * from t4
if $rows != 15 then
	return -1
endi

print ============== step8
sql create table t5 using stb tags(1)
sql insert into t5 values(1577980800000, 1, 5)
sql insert into t5 values(1577980800001, 2, 4)
sql insert into t5 values(1577980800002, 3, 3)
sql insert into t5 values(1577980800003, 4, 2)
sql insert into t5 values(1577980800004, 5, 1)
sql insert into t5 values(1577980800010, 11, 5)

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi
sql select * from t4
if $rows != 15 then
	return -1
endi
sql select * from t5
if $rows != 6 then
	return -1
endi

system sh/exec.sh -n dnode2 -s start
$x = 0
step8: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step8
endi
if $data4_2 != ready then
  goto step8
endi
if $data4_3 != ready then
  goto step8
endi

sql show db.vgroups
if $data04 != 3 then
	goto step8
endi
if $data06 != 2 then
	goto step8
endi
if $data05 != master then
	goto step8
endi
if $data07 != slave then
	goto step8
endi

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi
sql select * from t4
if $rows != 15 then
	return -1
endi
sql select * from t5
if $rows != 6 then
	return -1
endi

print ============== step9
sql create table t6 using stb tags(1)
sql insert into t6 values(1577980800000, 1, 5)
sql insert into t6 values(1577980800001, 2, 4)
sql insert into t6 values(1577980800002, 3, 3)
sql insert into t6 values(1577980800003, 4, 2)
sql insert into t6 values(1577980800004, 5, 1)
sql insert into t6 values(1577980800010, 11, 5)
sql insert into t6 values(1577980800011, 12, 4)

sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then
	return -1
endi
sql select * from t4
if $rows != 15 then
	return -1
endi
sql select * from t5
if $rows != 6 then
	return -1
endi
sql select * from t6
if $rows != 7 then
	return -1
endi

system sh/exec.sh -n dnode3 -s stop -x SIGKILL
$x = 0
step9: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step9
endi
if $data4_2 != ready then
  goto step9
endi
if $data4_3 != offline then
  goto step9
endi

print ============== 2
sql show db.vgroups

if $data04 != 3 then
	goto step7
endi
if $data06 != 2 then
	goto step7
endi
if $data05 != offline then
	goto step7
endi
if $data07 != master then
	goto step7
endi

print ============== 3
sql select * from t1
if $rows != 5 then
	return -1
endi
sql select * from t2
if $rows != 5 then
	return -1
endi
sql select * from t3
if $rows != 10 then	
	return -1
endi
sql select * from t4
if $rows != 15 then
	return -1
endi
sql select * from t5
if $rows != 6 then
	return -1
endi
sql select * from t6
if $rows != 7 then
	return -1
endi

system sh/exec.sh -n dnode1 -s stop
system sh/exec.sh -n dnode2 -s stop
system sh/exec.sh -n dnode3 -s stop
