unit-tests: Call methods on IKE_SAs in their context

This commit is contained in:
Tobias Brunner
2016-06-17 18:48:01 +02:00
parent 33e2620b8c
commit 5d97e5c30f
3 changed files with 18 additions and 9 deletions
@@ -150,8 +150,7 @@ METHOD(exchange_test_helper_t, establish_sa, void,
peer_cfg = create_peer_cfg(TRUE);
sa_i->set_peer_cfg(sa_i, peer_cfg);
peer_cfg->destroy(peer_cfg);
charon->bus->set_sa(charon->bus, sa_i);
sa_i->initiate(sa_i, create_child_cfg(TRUE), 0, NULL, NULL);
call_ikesa(sa_i, initiate, create_child_cfg(TRUE), 0, NULL, NULL);
/* IKE_SA_INIT --> */
id_r->set_initiator_spi(id_r, id_i->get_initiator_spi(id_i));
process_message(this, sa_r, NULL);
@@ -61,6 +61,16 @@ struct exchange_test_helper_t {
message_t *message);
};
/**
* Since we don't use the IKE_SA manager to checkout SAs use this to call a
* method on the given IKE_SA in its context.
*/
#define call_ikesa(sa, method, ...) ({ \
charon->bus->set_sa(charon->bus, sa); \
sa->method(sa, ##__VA_ARGS__); \
charon->bus->set_sa(charon->bus, NULL); \
})
/**
* The one and only instance of the helper object.
*