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/cfg.sh -n dnode1 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3

system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 4
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4

system sh/cfg.sh -n dnode1 -c http -v 0
system sh/cfg.sh -n dnode2 -c http -v 0
system sh/cfg.sh -n dnode3 -c http -v 0

system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 20000
system sh/cfg.sh -n dnode2 -c maxTablesPerVnode -v 20000
system sh/cfg.sh -n dnode3 -c maxTablesPerVnode -v 20000

system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 20
system sh/cfg.sh -n dnode2 -c maxVgroupsPerDb -v 20
system sh/cfg.sh -n dnode3 -c maxVgroupsPerDb -v 20

system sh/cfg.sh -n dnode1 -c replica -v 3
system sh/cfg.sh -n dnode2 -c replica -v 3
system sh/cfg.sh -n dnode3 -c replica -v 3

print ============== deploy

system sh/exec.sh -n dnode1 -s start 
sleep 5001
sql connect

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

print  =============== step1
$x = 0
show1: 
	$x = $x + 1
	sleep 2000
	if $x == 5 then
	  return -1
	endi
sql show mnodes -x show1
$mnode1Role = $data2_1
print mnode1Role $mnode1Role
$mnode2Role = $data2_2
print mnode2Role $mnode2Role
$mnode3Role = $data2_3
print mnode3Role $mnode3Role

if $mnode1Role != master then
  goto show1
endi
if $mnode2Role != slave then
  goto show1
endi
if $mnode3Role != slave then
  goto show1
endi

print  =============== step2

sql create database db replica 3
sql use db
sql create table tb (ts timestamp, test int)

$x = 0
while $x < 100
  $ms = $x . s
  sql insert into tb values (now + $ms , $x )
  $x = $x + 1
endw 

print  =============== step3
sleep 2000

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

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

print  =============== step5
sleep 8000
while $x < 200
  $ms = $x . s
  sql insert into tb values (now + $ms , $x )
  $x = $x + 1
endw 

print  =============== step6
system sh/exec.sh -n dnode2 -s stop  -x SIGINT
sleep 2000
while $x < 300
  $ms = $x . s
  sql insert into tb values (now + $ms , $x )
  $x = $x + 1
endw 

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

sleep 6000
print  =============== step7
while $x < 400
  $ms = $x . s
  sql insert into tb values (now + $ms , $x )
  $x = $x + 1
  sleep 1
endw 

print  =============== step8
sql select * from tb
print rows $rows
if $rows != 400 then
  return -1
endi

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