]> begriffs open source - cmsis-driver-validation/blob - docs/html/group__wifi__sock__testing.html
Update documentation hosted on github
[cmsis-driver-validation] / docs / html / group__wifi__sock__testing.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <title>Socket testing</title>
7 <title>CMSIS-Driver Validation: Socket testing</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <link href="drv.css" rel="stylesheet" type="text/css" />
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <script type="text/javascript" src="printComponentTabs.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtree.js"></script>
16 <script type="text/javascript">
17   $(document).ready(initResizable);
18   $(window).load(resizeHeight);
19 </script>
20 <link href="search/search.css" rel="stylesheet" type="text/css"/>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23   $(document).ready(function() { searchBox.OnSelectItem(0); });
24 </script>
25 <link href="stylsheetf" rel="stylesheet" type="text/css" />
26 </head>
27 <body>
28 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
29 <div id="titlearea">
30 <table cellspacing="0" cellpadding="0">
31  <tbody>
32  <tr style="height: 46px;">
33   <td id="projectlogo"><img alt="Logo" src="keilarm.png"/></td>
34   <td style="padding-left: 0.5em;">
35    <div id="projectname">CMSIS-Driver Validation
36    &#160;<span id="projectnumber">Version 3.0.0</span>
37    </div>
38    <div id="projectbrief">Driver Validation</div>
39   </td>
40  </tr>
41  </tbody>
42 </table>
43 </div>
44 <!-- end header part -->
45 <div id="DRVnav" class="tabs1">
46     <ul class="tablist">
47       <script type="text/javascript">
48                 <!--
49                 writeComponentTabs.call(this);
50                 //-->
51       </script>
52           </ul>
53 </div>
54 <!-- Generated by Doxygen 1.8.6 -->
55 <script type="text/javascript">
56 var searchBox = new SearchBox("searchBox", "search",false,'Search');
57 </script>
58   <div id="navrow1" class="tabs">
59     <ul class="tablist">
60       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
61       <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
62       <li><a href="modules.html"><span>Reference</span></a></li>
63       <li>
64         <div id="MSearchBox" class="MSearchBoxInactive">
65         <span class="left">
66           <img id="MSearchSelect" src="search/mag_sel.png"
67                onmouseover="return searchBox.OnSearchSelectShow()"
68                onmouseout="return searchBox.OnSearchSelectHide()"
69                alt=""/>
70           <input type="text" id="MSearchField" value="Search" accesskey="S"
71                onfocus="searchBox.OnSearchFieldFocus(true)" 
72                onblur="searchBox.OnSearchFieldFocus(false)" 
73                onkeyup="searchBox.OnSearchFieldChange(event)"/>
74           </span><span class="right">
75             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
76           </span>
77         </div>
78       </li>
79     </ul>
80   </div>
81 </div><!-- top -->
82 <div id="side-nav" class="ui-resizable side-nav-resizable">
83   <div id="nav-tree">
84     <div id="nav-tree-contents">
85       <div id="nav-sync" class="sync"></div>
86     </div>
87   </div>
88   <div id="splitbar" style="-moz-user-select:none;" 
89        class="ui-resizable-handle">
90   </div>
91 </div>
92 <script type="text/javascript">
93 $(document).ready(function(){initNavTree('group__wifi__sock__testing.html','');});
94 </script>
95 <div id="doc-content">
96 <!-- window showing the filter options -->
97 <div id="MSearchSelectWindow"
98      onmouseover="return searchBox.OnSearchSelectShow()"
99      onmouseout="return searchBox.OnSearchSelectHide()"
100      onkeydown="return searchBox.OnSearchSelectKey(event)">
101 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
102
103 <!-- iframe showing the search results (closed by default) -->
104 <div id="MSearchResultsWindow">
105 <iframe src="javascript:void(0)" frameborder="0" 
106         name="MSearchResults" id="MSearchResults">
107 </iframe>
108 </div>
109
110 <div class="header">
111   <div class="headertitle">
112 <div class="title">Socket testing<div class="ingroups"><a class="el" href="group__dv__wifi.html">WiFi Validation</a></div></div>  </div>
113 </div><!--header-->
114 <div class="contents">
115 <p>Due to limitations of WiFi modules and their Software Development Kits (SDK), often it is not possible to comply with CMSIS-Driver BSD rules regarding function behavior or function return codes. Hence, the WiFi Driver tests accept alternative error codes and report them as Warnings and considers certain error codes as acceptable for certain functions. Exceptions to BSD-strict error codes and functionality are written below:</p>
116 <h1>WiFi socket deviations from the BSD-strict specification </h1>
117 <ol type="1">
118 <li><b>SocketBind</b> <ul>
119 <li>bind socket to same address again<br/>
120  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EINVAL</b> <br/>
121 non BSD-strict accepted return codes: <span class="XML-Token">0</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
122 <li>bind another socket to used address<br/>
123  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EADDRINUSE</b> <br/>
124 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
125 <li>bind on closed socket<br/>
126  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
127 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
128 </ul>
129 </li>
130 <li><b>SocketListen</b> <ul>
131 <li>listen on already listening socket<br/>
132  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EINVAL</b> <br/>
133 non BSD-strict accepted return codes: <span class="XML-Token">0</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
134 <li>listen on unbound socket<br/>
135  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EINVAL</b> <br/>
136 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
137 <li>listen on closed socket<br/>
138  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
139 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
140 <li>listen on datagram socket<br/>
141  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTSUP</b> <br/>
142 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
143 </ul>
144 </li>
145 <li><b>SocketAccept</b> <ul>
146 <li>receive on disconnected socket<br/>
147  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ECONNRESET</b> <br/>
148 non BSD-strict accepted return codes: <span class="XML-Token">ARM_SOCKET_EAGAIN</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
149 <li>accept on closed socket<br/>
150  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
151 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
152 <li>listen on datagram socket<br/>
153  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTSUP</b> <br/>
154 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
155 <li>accept on datagram socket<br/>
156  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTSUP</b> <br/>
157 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
158 </ul>
159 </li>
160 <li><b>SocketConnect</b> <ul>
161 <li>connect socket to same address again<br/>
162  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EISCONN</b> <br/>
163 non BSD-strict accepted return codes: <span class="XML-Token">0</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
164 <li>bind on connected socket<br/>
165  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EISCONN</b> <br/>
166 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
167 <li>connect on closed socket<br/>
168  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
169 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
170 <li>connect to non-existent port<br/>
171  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ECONNREFUSED</b> <br/>
172 non BSD-strict accepted return codes: <span class="XML-Token">ARM_SOCKET_ETIMEDOUT</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
173 <li>connect to non-existent stream server<br/>
174  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ETIMEDOUT</b> <br/>
175 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
176 <li>connect on listening socket<br/>
177  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EINVAL</b> <br/>
178 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
179 <li>connect datagram socket to unspecified address (0.0.0.0)<br/>
180  <b>BSD-strict</b> expected return code <b>0</b> <br/>
181 non BSD-strict accepted return codes: <span class="XML-Token">ARM_SOCKET_EINVAL</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span> (special case that deletes the socket destination &amp; filtering address)</li>
182 </ul>
183 </li>
184 <li><b>SocketRecv</b> <ul>
185 <li>recv on closed socket<br/>
186  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
187 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
188 <li>recv on created socket<br/>
189  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
190 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
191 <li>recv on bound socket<br/>
192  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
193 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
194 <li>recv on listening socket<br/>
195  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
196 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
197 </ul>
198 </li>
199 <li><b>SocketRecvFrom</b> <ul>
200 <li>recvfrom on closed socket<br/>
201  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
202 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
203 </ul>
204 </li>
205 <li><b>SocketSend</b> <ul>
206 <li>send on closed socket<br/>
207  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
208 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
209 <li>send on disconnected socket<br/>
210  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ECONNRESET</b> <br/>
211 non BSD-strict accepted return codes: &gt;<span class="XML-Token">0</span> or <span class="XML-Token">ARM_SOCKET_EAGAIN</span> or <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
212 <li>send on created socket<br/>
213  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
214 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
215 <li>send on bound socket<br/>
216  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
217 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
218 <li>send on listening socket<br/>
219  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
220 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
221 <li>send on closed socket<br/>
222  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
223 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
224 </ul>
225 </li>
226 <li><b>SocketSendTo</b> <ul>
227 <li>sendto on closed socket<br/>
228  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
229 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
230 </ul>
231 </li>
232 <li><b>SocketGetSockName</b> <ul>
233 <li>getsockname on closed socket<br/>
234  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
235 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
236 <li>getsockname on unbound socket<br/>
237  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EINVAL</b> <br/>
238 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
239 </ul>
240 </li>
241 <li><b>SocketGetPeerName</b> <ul>
242 <li>getpeername on closed socket<br/>
243  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
244 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
245 <li>getpeername on created socket<br/>
246  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
247 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
248 <li>getpeername on bound socket<br/>
249  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
250 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
251 <li>getpeername on listening socket<br/>
252  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ENOTCONN</b> <br/>
253 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
254 </ul>
255 </li>
256 <li><b>SocketGetOpt</b> <ul>
257 <li>getsockopt on closed socket<br/>
258  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
259 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
260 </ul>
261 </li>
262 <li><b>SocketSetOpt</b> <ul>
263 <li>setsockopt on closed socket<br/>
264  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
265 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span></li>
266 </ul>
267 </li>
268 <li><b>SocketClose</b> <ul>
269 <li>close already closed socket<br/>
270  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_ESOCK</b> <br/>
271 non BSD-strict accepted return code <span class="XML-Token">0</span></li>
272 </ul>
273 </li>
274 <li><b>SocketGetHostByName</b> <ul>
275 <li>gethostbyname for non-existing host<br/>
276  <b>BSD-strict</b> expected return code <b>ARM_SOCKET_EHOSTNOTFOUND</b> <br/>
277 non BSD-strict accepted return code <span class="XML-Token">ARM_SOCKET_ERROR</span> </li>
278 </ul>
279 </li>
280 </ol>
281 </div><!-- contents -->
282 </div><!-- doc-content -->
283 <!-- start footer part -->
284 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
285   <ul>
286     <li class="footer">Generated on Fri Jul 15 2022 08:42:09 for CMSIS-Driver Validation by ARM Ltd. All rights reserved.
287         <!--
288     <a href="http://www.doxygen.org/index.html">
289     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
290         -->
291         </li>
292   </ul>
293 </div>
294 </body>
295 </html>