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">
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 API</title>
7 <title>CMSIS-Driver Validation: Socket API</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);
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); });
25 <link href="stylsheetf" rel="stylesheet" type="text/css" />
28 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
30 <table cellspacing="0" cellpadding="0">
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  <span id="projectnumber">Version 3.0.0</span>
38 <div id="projectbrief">Driver Validation</div>
44 <!-- end header part -->
45 <div id="DRVnav" class="tabs1">
47 <script type="text/javascript">
49 writeComponentTabs.call(this);
54 <!-- Generated by Doxygen 1.8.6 -->
55 <script type="text/javascript">
56 var searchBox = new SearchBox("searchBox", "search",false,'Search');
58 <div id="navrow1" class="tabs">
60 <li><a href="index.html"><span>Main Page</span></a></li>
61 <li><a href="pages.html"><span>Usage and Description</span></a></li>
62 <li><a href="modules.html"><span>Reference</span></a></li>
64 <div id="MSearchBox" class="MSearchBoxInactive">
66 <img id="MSearchSelect" src="search/mag_sel.png"
67 onmouseover="return searchBox.OnSearchSelectShow()"
68 onmouseout="return searchBox.OnSearchSelectHide()"
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>
82 <div id="side-nav" class="ui-resizable side-nav-resizable">
84 <div id="nav-tree-contents">
85 <div id="nav-sync" class="sync"></div>
88 <div id="splitbar" style="-moz-user-select:none;"
89 class="ui-resizable-handle">
92 <script type="text/javascript">
93 $(document).ready(function(){initNavTree('group__wifi__sock__api.html','');});
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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Pages</a></div>
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">
111 <div class="summary">
112 <a href="#func-members">Functions</a> </div>
113 <div class="headertitle">
114 <div class="title">Socket API<div class="ingroups"><a class="el" href="group__wifi__tests.html">Tests</a></div></div> </div>
116 <div class="contents">
117 <table class="memberdecls">
118 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
119 Functions</h2></td></tr>
120 <tr class="memitem:ga834712f8877f775e1f0f6e50960d72d9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga834712f8877f775e1f0f6e50960d72d9">WIFI_SocketCreate</a> (void)</td></tr>
121 <tr class="memdesc:ga834712f8877f775e1f0f6e50960d72d9"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketCreate. <a href="#ga834712f8877f775e1f0f6e50960d72d9">More...</a><br/></td></tr>
122 <tr class="separator:ga834712f8877f775e1f0f6e50960d72d9"><td class="memSeparator" colspan="2"> </td></tr>
123 <tr class="memitem:ga67a1bb12d358a227080e43629ee911c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga67a1bb12d358a227080e43629ee911c3">WIFI_SocketBind</a> (void)</td></tr>
124 <tr class="memdesc:ga67a1bb12d358a227080e43629ee911c3"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketBind. <a href="#ga67a1bb12d358a227080e43629ee911c3">More...</a><br/></td></tr>
125 <tr class="separator:ga67a1bb12d358a227080e43629ee911c3"><td class="memSeparator" colspan="2"> </td></tr>
126 <tr class="memitem:ga49b46f7f6a66857c1dc15b12ed179264"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga49b46f7f6a66857c1dc15b12ed179264">WIFI_SocketListen</a> (void)</td></tr>
127 <tr class="memdesc:ga49b46f7f6a66857c1dc15b12ed179264"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketListen. <a href="#ga49b46f7f6a66857c1dc15b12ed179264">More...</a><br/></td></tr>
128 <tr class="separator:ga49b46f7f6a66857c1dc15b12ed179264"><td class="memSeparator" colspan="2"> </td></tr>
129 <tr class="memitem:gaa29a391c5c63e0d9be6dfc250f29a610"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaa29a391c5c63e0d9be6dfc250f29a610">WIFI_SocketAccept</a> (void)</td></tr>
130 <tr class="memdesc:gaa29a391c5c63e0d9be6dfc250f29a610"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketAccept. <a href="#gaa29a391c5c63e0d9be6dfc250f29a610">More...</a><br/></td></tr>
131 <tr class="separator:gaa29a391c5c63e0d9be6dfc250f29a610"><td class="memSeparator" colspan="2"> </td></tr>
132 <tr class="memitem:ga91f955fe6e534aad596eb900cd2c57d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga91f955fe6e534aad596eb900cd2c57d7">WIFI_SocketAccept_nbio</a> (void)</td></tr>
133 <tr class="memdesc:ga91f955fe6e534aad596eb900cd2c57d7"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketAccept_nbio. <a href="#ga91f955fe6e534aad596eb900cd2c57d7">More...</a><br/></td></tr>
134 <tr class="separator:ga91f955fe6e534aad596eb900cd2c57d7"><td class="memSeparator" colspan="2"> </td></tr>
135 <tr class="memitem:ga9e97e01035766895d1c8328f0b3919da"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga9e97e01035766895d1c8328f0b3919da">WIFI_SocketConnect</a> (void)</td></tr>
136 <tr class="memdesc:ga9e97e01035766895d1c8328f0b3919da"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketConnect. <a href="#ga9e97e01035766895d1c8328f0b3919da">More...</a><br/></td></tr>
137 <tr class="separator:ga9e97e01035766895d1c8328f0b3919da"><td class="memSeparator" colspan="2"> </td></tr>
138 <tr class="memitem:gaecb05d7d0871ef157b8de81367ea8451"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaecb05d7d0871ef157b8de81367ea8451">WIFI_SocketConnect_nbio</a> (void)</td></tr>
139 <tr class="memdesc:gaecb05d7d0871ef157b8de81367ea8451"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketConnect_nbio. <a href="#gaecb05d7d0871ef157b8de81367ea8451">More...</a><br/></td></tr>
140 <tr class="separator:gaecb05d7d0871ef157b8de81367ea8451"><td class="memSeparator" colspan="2"> </td></tr>
141 <tr class="memitem:gaa80eb04e62ae8883e9feace380ef85b2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaa80eb04e62ae8883e9feace380ef85b2">WIFI_SocketRecv</a> (void)</td></tr>
142 <tr class="memdesc:gaa80eb04e62ae8883e9feace380ef85b2"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketRecv. <a href="#gaa80eb04e62ae8883e9feace380ef85b2">More...</a><br/></td></tr>
143 <tr class="separator:gaa80eb04e62ae8883e9feace380ef85b2"><td class="memSeparator" colspan="2"> </td></tr>
144 <tr class="memitem:ga7c87e23d2ccc67b8b4b1bd030a045786"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga7c87e23d2ccc67b8b4b1bd030a045786">WIFI_SocketRecv_nbio</a> (void)</td></tr>
145 <tr class="memdesc:ga7c87e23d2ccc67b8b4b1bd030a045786"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketRecv_nbio. <a href="#ga7c87e23d2ccc67b8b4b1bd030a045786">More...</a><br/></td></tr>
146 <tr class="separator:ga7c87e23d2ccc67b8b4b1bd030a045786"><td class="memSeparator" colspan="2"> </td></tr>
147 <tr class="memitem:ga5b92075e23383e2cdfc08ba17b7930a1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga5b92075e23383e2cdfc08ba17b7930a1">WIFI_SocketRecvFrom</a> (void)</td></tr>
148 <tr class="memdesc:ga5b92075e23383e2cdfc08ba17b7930a1"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketRecvFrom. <a href="#ga5b92075e23383e2cdfc08ba17b7930a1">More...</a><br/></td></tr>
149 <tr class="separator:ga5b92075e23383e2cdfc08ba17b7930a1"><td class="memSeparator" colspan="2"> </td></tr>
150 <tr class="memitem:ga8f424c25922c68811f81b90d5b670af5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga8f424c25922c68811f81b90d5b670af5">WIFI_SocketRecvFrom_nbio</a> (void)</td></tr>
151 <tr class="memdesc:ga8f424c25922c68811f81b90d5b670af5"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketRecvFrom_nbio. <a href="#ga8f424c25922c68811f81b90d5b670af5">More...</a><br/></td></tr>
152 <tr class="separator:ga8f424c25922c68811f81b90d5b670af5"><td class="memSeparator" colspan="2"> </td></tr>
153 <tr class="memitem:gab3a6004025b524ac7564276397bf5d5e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gab3a6004025b524ac7564276397bf5d5e">WIFI_SocketSend</a> (void)</td></tr>
154 <tr class="memdesc:gab3a6004025b524ac7564276397bf5d5e"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketSend. <a href="#gab3a6004025b524ac7564276397bf5d5e">More...</a><br/></td></tr>
155 <tr class="separator:gab3a6004025b524ac7564276397bf5d5e"><td class="memSeparator" colspan="2"> </td></tr>
156 <tr class="memitem:gaffb006e3899ba780c3781af90bc1b009"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaffb006e3899ba780c3781af90bc1b009">WIFI_SocketSendTo</a> (void)</td></tr>
157 <tr class="memdesc:gaffb006e3899ba780c3781af90bc1b009"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketSendTo. <a href="#gaffb006e3899ba780c3781af90bc1b009">More...</a><br/></td></tr>
158 <tr class="separator:gaffb006e3899ba780c3781af90bc1b009"><td class="memSeparator" colspan="2"> </td></tr>
159 <tr class="memitem:ga94647417555c347e127d5dd35a3b00c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga94647417555c347e127d5dd35a3b00c9">WIFI_SocketGetSockName</a> (void)</td></tr>
160 <tr class="memdesc:ga94647417555c347e127d5dd35a3b00c9"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketGetSockName. <a href="#ga94647417555c347e127d5dd35a3b00c9">More...</a><br/></td></tr>
161 <tr class="separator:ga94647417555c347e127d5dd35a3b00c9"><td class="memSeparator" colspan="2"> </td></tr>
162 <tr class="memitem:ga57a2dee261a673a4ee30180613869423"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga57a2dee261a673a4ee30180613869423">WIFI_SocketGetPeerName</a> (void)</td></tr>
163 <tr class="memdesc:ga57a2dee261a673a4ee30180613869423"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketGetPeerName. <a href="#ga57a2dee261a673a4ee30180613869423">More...</a><br/></td></tr>
164 <tr class="separator:ga57a2dee261a673a4ee30180613869423"><td class="memSeparator" colspan="2"> </td></tr>
165 <tr class="memitem:ga265967d39cd19c584c2c88a593c19c86"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga265967d39cd19c584c2c88a593c19c86">WIFI_SocketGetOpt</a> (void)</td></tr>
166 <tr class="memdesc:ga265967d39cd19c584c2c88a593c19c86"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketGetOpt. <a href="#ga265967d39cd19c584c2c88a593c19c86">More...</a><br/></td></tr>
167 <tr class="separator:ga265967d39cd19c584c2c88a593c19c86"><td class="memSeparator" colspan="2"> </td></tr>
168 <tr class="memitem:ga92055f19013c830b2b793c601226d1ea"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga92055f19013c830b2b793c601226d1ea">WIFI_SocketSetOpt</a> (void)</td></tr>
169 <tr class="memdesc:ga92055f19013c830b2b793c601226d1ea"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketSetOpt. <a href="#ga92055f19013c830b2b793c601226d1ea">More...</a><br/></td></tr>
170 <tr class="separator:ga92055f19013c830b2b793c601226d1ea"><td class="memSeparator" colspan="2"> </td></tr>
171 <tr class="memitem:ga365ef23d0c1980535863639bec4be080"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga365ef23d0c1980535863639bec4be080">WIFI_SocketClose</a> (void)</td></tr>
172 <tr class="memdesc:ga365ef23d0c1980535863639bec4be080"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketClose. <a href="#ga365ef23d0c1980535863639bec4be080">More...</a><br/></td></tr>
173 <tr class="separator:ga365ef23d0c1980535863639bec4be080"><td class="memSeparator" colspan="2"> </td></tr>
174 <tr class="memitem:gac7bb0143c5d023b3ca97ff8f480c9f8a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gac7bb0143c5d023b3ca97ff8f480c9f8a">WIFI_SocketGetHostByName</a> (void)</td></tr>
175 <tr class="memdesc:gac7bb0143c5d023b3ca97ff8f480c9f8a"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_SocketGetHostByName. <a href="#gac7bb0143c5d023b3ca97ff8f480c9f8a">More...</a><br/></td></tr>
176 <tr class="separator:gac7bb0143c5d023b3ca97ff8f480c9f8a"><td class="memSeparator" colspan="2"> </td></tr>
177 <tr class="memitem:gad37acd8194b984b4c25c88b0c05c2f03"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gad37acd8194b984b4c25c88b0c05c2f03">WIFI_Ping</a> (void)</td></tr>
178 <tr class="memdesc:gad37acd8194b984b4c25c88b0c05c2f03"><td class="mdescLeft"> </td><td class="mdescRight">Function: WIFI_Ping. <a href="#gad37acd8194b984b4c25c88b0c05c2f03">More...</a><br/></td></tr>
179 <tr class="separator:gad37acd8194b984b4c25c88b0c05c2f03"><td class="memSeparator" colspan="2"> </td></tr>
181 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
182 <p>These tests verify API and operation of the WiFi socket functions. </p>
183 <h2 class="groupheader">Function Documentation</h2>
184 <a class="anchor" id="ga834712f8877f775e1f0f6e50960d72d9"></a>
185 <div class="memitem">
186 <div class="memproto">
187 <table class="memname">
189 <td class="memname">void WIFI_SocketCreate </td>
191 <td class="paramtype">void </td>
192 <td class="paramname"></td><td>)</td>
196 </div><div class="memdoc">
197 <p>The test function <b>WIFI_SocketCreate</b> verifies the WiFi Driver <b>SocketCreate</b> function: </p>
198 <div class="fragment"><div class="line">int32_t (*SocketCreate) (int32_t af, int32_t type, int32_t protocol);</div>
199 </div><!-- fragment --><p>Create socket test:</p>
201 <li>Check function parameters</li>
202 <li>Create multiple stream sockets</li>
203 <li>Gradually close stream sockets and create datagram sockets</li>
204 <li>Close datagram sockets </li>
209 <a class="anchor" id="ga67a1bb12d358a227080e43629ee911c3"></a>
210 <div class="memitem">
211 <div class="memproto">
212 <table class="memname">
214 <td class="memname">void WIFI_SocketBind </td>
216 <td class="paramtype">void </td>
217 <td class="paramname"></td><td>)</td>
221 </div><div class="memdoc">
222 <p>The test function <b>WIFI_SocketBind</b> verifies the WiFi Driver <b>SocketBind</b> function: </p>
223 <div class="fragment"><div class="line">int32_t (*SocketBind) (int32_t socket, <span class="keyword">const</span> uint8_t *ip, uint32_t ip_len, uint16_t port);</div>
224 </div><!-- fragment --><p>Stream socket test:</p>
226 <li>Create stream socket</li>
227 <li>Check function parameters</li>
228 <li>Bind stream socket</li>
229 <li>Bind socket second time</li>
230 <li>Create 2nd stream socket</li>
231 <li>Bind 2nd socket, used port</li>
232 <li>Bind 2nd socket, unused port</li>
233 <li>Close stream sockets</li>
234 <li>Bind closed socket</li>
236 <p>Datagram socket test:</p>
238 <li>Create datagram socket</li>
239 <li>Bind datagram socket</li>
240 <li>Bind socket second time</li>
241 <li>Create 2nd datagram socket</li>
242 <li>Bind 2nd socket, used port</li>
243 <li>Bind 2nd socket, unused port</li>
244 <li>Close datagram socket</li>
245 <li>Bind closed socket </li>
250 <a class="anchor" id="ga49b46f7f6a66857c1dc15b12ed179264"></a>
251 <div class="memitem">
252 <div class="memproto">
253 <table class="memname">
255 <td class="memname">void WIFI_SocketListen </td>
257 <td class="paramtype">void </td>
258 <td class="paramname"></td><td>)</td>
262 </div><div class="memdoc">
263 <p>The test function <b>WIFI_SocketListen</b> verifies the WiFi Driver <b>SocketListen</b> function: </p>
264 <div class="fragment"><div class="line">int32_t (*SocketListen) (int32_t socket, int32_t backlog);</div>
265 </div><!-- fragment --><p>Stream socket test 1:</p>
267 <li>Create stream socket</li>
269 <li>Check function parameters</li>
270 <li>Start listening</li>
271 <li>Start listening 2nd time</li>
272 <li>Close socket</li>
274 <p>Stream socket test 2:</p>
276 <li>Create stream socket</li>
277 <li>Start listening, unbound socket</li>
278 <li>Close socket</li>
279 <li>Start listening, closed socket</li>
281 <p>Datagram socket test:</p>
283 <li>Create datagram socket</li>
285 <li>Start listening</li>
286 <li>Close socket </li>
291 <a class="anchor" id="gaa29a391c5c63e0d9be6dfc250f29a610"></a>
292 <div class="memitem">
293 <div class="memproto">
294 <table class="memname">
296 <td class="memname">void WIFI_SocketAccept </td>
298 <td class="paramtype">void </td>
299 <td class="paramname"></td><td>)</td>
303 </div><div class="memdoc">
304 <p>The test function <b>WIFI_SocketAccept</b> verifies the WiFi Driver <b>SocketAccept</b> function: </p>
305 <div class="fragment"><div class="line">int32_t (*SocketAccept) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
306 </div><!-- fragment --><p>Stream socket test:</p>
308 <li>Create stream socket</li>
310 <li>Start listening</li>
311 <li>Check function parameters</li>
312 <li>Accept connection, NULL parameters</li>
313 <li>Receive ServerId on accepted socket</li>
314 <li>Close accepted socket</li>
315 <li>Accept connection again, return IP address and port</li>
316 <li>Receive ServerId on accepted socket</li>
317 <li>Receive again, server closed connection</li>
318 <li>Close accepted socket</li>
319 <li>Close listening socket</li>
320 <li>Accept again, closed socket</li>
322 <p>Datagram socket test:</p>
324 <li>Create datagram socket</li>
326 <li>Start listening</li>
327 <li>Accept connection, provide return parameters for IP address and port</li>
328 <li>Receive ServerId on socket</li>
329 <li>Close socket </li>
334 <a class="anchor" id="ga91f955fe6e534aad596eb900cd2c57d7"></a>
335 <div class="memitem">
336 <div class="memproto">
337 <table class="memname">
339 <td class="memname">void WIFI_SocketAccept_nbio </td>
341 <td class="paramtype">void </td>
342 <td class="paramname"></td><td>)</td>
346 </div><div class="memdoc">
347 <p>The test case <b>WIFI_SocketAccept_nbio</b> verifies the WiFi Driver <b>SocketAccept</b> function running in non-blocking mode.</p>
348 <p>Stream socket test:</p>
350 <li>Create stream socket</li>
351 <li>Set non-blocking mode</li>
353 <li>Start listening</li>
354 <li>Check function parameters</li>
355 <li>Accept connection, NULL parameters</li>
356 <li>Receive ServerId on accepted socket</li>
357 <li>Close accepted socket</li>
358 <li>Accept connection again, return IP address and port</li>
359 <li>Receive ServerId on accepted socket</li>
360 <li>Receive again, server closed connection</li>
361 <li>Close accepted socket</li>
362 <li>Close listening socket</li>
363 <li>Accept again, closed socket </li>
368 <a class="anchor" id="ga9e97e01035766895d1c8328f0b3919da"></a>
369 <div class="memitem">
370 <div class="memproto">
371 <table class="memname">
373 <td class="memname">void WIFI_SocketConnect </td>
375 <td class="paramtype">void </td>
376 <td class="paramname"></td><td>)</td>
380 </div><div class="memdoc">
381 <p>The test function <b>WIFI_SocketConnect</b> verifies the WiFi Driver <b>SocketConnect</b> function: </p>
382 <div class="fragment"><div class="line">int32_t (*SocketConnect) (int32_t socket, <span class="keyword">const</span> uint8_t *ip, uint32_t ip_len, uint16_t port);</div>
383 </div><!-- fragment --><p>Stream socket test 1:</p>
385 <li>Create stream socket</li>
386 <li>Check function parameters</li>
387 <li>Connect to server, blocking mode</li>
388 <li>Connect again, already connected</li>
389 <li>Bind connected socket</li>
390 <li>Close socket</li>
391 <li>Connect on closed socket</li>
393 <p>Stream socket test 2:</p>
395 <li>Create stream socket</li>
396 <li>Connect to server, connection rejected</li>
397 <li>Close socket</li>
399 <p>Stream socket test 3:</p>
401 <li>Create stream socket</li>
402 <li>Connect to server, non-responding or non-existent</li>
403 <li>Close socket</li>
405 <p>Stream socket test 4:</p>
407 <li>Create stream socket</li>
409 <li>Start listening</li>
410 <li>Connect to server, blocking mode</li>
411 <li>Close socket</li>
413 <p>Datagram socket test:</p>
415 <li>Create datagram socket</li>
417 <li>Check function parameters</li>
418 <li>Connect to server, enable address filtering</li>
419 <li>Connect to unspecified address, disable filtering</li>
420 <li>Close socket</li>
421 <li>Connect again, closed socket </li>
426 <a class="anchor" id="gaecb05d7d0871ef157b8de81367ea8451"></a>
427 <div class="memitem">
428 <div class="memproto">
429 <table class="memname">
431 <td class="memname">void WIFI_SocketConnect_nbio </td>
433 <td class="paramtype">void </td>
434 <td class="paramname"></td><td>)</td>
438 </div><div class="memdoc">
439 <p>The test case <b>WIFI_SocketConnect_nbio</b> verifies the WiFi Driver <b>SocketConnect</b> function running in non-blocking mode.</p>
440 <p>Stream socket test 1:</p>
442 <li>Create stream socket</li>
443 <li>Set non-blocking mode</li>
444 <li>Check function parameters</li>
445 <li>Connect to server, non-blocking mode</li>
446 <li>Connect again, already connected</li>
447 <li>Bind connected socket</li>
448 <li>Close socket</li>
449 <li>Connect on closed socket</li>
451 <p>Stream socket test 2:</p>
453 <li>Create stream socket</li>
454 <li>Set non-blocking mode</li>
455 <li>Connect to server, connection rejected</li>
456 <li>Close socket</li>
458 <p>Stream socket test 3:</p>
460 <li>Create stream socket</li>
461 <li>Set non-blocking mode</li>
462 <li>Connect to server, non-responding or non-existent</li>
463 <li>Close socket</li>
465 <p>Stream socket test 4:</p>
467 <li>Create stream socket</li>
468 <li>Set non-blocking mode</li>
470 <li>Start listening</li>
471 <li>Connect to server, non-blocking mode</li>
472 <li>Close socket </li>
477 <a class="anchor" id="gaa80eb04e62ae8883e9feace380ef85b2"></a>
478 <div class="memitem">
479 <div class="memproto">
480 <table class="memname">
482 <td class="memname">void WIFI_SocketRecv </td>
484 <td class="paramtype">void </td>
485 <td class="paramname"></td><td>)</td>
489 </div><div class="memdoc">
490 <p>Test case <b>WIFI_SocketRecv</b> verifies the WiFi Driver <b>SocketRecv</b> function: </p>
491 <div class="fragment"><div class="line">int32_t (*SocketRecv) (int32_t socket, <span class="keywordtype">void</span> *buf, uint32_t len);</div>
492 </div><!-- fragment --><p>Stream socket test 1:</p>
494 <li>Create stream socket</li>
495 <li>Connect to Chargen server</li>
496 <li>Check function parameters</li>
497 <li>Receive data in blocking mode</li>
498 <li>Close socket</li>
499 <li>Receive again, closed socket</li>
501 <p>Stream socket test 2:</p>
503 <li>Create stream socket</li>
504 <li>Receive data, created socket</li>
506 <li>Receive data, bound socket</li>
507 <li>Start listening</li>
508 <li>Receive data, listening socket</li>
509 <li>Close socket</li>
511 <p>Stream socket test 3:</p>
513 <li>Create stream socket</li>
514 <li>Connect to Discard server</li>
515 <li>Set receive timeout to 1 sec</li>
516 <li>Receive data, timeout expires</li>
517 <li>Close socket </li>
522 <a class="anchor" id="ga7c87e23d2ccc67b8b4b1bd030a045786"></a>
523 <div class="memitem">
524 <div class="memproto">
525 <table class="memname">
527 <td class="memname">void WIFI_SocketRecv_nbio </td>
529 <td class="paramtype">void </td>
530 <td class="paramname"></td><td>)</td>
534 </div><div class="memdoc">
535 <p>Test case <b>WIFI_SocketRecv_nbio</b> verifies the WiFi Driver <b>SocketRecv</b> function running in non-blocking mode.</p>
536 <p>Stream socket test 1:</p>
538 <li>Create stream socket</li>
539 <li>Set non-blocking mode</li>
540 <li>Connect to Chargen server</li>
541 <li>Check function parameters</li>
542 <li>Receive data in non-blocking mode</li>
543 <li>Close socket</li>
544 <li>Receive again, closed socket</li>
546 <p>Stream socket test 2:</p>
548 <li>Create stream socket</li>
549 <li>Set non-blocking mode</li>
550 <li>Receive data, created socket</li>
552 <li>Receive data, bound socket</li>
553 <li>Start listening</li>
554 <li>Receive data, listening socket</li>
555 <li>Close socket</li>
557 <p>Stream socket test 3:</p>
559 <li>Create stream socket</li>
560 <li>Set non-blocking mode</li>
561 <li>Connect to Discard server</li>
562 <li>Receive data for 1 sec, timeout expires</li>
563 <li>Close socket </li>
568 <a class="anchor" id="ga5b92075e23383e2cdfc08ba17b7930a1"></a>
569 <div class="memitem">
570 <div class="memproto">
571 <table class="memname">
573 <td class="memname">void WIFI_SocketRecvFrom </td>
575 <td class="paramtype">void </td>
576 <td class="paramname"></td><td>)</td>
580 </div><div class="memdoc">
581 <p>The test function <b>WIFI_SocketRecvFrom</b> verifies the WiFi Driver <b>SocketRecvFrom</b> function: </p>
582 <div class="fragment"><div class="line">int32_t (*SocketRecvFrom) (int32_t socket, <span class="keywordtype">void</span> *buf, uint32_t len, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
583 </div><!-- fragment --><p>Datagram socket test 1:</p>
585 <li>Create datagram socket</li>
586 <li>Connect to Chargen server</li>
587 <li>Check function parameters</li>
588 <li>Receive data in blocking mode</li>
589 <li>Set receive timeout to 1 sec</li>
590 <li>Receive again, timeout expires</li>
591 <li>Close socket</li>
592 <li>Receive again, closed socket </li>
597 <a class="anchor" id="ga8f424c25922c68811f81b90d5b670af5"></a>
598 <div class="memitem">
599 <div class="memproto">
600 <table class="memname">
602 <td class="memname">void WIFI_SocketRecvFrom_nbio </td>
604 <td class="paramtype">void </td>
605 <td class="paramname"></td><td>)</td>
609 </div><div class="memdoc">
610 <p>The test case <b>WIFI_SocketRecvFrom_nbio</b> verifies the WiFi Driver <b>SocketRecvFrom</b> function running in non-blocking mode.</p>
611 <p>Datagram socket test 1:</p>
613 <li>Create datagram socket</li>
614 <li>Set non-blocking mode</li>
615 <li>Connect to Chargen server</li>
616 <li>Check function parameters</li>
617 <li>Receive data in non-blocking mode</li>
618 <li>Receive again, timeout expires</li>
619 <li>Close socket</li>
620 <li>Receive again, closed socket </li>
625 <a class="anchor" id="gab3a6004025b524ac7564276397bf5d5e"></a>
626 <div class="memitem">
627 <div class="memproto">
628 <table class="memname">
630 <td class="memname">void WIFI_SocketSend </td>
632 <td class="paramtype">void </td>
633 <td class="paramname"></td><td>)</td>
637 </div><div class="memdoc">
638 <p>The test function <b>WIFI_SocketSend</b> verifies the WiFi Driver <b>SocketSend</b> function: </p>
639 <div class="fragment"><div class="line">int32_t (*SocketSend) (int32_t socket, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, uint32_t len);</div>
640 </div><!-- fragment --><p>Stream socket test 1:</p>
642 <li>Create stream socket</li>
643 <li>Connect to server, blocking mode</li>
644 <li>Check function parameters</li>
645 <li>Send data, blocking mode</li>
646 <li>Close socket</li>
647 <li>Send again, closed socket</li>
649 <p>Stream socket test 2:</p>
651 <li>Create stream socket</li>
652 <li>Connect to server, blocking mode</li>
653 <li>Send ESC data, server disconnects</li>
654 <li>Send again, disconnected socket</li>
655 <li>Close socket</li>
657 <p>Stream socket test 3:</p>
659 <li>Create stream socket</li>
660 <li>Send data, created socket</li>
662 <li>Send data, bound socket</li>
663 <li>Start listening</li>
664 <li>Send data, listening socket</li>
665 <li>Close socket</li>
666 <li>Send again, closed socket </li>
671 <a class="anchor" id="gaffb006e3899ba780c3781af90bc1b009"></a>
672 <div class="memitem">
673 <div class="memproto">
674 <table class="memname">
676 <td class="memname">void WIFI_SocketSendTo </td>
678 <td class="paramtype">void </td>
679 <td class="paramname"></td><td>)</td>
683 </div><div class="memdoc">
684 <p>The test function <b>WIFI_SocketSend</b> verifies the WiFi Driver <b>SocketSendTo</b> function: </p>
685 <div class="fragment"><div class="line">int32_t (*SocketSendTo) (int32_t socket, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, uint32_t len, <span class="keyword">const</span> uint8_t *ip, uint32_t ip_len, uint16_t port);</div>
686 </div><!-- fragment --><p>Datagram socket test:</p>
688 <li>Create datagram socket</li>
689 <li>Check function parameters</li>
690 <li>Send data, blocking mode</li>
691 <li>Receive echo data, verify if the same</li>
692 <li>Close socket</li>
693 <li>Send again, closed socket </li>
698 <a class="anchor" id="ga94647417555c347e127d5dd35a3b00c9"></a>
699 <div class="memitem">
700 <div class="memproto">
701 <table class="memname">
703 <td class="memname">void WIFI_SocketGetSockName </td>
705 <td class="paramtype">void </td>
706 <td class="paramname"></td><td>)</td>
710 </div><div class="memdoc">
711 <p>The test function <b>WIFI_SocketGetSockName</b> verifies the WiFi Driver <b>SocketGetSockName</b> function: </p>
712 <div class="fragment"><div class="line">int32_t (*SocketGetSockName) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
713 </div><!-- fragment --><p>Stream socket test 1:</p>
715 <li>Create stream socket</li>
716 <li>Connect to server, blocking mode</li>
717 <li>Check function parameters</li>
718 <li>Get socket name</li>
719 <li>Close socket</li>
720 <li>Get socket name again, closed socket</li>
722 <p>Stream socket test 1:</p>
724 <li>Create stream socket</li>
725 <li>Get socket name, not bound</li>
727 <li>Get socket name, bound</li>
728 <li>Close socket</li>
730 <p>Datagram socket test 1:</p>
732 <li>Create datagram socket</li>
733 <li>Connect to server, enable packet filtering</li>
734 <li>Check function parameters</li>
735 <li>Get socket name</li>
736 <li>Close socket</li>
737 <li>Get socket name again, closed socket</li>
739 <p>Datagram socket test 1:</p>
741 <li>Create datagram socket</li>
742 <li>Get socket name, not bound</li>
744 <li>Get socket name, bound</li>
745 <li>Close socket </li>
750 <a class="anchor" id="ga57a2dee261a673a4ee30180613869423"></a>
751 <div class="memitem">
752 <div class="memproto">
753 <table class="memname">
755 <td class="memname">void WIFI_SocketGetPeerName </td>
757 <td class="paramtype">void </td>
758 <td class="paramname"></td><td>)</td>
762 </div><div class="memdoc">
763 <p>The test function <b>WIFI_SocketGetPeerName</b> verifies the WiFi Driver <b>SocketGetPeerName</b> function: </p>
764 <div class="fragment"><div class="line">int32_t (*SocketGetPeerName) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
765 </div><!-- fragment --><p>Stream socket test 1:</p>
767 <li>Create stream socket</li>
768 <li>Connect to server, blocking mode</li>
769 <li>Check function parameters</li>
770 <li>Get peer name</li>
771 <li>Close socket</li>
772 <li>Get peer name, closed socket</li>
774 <p>Stream socket test 2:</p>
776 <li>Create stream socket</li>
777 <li>Get peer name, created socket</li>
779 <li>Get peer name, bound socket</li>
780 <li>Start listening</li>
781 <li>Get peer name, listening socket</li>
782 <li>Close socket</li>
784 <p>Datagram socket test:</p>
786 <li>Create datagram socket</li>
787 <li>Connect to server, enable packet filtering</li>
788 <li>Check function parameters</li>
789 <li>Get peer name</li>
790 <li>Close socket</li>
791 <li>Get peer name, closed socket </li>
796 <a class="anchor" id="ga265967d39cd19c584c2c88a593c19c86"></a>
797 <div class="memitem">
798 <div class="memproto">
799 <table class="memname">
801 <td class="memname">void WIFI_SocketGetOpt </td>
803 <td class="paramtype">void </td>
804 <td class="paramname"></td><td>)</td>
808 </div><div class="memdoc">
809 <p>The test function <b>WIFI_SocketGetOpt</b> verifies the WiFi Driver <b>SocketGetOpt</b> function: </p>
810 <div class="fragment"><div class="line">int32_t (*SocketGetOpt) (int32_t socket, int32_t opt_id, <span class="keywordtype">void</span> *opt_val, uint32_t *opt_len);</div>
811 </div><!-- fragment --><p>Stream socket test:</p>
813 <li>Create stream socket</li>
814 <li>Check function parameters</li>
815 <li>Get socket options</li>
816 <li>Close socket</li>
817 <li>Get socket options again, closed socket</li>
819 <p>Datagram socket test:</p>
821 <li>Create datagram socket</li>
822 <li>Get socket type</li>
823 <li>Close socket</li>
824 <li>Get socket type </li>
829 <a class="anchor" id="ga92055f19013c830b2b793c601226d1ea"></a>
830 <div class="memitem">
831 <div class="memproto">
832 <table class="memname">
834 <td class="memname">void WIFI_SocketSetOpt </td>
836 <td class="paramtype">void </td>
837 <td class="paramname"></td><td>)</td>
841 </div><div class="memdoc">
842 <p>The test function <b>WIFI_SocketSetOpt</b> verifies the WiFi Driver <b>SocketSetOpt</b> function: </p>
843 <div class="fragment"><div class="line">int32_t (*SocketSetOpt) (int32_t socket, int32_t opt_id, <span class="keyword">const</span> <span class="keywordtype">void</span> *opt_val, uint32_t opt_len);</div>
844 </div><!-- fragment --><p>Stream socket test:</p>
846 <li>Create stream socket</li>
847 <li>Check function parameters</li>
848 <li>Set socket options</li>
849 <li>Close socket</li>
850 <li>Set socket option again, closed socket</li>
852 <p>Datagram socket test:</p>
854 <li>Create datagram socket</li>
855 <li>Set socket options</li>
856 <li>Close socket</li>
857 <li>Set socket option again, closed socket </li>
862 <a class="anchor" id="ga365ef23d0c1980535863639bec4be080"></a>
863 <div class="memitem">
864 <div class="memproto">
865 <table class="memname">
867 <td class="memname">void WIFI_SocketClose </td>
869 <td class="paramtype">void </td>
870 <td class="paramname"></td><td>)</td>
874 </div><div class="memdoc">
875 <p>The test function <b>WIFI_SocketClose</b> verifies the WiFi Driver <b>SocketClose</b> function: </p>
876 <div class="fragment"><div class="line">int32_t (*SocketClose) (int32_t socket);</div>
877 </div><!-- fragment --><p>Stream socket test 1:</p>
879 <li>Create stream socket</li>
881 <li>Connect to server</li>
882 <li>Check function parameters</li>
883 <li>Close socket</li>
884 <li>Close socket again</li>
886 <p>Stream socket test 2:</p>
888 <li>Create stream socket</li>
890 <li>Start listening</li>
891 <li>Close socket</li>
892 <li>Close socket again</li>
894 <p>Datagram socket test:</p>
896 <li>Create datagram socket</li>
898 <li>Check function parameters</li>
899 <li>Close socket</li>
900 <li>Close socket again </li>
905 <a class="anchor" id="gac7bb0143c5d023b3ca97ff8f480c9f8a"></a>
906 <div class="memitem">
907 <div class="memproto">
908 <table class="memname">
910 <td class="memname">void WIFI_SocketGetHostByName </td>
912 <td class="paramtype">void </td>
913 <td class="paramname"></td><td>)</td>
917 </div><div class="memdoc">
918 <p>The test function <b>WIFI_SocketGetHostByName</b> the WiFi Driver <b>SocketGetHostByName</b> function: </p>
919 <div class="fragment"><div class="line">int32_t (*SocketGetHostByName) (<span class="keyword">const</span> <span class="keywordtype">char</span> *name, int32_t af, uint8_t *ip, uint32_t *ip_len);</div>
920 </div><!-- fragment --><p>Function test:</p>
922 <li>Check function parameters</li>
923 <li>Resolve host</li>
924 <li>Resolve non-existent host</li>
926 <dl class="section note"><dt>Note</dt><dd>This test requires internet connectivity to DNS server. </dd></dl>
930 <a class="anchor" id="gad37acd8194b984b4c25c88b0c05c2f03"></a>
931 <div class="memitem">
932 <div class="memproto">
933 <table class="memname">
935 <td class="memname">void WIFI_Ping </td>
937 <td class="paramtype">void </td>
938 <td class="paramname"></td><td>)</td>
942 </div><div class="memdoc">
943 <p>The test function <b>WIFI_Ping</b> verifies the WiFi Driver <b>Ping</b> function: </p>
944 <div class="fragment"><div class="line">int32_t (*Ping) (<span class="keyword">const</span> uint8_t *ip, uint32_t ip_len);</div>
945 </div><!-- fragment --><p>Function test:</p>
947 <li>Check function parameters</li>
953 </div><!-- contents -->
954 </div><!-- doc-content -->
955 <!-- start footer part -->
956 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
958 <li class="footer">Generated on Fri Jul 15 2022 08:42:09 for CMSIS-Driver Validation by ARM Ltd. All rights reserved.
960 <a href="http://www.doxygen.org/index.html">
961 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6