Re: [PATCH bpf-next 0/5] fix test_sockmap
From: Prashant Bhole <hidden>
Date: 2018-05-21 05:15:41
On 5/19/2018 1:42 AM, John Fastabend wrote:
On 05/18/2018 12:17 AM, Prashant Bhole wrote:quoted
This series fixes bugs in test_sockmap code. They weren't caught previously because failure in RX/TX thread was not notified to the main thread. Also fixed data verification logic and slightly improved test output such that parameters values (cork, apply, start, end) of failed test can be easily seen.Great, this was on my list so thanks for taking care of it.quoted
Note: Even after fixing above problems there are issues with tests which set cork parameter. Tests fail (RX thread timeout) when cork value is non-zero and overall data sent by TX thread isn't multiples of cork value.This is expected. When 'cork' is set the sender should only xmit the data when 'cork' bytes are available. If the user doesn't provide the N bytes the data is cork'ed waiting for the bytes and if the socket is closed the state is cleaned up. What these tests are testing is the cleanup path when a user doesn't provide the N bytes. In practice this is used to validate headers and prevent users from sending partial headers. We want to keep these tests because they verify a tear-down path in the code.
Ok.
After your changes do these get reported as failures? If so we need to account for the above in the calculations.
Yes, cork related test are reported as failures because of RX thread timeout. So with your above description, I think we need to differentiate cork tests with partial data and full data. In partial data test we can have something like "timeout_expected" flag. Any other way to fix it? -Prashant
quoted
Prashant Bhole (5): selftests/bpf: test_sockmap, check test failure selftests/bpf: test_sockmap, join cgroup in selftest mode selftests/bpf: test_sockmap, fix test timeout selftests/bpf: test_sockmap, fix data verification selftests/bpf: test_sockmap, print additional test options tools/testing/selftests/bpf/test_sockmap.c | 76 +++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 18 deletions(-)