4 #include "fwp_contract.h"
9 int main(int argc, char** argv)
12 struct fwp_msgb *msgb;
13 struct fwp_contract cont_a, cont_b, cont_c, cont_d;
18 printf("in=%d out=%d pending=%d \n",msgq.in,msgq.out,msgq.nr_pending);
20 /* prepare and enqueue the first message buffer */
21 msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_contract));
23 printf("Could not allocate msgb for message A\n");
26 printf("Message buffer for message A allocated\n");
29 cont_a.period_usec = 80;
30 fwp_msg_contract_in(msgb->data, &cont_a);
32 printf("Enqueue message A. ");
33 if (!fwp_msgq_enqueue(&msgq, msgb))
40 printf("in=%d out=%d pending=%d \n",msgq.in,msgq.out,msgq.nr_pending);
42 /* prepare and enqueue the second message buffer */
43 msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_contract));
45 printf("Could not allocate msgb for message B\n");
48 printf("Message buffer for message B allocated\n");
51 cont_b.period_usec = 100;
52 fwp_msg_contract_in(msgb->data, &cont_b);
54 printf("Enqueue message B. ");
55 if (!fwp_msgq_enqueue(&msgq, msgb))
62 printf("in=%d out=%d pending=%d \n",msgq.in,msgq.out,msgq.nr_pending);
64 /* dequeue the first message and compare with original contract*/
65 printf("Dequeue message A. ");
66 msgb = fwp_msgq_dequeue(&msgq);
73 printf("in=%d out=%d pending=%d \n",msgq.in,msgq.out,msgq.nr_pending);
75 fwp_msg_contract_out(msgb->data, &cont_c);
78 if ((cont_a.budget != cont_c.budget)||
79 (cont_a.period_usec != cont_c.period_usec)) {
80 printf("Contracts do not match for message A.\n");
83 printf("Contracts match for message A.\n");
86 /* dequeue the second message and compare with original contract*/
87 printf("Dequeue message B. ");
88 msgb = fwp_msgq_dequeue(&msgq);
95 printf("in=%d out=%d pending=%d \n",msgq.in,msgq.out,msgq.nr_pending);
97 fwp_msg_contract_out(msgb->data, &cont_d);
100 if ((cont_b.budget != cont_d.budget)||
101 (cont_b.period_usec != cont_d.period_usec)) {
102 printf("Contracts do not match for message B.\n");
105 printf("Contracts match for message B.\n");
106 msgb = fwp_msgq_dequeue(&msgq);
109 printf("Message should be empty but is is not\n");
113 printf("%s PASSED!\n", argv[0]);