#include <fres_contract_type.h>
#include <stdio.h>
#include <forb/cdr.h>
+#include <wvtest.h>
void cmp(struct fres_contract *c1, struct fres_contract *c2, const char *msg)
{
int ret;
- ret = strcmp(fres_contract_get_label(c1)->label,
- fres_contract_get_label(c2)->label);
- if (ret) error(1, 0, "%s: label cmp failed %d", msg, ret);
-
- ret = memcmp(fres_contract_get_resource(c1),
- fres_contract_get_resource(c2),
- sizeof(fres_block_resource));
- if (ret) error(1, 0, "%s: resource cmp failed %d", msg, ret);
-
- ret = memcmp(fres_contract_get_basic(c1),
- fres_contract_get_basic(c2),
- sizeof(fres_block_basic));
- if (ret) error(1, 0, "%s: basic cmp failed %d", msg, ret);
-
- ret = memcmp(fres_contract_get_timing_reqs(c1),
- fres_contract_get_timing_reqs(c2),
- sizeof(fres_block_timing_reqs));
- if (ret) error(1, 0, "%s: timing_reqs cmp failed %d", msg, ret);
-
+ if (!WVPASS((ret = strcmp(fres_contract_get_label(c1)->label,
+ fres_contract_get_label(c2)->label)) == 0))
+ error(1, 0, "%s: label cmp failed %d", msg, ret);
+
+ if (!WVPASS((ret = memcmp(fres_contract_get_resource(c1),
+ fres_contract_get_resource(c2),
+ sizeof(fres_block_resource))) == 0))
+ error(1, 0, "%s: resource cmp failed %d", msg, ret);
+
+ if (!WVPASS((ret = memcmp(fres_contract_get_basic(c1),
+ fres_contract_get_basic(c2),
+ sizeof(fres_block_basic))) == 0))
+ error(1, 0, "%s: basic cmp failed %d", msg, ret);
+
+ if (!WVPASS((ret = memcmp(fres_contract_get_timing_reqs(c1),
+ fres_contract_get_timing_reqs(c2),
+ sizeof(fres_block_timing_reqs))) == 0))
+ error(1, 0, "%s: timing_reqs cmp failed %d", msg, ret);
+
/*ret = memcmp(fres_contract_get_csects(c1),
fres_contract_get_csects(c2),
sizeof(fres_block_csects));
if (ret) error(1, 0, "%s: critical_sects cmp failed %d", msg, ret);*/
}
-int main()
+WVTEST_MAIN("contract manipulation")
{
- int ret;
struct fres_contract *c, *c2;
fres_block_label *label;
fres_block_resource *resource;
fres_block_timing_reqs *timing_reqs;
fres_block_csects *critical_sects;
- c = fres_contract_new();
- if (!c) error(1, errno, "fres_contract_new");
+ if (!WVPASS(c = fres_contract_new()))
+ error(1, errno, "fres_contract_new");
- label = malloc(sizeof(*label));
- if (!label) error(1, errno, "cannot allocate memory for label");
+ if (!WVPASS(label = malloc(sizeof(*label))))
+ error(1, errno, "cannot allocate memory for label");
strcpy(label->label, "TestLabel");
- ret = fres_contract_add_label(c, label);
- if (ret) error(1, errno, "fres_contract_add_label");
+ if (!WVPASS(fres_contract_add_label(c, label) == 0))
+ error(1, errno, "fres_contract_add_label");
- resource = malloc(sizeof(*resource));
- if (!resource) error(1, errno, "cannot allocate memory for resource");
+ if (!WVPASS(resource = malloc(sizeof(*resource))))
+ error(1, errno, "cannot allocate memory for resource");
resource->resource_type = FRSH_RT_NETWORK;
resource->resource_id = 12;
- ret = fres_contract_add_resource(c, resource);
- if (ret) error(1, errno, "fres_contract_add_resource");
+ if (!WVPASS(fres_contract_add_resource(c, resource) == 0))
+ error(1, errno, "fres_contract_add_resource");
- basic = malloc(sizeof(*basic));
- if (!basic) error(1, errno, "cannot allocate memory for basic");
+ if (!WVPASS(basic = malloc(sizeof(*basic))))
+ error(1, errno, "cannot allocate memory for basic");
basic->budget = fosa_msec_to_rel_time(10);
basic->period = fosa_msec_to_rel_time(100);
basic->workload = FRSH_WT_SYNCHRONIZED;
basic->contract_type = FRSH_CT_REGULAR;
- ret = fres_contract_add_basic(c, basic);
- if (ret) error(1, errno, "fres_contract_add_basic");
+ if (!WVPASS(fres_contract_add_basic(c, basic) == 0))
+ error(1, errno, "fres_contract_add_basic");
- timing_reqs = malloc(sizeof(*timing_reqs));
- if (!timing_reqs) error(1, errno, "cannot allocate memory for timing_reqs");
+ if (!WVPASS(timing_reqs = malloc(sizeof(*timing_reqs))))
+ error(1, errno, "cannot allocate memory for timing_reqs");
timing_reqs->d_equals_t = CORBA_FALSE;
timing_reqs->deadline = fosa_msec_to_rel_time(50);
- ret = fres_contract_add_timing_reqs(c, timing_reqs);
- if (ret) error(1, errno, "fres_contract_add_timing_reqs");
+ if (!WVPASS(fres_contract_add_timing_reqs(c, timing_reqs) == 0))
+ error(1, errno, "fres_contract_add_timing_reqs");
- critical_sects = malloc(sizeof(*critical_sects));
- if (!critical_sects) error(1, errno, "cannot allocate memory for critical_sects");
+ if (!WVPASS(critical_sects = malloc(sizeof(*critical_sects))))
+ error(1, errno, "cannot allocate memory for critical_sects");
//criticacl_sects->;
- ret = fres_contract_add_csects(c, critical_sects);
- if (ret) error(1, errno, "fres_contract_add_csects");
+ if (!WVPASS(fres_contract_add_csects(c, critical_sects) == 0))
+ error(1, errno, "fres_contract_add_csects");
- c2 = fres_contract_duplicate(c);
+ if (!WVPASS(c2 = fres_contract_duplicate(c)))
+ error(1, errno, "fres_contract_duplicate");
cmp(c, c2, "cmp after fres_contract_duplicate");
-
+
fres_contract_destroy(c2);
{
fres_contract_destroy(c2);
}
fres_contract_destroy(c);
-
- printf("OK\n");
-
- return 0;
}