1 #include <fres_transaction.h>
6 void cmp(struct fres_contract *c1, struct fres_contract *c2, const char *msg)
9 if (!WVPASS((ret = strcmp(fres_contract_get_label(c1)->label,
10 fres_contract_get_label(c2)->label)) == 0))
11 error(1, 0, "%s: label cmp failed %d", msg, ret);
13 if (!WVPASS((ret = memcmp(fres_contract_get_resource(c1),
14 fres_contract_get_resource(c2),
15 sizeof(fres_block_resource))) == 0))
16 error(1, 0, "%s: resource cmp failed %d", msg, ret);
18 if (!WVPASS((ret = memcmp(fres_contract_get_basic(c1),
19 fres_contract_get_basic(c2),
20 sizeof(fres_block_basic))) == 0))
21 error(1, 0, "%s: basic cmp failed %d", msg, ret);
23 if (!WVPASS((ret = memcmp(fres_contract_get_timing_reqs(c1),
24 fres_contract_get_timing_reqs(c2),
25 sizeof(fres_block_timing_reqs))) == 0))
26 error(1, 0, "%s: timing_reqs cmp failed %d", msg, ret);
28 /*ret = memcmp(fres_contract_get_csects(c1),
29 fres_contract_get_csects(c2),
30 sizeof(fres_block_csects));
31 if (ret) error(1, 0, "%s: critical_sects cmp failed %d", msg, ret);*/
34 WVTEST_MAIN("transaction manipulation")
36 fres_transaction_t *t1, *t2;
37 struct fres_contract *c;
39 WVPASS(t1 = fres_transaction_new());
40 WVPASS(fres_transaction_num_contracts(t1) == 0);
41 WVFAIL(fres_transaction_get_contract(t1, 0));
42 WVPASS(c = fres_contract_new());
43 WVPASS(fres_transaction_add_contract(t1, c) > 0);
44 WVPASS(fres_transaction_num_contracts(t1) == 1);
45 WVPASS(fres_transaction_get_contract(t1, 0) == c);
47 WVPASS(t2 = fres_transaction_duplicate(t1));
48 WVPASS(fres_transaction_num_contracts(t2) == 1);
49 WVPASS(fres_transaction_get_contract(t2, 0) != NULL);
50 WVPASS(fres_transaction_get_contract(t2, 0) != c);
52 fres_transaction_destroy(t1);