From 882ee8cba27905c036f19e1828fb642a14c72e86 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Fri, 26 Apr 2024 08:32:52 -0400 Subject: [PATCH] Starting on test suite, fixing some bugs found via it --- .gitignore | 1 + src/AMOSPro_BSDSocket.Lib | Bin 6160 -> 6188 bytes src/BSDSocket.s | 31 +++++++++++++++++++++---------- src/BSDSocket_Labels.s | 2 +- src/BSDSocket_Size.s | 2 +- test/TestSuite.amos | Bin 0 -> 4378 bytes 6 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 test/TestSuite.amos diff --git a/.gitignore b/.gitignore index 1b25989..afe86f5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ stuff/ patches/ .vamosrc activate +test/report.txt diff --git a/src/AMOSPro_BSDSocket.Lib b/src/AMOSPro_BSDSocket.Lib index bd44a6760c730b9bacf0cd0206b32071f11aac1c..781ff6cb98dc50b0a95c38a3841de4569127688c 100644 GIT binary patch delta 110 zcmbPWu*P75m;oCT0|WC*1_lt#;0I(2F))Z&0ofr842}Ut28?qVm>AR;*co_$BE}51 z6Wxp%D>hdBVG~JXU=Z@T&(Gm=pOZtu=KufypZrQUm$3^mvN=^UFfcM~?%^J|7>NJ? delta 79 zcmZ2uFu`Dgm;vi=1_tJr3=ANe!4Jq5Vqg%F1F}OH7#stP3>fD!Ffphxuru&5crh3= fSWR>@W-Q-W^@nY97rPMS=0zMbyqgb*<}d*OeB=>L diff --git a/src/BSDSocket.s b/src/BSDSocket.s index 45d4229..49f4e5a 100644 --- a/src/BSDSocket.s +++ b/src/BSDSocket.s @@ -512,7 +512,7 @@ _SocketLibraryOpen_Finish: ; ; Turn an IP address and port into a sockaddr_in strucure ; -; d0 - 0 on success, -1 on failure +; d0 - address of sockaddr_in on success, -1 on failure ; - - - - - - - - Lib_Def SocketIPAddressPortToSockaddr @@ -537,6 +537,15 @@ _ToSockaddr_PortOK: MOVE.L D1,A1 ; ip string address MOVE.W (A1)+,D3 ; string length + BNE _ToSockaddr_StringHasLength + MOVEM.L (SP)+,A0-A3/D3 + MOVEM.L (SP)+,A0/A3/D3 + + MOVE.L #-14,D0 + RTS + +_ToSockaddr_StringHasLength: + ; temporarily store a null-terminated copy of the ip string in A0 MOVE.L A0,A2 SUBQ #1,D3 ; DBRA loop runs D3 + 1 times @@ -656,7 +665,6 @@ _SocketCreateInetSocket_Done: Ret_Int _SocketConnect_LibraryOpen: - MOVE.L D0,-(SP) ; socket id onto stack Rbsr L_SocketIPAddressPortToSockaddr @@ -674,6 +682,8 @@ _SocketConnect_SockaddrIn: MOVE.L D0,A0 MOVE.L (SP)+,D0 + CLR.W $100 + MOVE.L D0,-(SP) MOVEM.L A0/A3,-(SP) Dload A3 @@ -1946,24 +1956,25 @@ _SocketReuseAddr_LibraryOpen: _DnsGetHostAddressByName_LibraryOpen: ; string so you need demande, hichaine, and chvide MOVE.L D3,A0 ; name + MOVEQ #0,D0 MOVE.W (A0)+,D0 ; d0 contains length MOVE.L D0,D1 ; d1 also has length MOVE.L D0,D2 ; d2 also has length Rjsr L_RamFast ; d0 contains address - BNE .StringRamAllocated + BNE _DnsGetHostAddressByName_StringRamAllocated MOVE.L ChVide(A5),D3 RestoreStackFunction Ret_String -.StringRamAllocated: +_DnsGetHostAddressByName_StringRamAllocated: MOVE.L D0,A1 ; a1 contains address SUBQ #1,D1 ; reduce by one for DBRA -.KeepCopyingAMOSString +_DnsGetHostAddressByName_KeepCopyingAMOSString MOVE.B (A0)+,(A1)+ ; byte copy - DBRA D1,.KeepCopyingAMOSString ; keep copying + DBRA D1,_DnsGetHostAddressByName_KeepCopyingAMOSString ; keep copying MOVE.B #0,(A1)+ ; null terminate string MOVE.L D0,A0 ; first param of gethostbyname @@ -1982,14 +1993,14 @@ _DnsGetHostAddressByName_LibraryOpen: MOVE.L (SP)+,D0 TST.L D0 - BNE .GetIPAddress + BNE _DnsGetHostAddressByName_GetIPAddress RestoreStackFunction MOVE.L ChVide(A5),D3 Ret_String -.GetIPAddress: +_DnsGetHostAddressByName_GetIPAddress: MOVE.L D0,A0 MOVE.L 16(A0),A1 ; **h_addr_list MOVE.L (A1),A1 ; *h_addr_list @@ -2156,7 +2167,7 @@ _SocketCloseSocket_LibraryOpen: EndDataStorage TST.L D0 - BEQ .success + BEQ _SocketHerrno_success ; failed MOVE.L #-1,D3 @@ -2164,7 +2175,7 @@ _SocketCloseSocket_LibraryOpen: RestoreStackFunction Ret_Int -.success +_SocketHerrno_success: MOVE.L (A1),D3 RestoreStackFunction diff --git a/src/BSDSocket_Labels.s b/src/BSDSocket_Labels.s index 0e40485..5e81b7d 100644 --- a/src/BSDSocket_Labels.s +++ b/src/BSDSocket_Labels.s @@ -1,5 +1,5 @@ ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -; BSDSocket.s, list of the library functions on the 25-04-2024 17:02:36 +; BSDSocket.s, list of the library functions on the 26-04-2024 08:23:46 ; ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ L_Cold: set 0 diff --git a/src/BSDSocket_Size.s b/src/BSDSocket_Size.s index f60a36d..f3e9d7f 100644 --- a/src/BSDSocket_Size.s +++ b/src/BSDSocket_Size.s @@ -1,5 +1,5 @@ ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -; BSDSocket.s, library size on the 25-04-2024 17:02:36 +; BSDSocket.s, library size on the 26-04-2024 08:23:46 ; ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lib_Size equ 39 diff --git a/test/TestSuite.amos b/test/TestSuite.amos new file mode 100644 index 0000000000000000000000000000000000000000..521803a83a2196e7db11252011999473aa2d1ed1 GIT binary patch literal 4378 zcmb_f&vO(-6n--qHZfU92r(`oRD)qrO4m|67>hz#B1)A8ir_`Dwq|#Fvjej|Tk~Uq zDh?bxdhp=EGY8AE{2MIFBjwoxe}gwqp4RVm&u)_4oq-?}Nw#LXUw`j=-~0OQr7y2- ziMkv6Ezy7P{0D;QFs)dn8ze-1YeQ^>tvfOipWaKPiv3WDn=($sR_Z5`$l-PPcbflR zz#2SiJ}zkG;>?;5`HEqKXRS*_C z4?S$Sp4UjihDnva)A8)CjAM5jw0;kC4xW{k>=C*+i9iDZUlmd4xMN=cKxAN(&rdmT zq93U=_-7)gCqq`w&gMp)e%fQi`*%;K*@?{H(OLUp)uv>IGcAS{s_xV+_-bG?F zv-VS>S;xLIJdfxMbF@5XH^MaOrHSFj`i2HTJ(au1;LiS5==U_Y!#Axs&TU{H>{XMl z>8|)h^N!QsdnR&npxgHax+9IGfL5jOW6?vk66pyvOx%j3R3ZsQ%S~Dx(Td!-BV**` zl%L?YHS>efNk!{~Ylwu6PMUJtS3?aLojA5~yOK3>9Qlt|XR`YA0O~-rY@gXRsS&K1 z+zY0%e%e8~WKeFh+&FIeVM8i!gmHiIN6OrZzhYJX)N%K8Hfm9&dDAbo1f8t=^O!}; zgTK&E<2+UANM>AL_|3?T?u%uSvrjB9Q6n&sxOZVhF<9MP z9x&3^IpW`wU47su?uco7(LEd;1TOI2KgK!aH%BaV*U!`UkNTa?I@8YvTkkYuFV^l| z%b*JtCc^E*QQc-B--c#AZLM&0$PtJZINAi7gO2?RRR+JoSK7Yv<4z+s_7ClHS2EfH zRu?wH6vv5hSb-zVXk~>OO5V+9^<*)tIr|N>`K;!@;Ve$%YvX99r^}Ia6Dh7LT#DwA zX0FURoh*?dJk!QUM6VTRG1^gx8!9}Wk8CwVwgp6+p=t)GIbRj1Cz#Ibj{{fSAU1am zYFDDQ5}E5Y!~RrjcL(3C<g zQQyoQaPm0edbh&}g9#=d9$|L+h2u>0OR>h-Q?z4D_pQo?ip6Ir(>-tLQD~0!*VJ)1qZNF!9U_XKm;3esYUff?Wtp&!Cm{2D&q<`3;uMrkc}y|xR(@$iedBD0phD|IX)UGFI#IXsQe&fyJw73BO1 z zvHtP?y(UN1sKZKr9p;*WtL_ND$9ci~p9g6bAsHpn^_PjVp!eo|)yEe*FT?o;~~i0QUUi|gy_wOv2sxDf@j#@KhHY?>OyM~?YQ2MOBar)y`y_@qE5y*aMc z@>`-Eg$$(!NgJ4JdMp{+~Eat@k-V=!@2l!5Mm4flSQ+FS;VUj xSbFLenR=%=dX;9k(pC#2azW2OV`eO8Gh=Ir?q!{u&u7UxS{{Dexzw!#{D0)S*b4vv literal 0 HcmV?d00001