recvfrom01: fix test for invalid message flags
The recv tests were making invalid assumptions about how flags are
checked by the kernel. (It makes no explicit tests for invalid flags
or combinations of flags.) [1] So the current method of setting every
possible flag and checking for a specific error is not valid.
Before kernel 3.17 we were effectively just testing having the MSG_OOB
flag set with no out-of-band data available. With 3.17 and later we
were testing having MSG_ERRQUEUE set with no error data available,
which returns a different error (and causes the existing test to fail).
Replace the bogus test for invalid flags with two new tests that check
return codes for invalid MSG_OOB and MSG_ERRQUEUE flags.
Note that this introduces a failure on kernels before 3.17, which has
a bug fix for MSG_ERRQUEUE flag handling. This failure is a legitimate
bug on these older kernels. (They should not be returning success with
no data available.)
[1] http://marc.info/?t=141148149900006&r=1&w=2
Signed-off-by: Chuck Ebbert <cebbert.lkml@gmail.com>
Tested-by: Cyril Hrubis <chrubis@suse.cz>
Acked-by: Cyril Hrubis <chrubis@suse.cz>
1 file changed