]> gitweb.factorcode.org Git - factor.git/commitdiff
windows.winsock: fix the definition of SOCKET_ERROR and unit tests that
authorBjörn Lindqvist <bjourne@gmail.com>
Thu, 27 Mar 2014 17:47:18 +0000 (18:47 +0100)
committerDoug Coleman <doug.coleman@gmail.com>
Wed, 2 Apr 2014 21:50:13 +0000 (16:50 -0500)
verifies its correctness

basis/windows/winsock/winsock-tests.factor [new file with mode: 0644]
basis/windows/winsock/winsock.factor

diff --git a/basis/windows/winsock/winsock-tests.factor b/basis/windows/winsock/winsock-tests.factor
new file mode 100644 (file)
index 0000000..aff856c
--- /dev/null
@@ -0,0 +1,19 @@
+USING: kernel tools.test windows.winsock ;
+IN: windows.winsock.tests
+
+: normal-socket ( -- socket )
+    AF_INET SOCK_STREAM IPPROTO_TCP socket ;
+
+{ t f } [
+    98 97 96 socket normal-socket [ INVALID_SOCKET = ] bi@
+] unit-test
+
+{ 0 } [ normal-socket closesocket ] unit-test
+
+! Generate lots of socket errors
+{ t t t } [
+    normal-socket 99 98 "bad bad!" 3 setsockopt
+    f closesocket
+    normal-socket "hello" 5 0 send
+    [ SOCKET_ERROR = ] tri@
+] unit-test
index 3336c527430e32213608b1877cc53969a83489e7..c64e2493fd333475ded807f267741c8731e6bad9 100644 (file)
@@ -102,7 +102,7 @@ CONSTANT: INADDR_ANY 0
 
 : INVALID_SOCKET ( -- n ) -1 <alien> ; inline
 
-: SOCKET_ERROR ( -- n ) -1 <alien> ; inline
+: SOCKET_ERROR ( -- n ) -1 ; inline
 
 CONSTANT: SD_RECV 0
 CONSTANT: SD_SEND 1