]> rtime.felk.cvut.cz Git - frescor/frsh.git/blob - frsh_api/tests/trans_nego.c
Add test for frsh_transaction_negotiate()
[frescor/frsh.git] / frsh_api / tests / trans_nego.c
1 #include <frsh.h>
2 #include <wvtest.h>
3 #include <res_dummy.h>
4
5 WVTEST_MAIN("transaction negotiation")
6 {
7         frsh_contract_t contract[3];
8         const frsh_resource_id_t id[3] = { 255, 0, 1 };
9         frsh_contract_label_t label[3];
10         frsh_rel_time_t budget, period;
11         int i;
12         fres_transaction_t *t;
13         
14         WVFRSH(frsh_init());
15         WVFRSH(fra_dummy_init_and_activate_id(0));
16         WVFRSH(fra_dummy_init_and_activate_id(1));
17
18         WVPASS(t = fres_transaction_new());
19
20         for (i = 0; i < 3; i++) {
21                 WVFRSH(frsh_contract_init(&contract[i]));
22                 sprintf(label[i], "contract%d", i);
23                 WVFRSH(frsh_contract_set_resource_and_label(
24                                &contract[i],
25                                DUMMY_RESOURCE_TYPE, id[i],
26                                label[i]));
27
28                 budget = fosa_msec_to_rel_time(10);
29                 period = fosa_msec_to_rel_time(100);
30                 WVFRSH(frsh_contract_set_basic_params(&contract[i],
31                                                       &budget,
32                                                       &period,
33                                                       FRSH_WT_BOUNDED,
34                                                       FRSH_CT_REGULAR));
35
36                 WVPASS(fres_transaction_add_contract(t, contract[i]) > 0);
37         }
38         WVFRSH(frsh_transaction_negotiate(t));
39         
40         frsh_destroy();
41 }