Branch data Line data Source code
1 : :
2 : : #include "gwrl/proactor.h"
3 : :
4 : 18 : int main(int argc, char ** argv) {
5 : :
6 : 18 : gwrl * rl = gwrl_create();
7 : 18 : gwpr * pr = gwpr_create(rl);
8 : 18 : gwrlsrc_file * fsrc = gwpr_set_fd(pr,STDIN_FILENO,NULL);
9 : :
10 : 18 : gwprwrq * q1 = gwprwrq_get(pr,fsrc);
11 : 18 : gwprwrq * q2 = gwprwrq_get(pr,fsrc);
12 : 18 : gwprwrq * q3 = gwprwrq_get(pr,fsrc);
13 : 18 : gwprwrq * q4 = gwprwrq_get(pr,fsrc);
14 : 18 : gwprdata * pdata = fsrc->pdata;
15 : :
16 : 18 : assert(pr->nwrqcache == 0);
17 [ + - ][ + - ]: 18 : assert(q1 && q2 && q3);
[ - + ]
18 : :
19 : : //testing adding some
20 : 18 : gwprwrq_add(pr,fsrc,q1);
21 : 18 : gwprwrq_add(pr,fsrc,q2);
22 [ - + ]: 18 : assert(pdata->wrq == q1);
23 [ - + ]: 18 : assert(pdata->wrq->next == q2);
24 [ - + ]: 18 : assert(pdata->wrqlast == q2);
25 : :
26 : : //assert one more add
27 : 18 : gwprwrq_add(pr,fsrc,q3);
28 [ - + ]: 18 : assert(pdata->wrqlast == q3);
29 [ - + ]: 18 : assert(pdata->wrq->next->next == q3);
30 : :
31 : : //assert posting a q back.
32 : 18 : pdata->wrq = NULL;
33 : 18 : gwprwrq_putback(pr,fsrc,q1);
34 [ - + ]: 18 : assert(pdata->wrq == q1);
35 [ - + ]: 18 : assert(pdata->wrq->next == q2);
36 [ - + ]: 18 : assert(pdata->wrqlast == q3);
37 [ - + ]: 18 : assert(pdata->wrq->next->next == q3);
38 : :
39 : : //assert putting a q back when one already existed
40 : 18 : pdata->wrq = q4;
41 : 18 : gwprwrq_putback(pr,fsrc,q1);
42 [ - + ]: 18 : assert(pdata->wrq == q1);
43 [ - + ]: 18 : assert(pdata->wrq->next == q2);
44 [ - + ]: 18 : assert(pdata->wrq->next->next == q3);
45 [ - + ]: 18 : assert(pdata->wrq->next->next->next == q4);
46 [ - + ]: 18 : assert(pdata->wrqlast == q4);
47 : :
48 : : //assert free/cache
49 : 18 : pdata->wrq = NULL;
50 : 18 : gwprwrq_free(pr,fsrc,q1);
51 [ - + ]: 18 : assert(pr->nwrqcache == 1);
52 [ - + ]: 18 : assert(pr->wrqcache == q1);
53 [ - + ]: 18 : assert(pr->wrqcache->next == NULL);
54 [ - + ]: 18 : assert(q1->next == NULL);
55 : :
56 : 18 : gwprwrq_free(pr,fsrc,q2);
57 [ - + ]: 18 : assert(pr->nwrqcache == 2);
58 [ - + ]: 18 : assert(pr->wrqcache == q2);
59 [ - + ]: 18 : assert(pr->wrqcache->next == q1);
60 [ - + ]: 18 : assert(pr->wrqcache->next->next == NULL);
61 : :
62 : 18 : gwprwrq_free(pr,fsrc,q3);
63 [ - + ]: 18 : assert(pr->nwrqcache == 3);
64 [ - + ]: 18 : assert(pr->wrqcache == q3);
65 [ - + ]: 18 : assert(pr->wrqcache->next == q2);
66 [ - + ]: 18 : assert(pr->wrqcache->next->next == q1);
67 [ - + ]: 18 : assert(pr->wrqcache->next->next->next == NULL);
68 : :
69 : 18 : return 0;
70 : : }
|