anchor.diff:      
       % wait for leases to reappear
       ct:pal("cr: wait for leases to reappear"),
  -    lease_helper:wait_for_number_of_valid_active_leases(4).
  +    lease_helper:wait_for_number_of_valid_active_leases(ExpectedLeases).
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +%
  +% functions manipulating the node state
  +%
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +erase_lease_dbs(Node) ->
  +    F = fun(State) ->
  +                State1 = dht_node_state:set_prbr_state(State , leases_1, prbr:init(lease_db1)),
  +                State2 = dht_node_state:set_prbr_state(State1, leases_1, prbr:init(lease_db1)),
  +                State3 = dht_node_state:set_prbr_state(State2, leases_1, prbr:init(lease_db1)),
  +                State4 = dht_node_state:set_prbr_state(State3, leases_1, prbr:init(lease_db1)),
  +                State4
  +        end,
  +    change_node_state(Node, F).
  +
  +change_node_state(Node, F) ->
  +    comm:send_local(Node, {set_state, comm:this(), F}),
  +    receive
  +        {set_state_response, _NewState} ->
  +            ok
  +    end.
  
positive.code: 
  groups() ->
      [{crash_recovery_tests,[sequence], [
                                          test_crash_recovery
                                         ]}
      ].
  
  
negative.code:     lease_helper:wait_for_number_of_valid_active_leases(0),
      [gen_component:bp_del(Node, block_trigger) || Node <- DHTNodes],
  
      % do bad things
      DoBadThings(DHTNodes),
  
      % trigger renewal on all nodes
      ct:pal("cr: renew all nodes ~p", [DHTNodes]),
  