MCPcopy Create free account
hub / github.com/F-Stack/f-stack / test_one_pktmbuf

Function test_one_pktmbuf

dpdk/app/test/test_mbuf.c:166–309  ·  view source on GitHub ↗

* test data manipulation in mbuf */

Source from the content-addressed store, hash-verified

164 * test data manipulation in mbuf
165 */
166static int
167test_one_pktmbuf(struct rte_mempool *pktmbuf_pool)
168{
169 struct rte_mbuf *m = NULL;
170 char *data, *data2, *hdr;
171 unsigned i;
172
173 printf("Test pktmbuf API\n");
174
175 /* alloc a mbuf */
176
177 m = rte_pktmbuf_alloc(pktmbuf_pool);
178 if (m == NULL)
179 GOTO_FAIL("Cannot allocate mbuf");
180 if (rte_pktmbuf_pkt_len(m) != 0)
181 GOTO_FAIL("Bad length");
182
183 rte_pktmbuf_dump(stdout, m, 0);
184
185 /* append data */
186
187 data = rte_pktmbuf_append(m, MBUF_TEST_DATA_LEN);
188 if (data == NULL)
189 GOTO_FAIL("Cannot append data");
190 if (rte_pktmbuf_pkt_len(m) != MBUF_TEST_DATA_LEN)
191 GOTO_FAIL("Bad pkt length");
192 if (rte_pktmbuf_data_len(m) != MBUF_TEST_DATA_LEN)
193 GOTO_FAIL("Bad data length");
194 memset(data, 0x66, rte_pktmbuf_pkt_len(m));
195 if (!rte_pktmbuf_is_contiguous(m))
196 GOTO_FAIL("Buffer should be continuous");
197 rte_pktmbuf_dump(stdout, m, MBUF_TEST_DATA_LEN);
198 rte_pktmbuf_dump(stdout, m, 2*MBUF_TEST_DATA_LEN);
199
200 /* this append should fail */
201
202 data2 = rte_pktmbuf_append(m, (uint16_t)(rte_pktmbuf_tailroom(m) + 1));
203 if (data2 != NULL)
204 GOTO_FAIL("Append should not succeed");
205
206 /* append some more data */
207
208 data2 = rte_pktmbuf_append(m, MBUF_TEST_DATA_LEN2);
209 if (data2 == NULL)
210 GOTO_FAIL("Cannot append data");
211 if (rte_pktmbuf_pkt_len(m) != MBUF_TEST_DATA_LEN + MBUF_TEST_DATA_LEN2)
212 GOTO_FAIL("Bad pkt length");
213 if (rte_pktmbuf_data_len(m) != MBUF_TEST_DATA_LEN + MBUF_TEST_DATA_LEN2)
214 GOTO_FAIL("Bad data length");
215 if (!rte_pktmbuf_is_contiguous(m))
216 GOTO_FAIL("Buffer should be continuous");
217
218 /* trim data at the end of mbuf */
219
220 if (rte_pktmbuf_trim(m, MBUF_TEST_DATA_LEN2) < 0)
221 GOTO_FAIL("Cannot trim data");
222 if (rte_pktmbuf_pkt_len(m) != MBUF_TEST_DATA_LEN)
223 GOTO_FAIL("Bad pkt length");

Callers 1

test_mbufFunction · 0.85

Calls 13

rte_pktmbuf_allocFunction · 0.85
rte_pktmbuf_dumpFunction · 0.85
rte_pktmbuf_appendFunction · 0.85
memsetFunction · 0.85
rte_pktmbuf_tailroomFunction · 0.85
rte_pktmbuf_trimFunction · 0.85
rte_pktmbuf_prependFunction · 0.85
rte_mbuf_sanity_checkFunction · 0.85
rte_pktmbuf_headroomFunction · 0.85
rte_pktmbuf_adjFunction · 0.85
rte_pktmbuf_freeFunction · 0.85

Tested by

no test coverage detected