Coverage report: /home/ellis/comp/core/lib/io/socket.lisp

KindCoveredAll%
expression321 14.3
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; io/socket.lisp --- IO Sockets
2
 
3
 ;; 
4
 
5
 ;;; Code:
6
 (in-package :io/socket)
7
 
8
 (defun check-timeval (buffer size)
9
   (assert (= size #.(alien-size timeval :bytes)))
10
   buffer)
11
 
12
 ;;timevals
13
 (defmacro define-socket-option-timeval (name level number &optional features (info ""))
14
   `(sb-bsd-sockets::define-socket-option ,name nil ,level ,number
15
      std/alien:timeval nil check-timeval addr ,features ,info))
16
 
17
 (define-socket-option-timeval
18
     sockopt-receive-timeout sockint::sol-socket sockint::so-rcvtimeo)
19
 
20
 (define-socket-option-timeval
21
     sockopt-send-timeout sockint::sol-socket sockint::so-sndtimeo)
22
 
23
 ;; linger
24
 (define-alien-type linger 
25
   (struct linger
26
           (onoff int) ;; Nonzero to linger on close
27
           (linger int)))  ;; Time to linger
28
 
29
 (defun check-linger (buffer size)
30
   (assert (= size #.(sb-alien:alien-size linger :bytes)))
31
   buffer)
32
 
33
 (sb-bsd-sockets::define-socket-option sockopt-linger nil sockint::sol-socket sockint::so-linger
34
   linger nil check-linger sb-alien:addr)
35
 
36
 (let ((so-reuseport 15))
37
   ;; [[file:/usr/include/asm-generic/socket.h::define SO_REUSEPORT 15][sys/socket.h]]
38
   (sb-bsd-sockets::define-socket-option-bool sockopt-reuse-port sockint::sol-socket so-reuseport))
39
 
40
 ;; ucre
41
 (define-alien-type ucre
42
     (struct ucre
43
             (pid int)
44
             (uid int)
45
             (gid int)))
46
 
47
 (defun check-ucre (buffer size)
48
   (assert (= size #.(sb-alien:alien-size ucre :bytes)))
49
   buffer)
50
 
51
 (sb-bsd-sockets::define-socket-option sockopt-peer-cred nil sockint::sol-socket sockint::so-linger
52
   ucre nil check-ucre sb-alien:addr)