LCOV - code coverage report
Current view: top level - test - proactor_wrq.c (source / functions) Hit Total Coverage
Test: all.info Lines: 50 50 100.0 %
Date: 2012-09-24 Functions: 1 1 100.0 %
Branches: 30 60 50.0 %

           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                 :            : }

Generated by: LCOV version 1.9