LCOV - code coverage report
Current view: top level - test - proactor_tcp.c (source / functions) Hit Total Coverage
Test: all.info Lines: 32 32 100.0 %
Date: 2012-09-24 Functions: 5 5 100.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : 
       2                 :            : #include "gwrl/proactor.h"
       3                 :            : 
       4                 :            : gwrl * rl;
       5                 :            : gwpr * pr;
       6                 :            : gwrlsrc_file * rdsrc = NULL;
       7                 :            : gwrlsrc_file * wrsrc = NULL;
       8                 :            : int rdcount = 0;
       9                 :            : int sockets[2];
      10                 :            : 
      11                 :       1900 : void didrd(gwpr * pr, gwpr_io_info * info) {
      12                 :       1900 :         gwpr_buf_free(pr,info->buf);
      13                 :       1900 :         rdcount++;
      14                 :       1900 :         if(rdcount == 100) {
      15                 :         19 :                 gwrl_stop(rl);
      16                 :         19 :         }
      17                 :       1900 : }
      18                 :            : 
      19                 :       1919 : void didwr(gwpr * pr, gwpr_io_info * info) {
      20                 :       1919 :         gwpr_buf_free(pr,info->buf);
      21                 :       1919 : }
      22                 :            : 
      23                 :       1919 : void write_data(gwrl * rl, gwrlevt * evt) {
      24                 :       1919 :         gwprbuf * buf = gwpr_buf_get_with_data(pr,12,"hello world",12);
      25                 :       1919 :         gwpr_write(pr,wrsrc,buf);
      26                 :       1919 : }
      27                 :            : 
      28                 :         19 : void timeout(gwrl * rl, gwrlevt * evt) {
      29                 :         19 :         assert(rdcount > 0);
      30                 :         19 :         gwrl_stop(rl);
      31                 :         19 : }
      32                 :            : 
      33                 :         19 : int main(int argc, char ** argv) {
      34                 :         19 :         socketpair(AF_UNIX,SOCK_STREAM,0,sockets);
      35                 :            : 
      36                 :         19 :         rl = gwrl_create();
      37                 :         19 :         pr = gwpr_create(rl);
      38                 :            :         
      39                 :         19 :         rdsrc = gwpr_set_fd(pr,sockets[0],NULL);
      40                 :         19 :         wrsrc = gwpr_set_fd(pr,sockets[1],NULL);
      41                 :            :         
      42                 :         19 :         gwpr_set_cb(pr,wrsrc,gwpr_did_write_cb_id,&didwr);
      43                 :         19 :         gwpr_set_cb(pr,rdsrc,gwpr_did_read_cb_id,&didrd);
      44                 :         19 :         gwpr_read(pr,rdsrc,gwpr_buf_get(pr,128));
      45                 :            : 
      46                 :         19 :         gwrl_set_interval(rl,0,&write_data,NULL);
      47                 :         19 :         gwrl_set_timeout(rl,10000,false,&timeout,NULL);
      48                 :         19 :         gwrl_run(rl);
      49                 :            :         
      50                 :         19 :         timeout(rl,NULL);
      51                 :            : 
      52                 :         19 :         return 0;
      53                 :            : }

Generated by: LCOV version 1.9