summaryrefslogtreecommitdiffstats
path: root/tests/014/socket-misc.tl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/014/socket-misc.tl')
-rw-r--r--tests/014/socket-misc.tl12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/014/socket-misc.tl b/tests/014/socket-misc.tl
index de57e465..bd94acac 100644
--- a/tests/014/socket-misc.tl
+++ b/tests/014/socket-misc.tl
@@ -1,8 +1,20 @@
+(load "../sock-common")
(load "../common")
+(defmacro set-and-get (:env env place val)
+ (with-update-expander (getter setter) place env
+ ^(progn (,setter ,val) (,getter))))
+
(with-stream (s (open-socket af-inet (logior sock-dgram sock-nonblock)))
(test (sock-listen s) t)
(let* ((orig #S(sockaddr-in))
(addr orig))
(rotate addr (sock-peer s))
(vtest (sock-peer s) orig)))
+
+(with-stream (s (open-socket af-inet sock-stream))
+ (test (set-and-get (sock-opt s sol-socket so-reuseaddr) 1) 1)
+ (test (set-and-get (sock-opt s sol-socket so-reuseaddr (ffi int)) 0) 0)
+ (whenlet ((addr (bindfree s 1025 65535)))
+ ;; sock-bind enables so-reuseaddr.
+ (test (sock-opt s sol-socket so-reuseaddr) 1)))