@@ -234,27 +234,41 @@ TEST_CASE("Test map handler")
234
234
{
235
235
auto rb_ptr = ((uint64_t )1 << 32 );
236
236
std::vector<std::thread> thds;
237
- thds.push_back (std::thread ([=]() {
238
- for (int i = 1 ; i <= 100 ; i++) {
239
- void *ptr = (void *)(uintptr_t )
240
- bpf_ringbuf_reserve (rb_ptr,
241
- sizeof (int ),
242
- 0 , 0 , 0 );
243
- REQUIRE (ptr != nullptr );
244
- memcpy (ptr, &i, sizeof (int ));
245
- if (i % 2 == 0 ) {
246
- // discard it
247
- bpf_ringbuf_discard (
248
- (uintptr_t )ptr, 0 , 0 , 0 ,
249
- 0 );
250
- } else {
251
- // submit it
252
- bpf_ringbuf_submit (
253
- (uintptr_t )ptr, 0 , 0 , 0 ,
254
- 0 );
237
+ SECTION (" Test with reserve+commit" )
238
+ {
239
+ thds.push_back (std::thread ([=]() {
240
+ for (int i = 1 ; i <= 100 ; i++) {
241
+ void *ptr = (void *)(uintptr_t )
242
+ bpf_ringbuf_reserve (
243
+ rb_ptr,
244
+ sizeof (int ), 0 ,
245
+ 0 , 0 );
246
+ REQUIRE (ptr != nullptr );
247
+ memcpy (ptr, &i, sizeof (int ));
248
+ if (i % 2 == 0 ) {
249
+ // discard it
250
+ bpf_ringbuf_discard (
251
+ (uintptr_t )ptr,
252
+ 0 , 0 , 0 , 0 );
253
+ } else {
254
+ // submit it
255
+ bpf_ringbuf_submit (
256
+ (uintptr_t )ptr,
257
+ 0 , 0 , 0 , 0 );
258
+ }
255
259
}
256
- }
257
- }));
260
+ }));
261
+ }
262
+ SECTION (" Test with output" )
263
+ {
264
+ thds.push_back (std::thread ([=]() {
265
+ for (int i = 1 ; i <= 100 ; i += 2 ) {
266
+ bpf_ringbuf_output (
267
+ rb_ptr, (uintptr_t )&i,
268
+ sizeof (i), 0 , 0 );
269
+ }
270
+ }));
271
+ }
258
272
auto impl = map.try_get_ringbuf_map_impl ()
259
273
.value ()
260
274
->create_impl_shared_ptr ();
0 commit comments