# -------------------------------------------------------------
# A basic test that includes store (n1, s1):
# - requesting support from another store,
# - providing support for another store,
# - querying supportFor and supportFrom,
# - withdrawing support.
# -------------------------------------------------------------

support-from node-id=2 store-id=2
----
epoch: 0, expiration: 0,0

send-heartbeats now=100 support-duration=10s
----
heartbeats:
{Type:MsgHeartbeat From:{NodeID:1 StoreID:1} To:{NodeID:2 StoreID:2} Epoch:1 Expiration:110.000000000,0}

handle-messages
  msg type=MsgHeartbeat from-node-id=2 from-store-id=2 epoch=2 expiration=200
  msg type=MsgHeartbeatResp from-node-id=2 from-store-id=2 epoch=1 expiration=110
----
responses:
{Type:MsgHeartbeatResp From:{NodeID:1 StoreID:1} To:{NodeID:2 StoreID:2} Epoch:2 Expiration:200.000000000,0}

support-from node-id=2 store-id=2
----
epoch: 1, expiration: 110.000000000,0

support-for node-id=2 store-id=2
----
epoch: 2, support provided: true

withdraw-support now=201
----

support-for node-id=2 store-id=2
----
epoch: 3, support provided: false

debug-requester-state
----
meta:
{MaxEpoch:1 MaxRequested:110.000000000,0}
support from:
{Target:{NodeID:2 StoreID:2} Epoch:1 Expiration:110.000000000,0}

debug-supporter-state
----
meta:
{MaxWithdrawn:201.000000000,0}
support for:
{Target:{NodeID:2 StoreID:2} Epoch:3 Expiration:0,0}

debug-metrics
----
HeartbeatSuccess: 1, HeartbeatFailure: 0
MessageHandleSuccess: 2, MessageHandleFailure: 0
SupportWithdrawSuccess: 1, SupportWithdrawFailure: 0
SupportFromStores: 1, SupportForStores: 1
