diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/ringbuf.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/ringbuf.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/ringbuf.c b/tools/testing/selftests/bpf/prog_tests/ringbuf.c index c1650548433c..fddbc5db5d6a 100644 --- a/tools/testing/selftests/bpf/prog_tests/ringbuf.c +++ b/tools/testing/selftests/bpf/prog_tests/ringbuf.c @@ -217,9 +217,15 @@ void test_ringbuf(void)  	if (CHECK(err, "join_bg", "err %d\n", err))  		goto cleanup; -	if (CHECK(bg_ret != 1, "bg_ret", "epoll_wait result: %ld", bg_ret)) +	if (CHECK(bg_ret <= 0, "bg_ret", "epoll_wait result: %ld", bg_ret))  		goto cleanup; +	/* due to timing variations, there could still be non-notified +	 * samples, so consume them here to collect all the samples +	 */ +	err = ring_buffer__consume(ringbuf); +	CHECK(err < 0, "rb_consume", "failed: %d\b", err); +  	/* 3 rounds, 2 samples each */  	cnt = atomic_xchg(&sample_cnt, 0);  	CHECK(cnt != 6, "cnt", "exp %d samples, got %d\n", 6, cnt); | 
