Always test UDP_DIAG for 4.9 kernel The devices that ship with P and running 4.9 kernel need CONFIG_INET_UDP_DIAG to work properly. It cannot be added to android-base.config now but it is required for P. So we do not skip the test for that config anymore in this case. Bug: 112068616 Test: sock_diag_test pass on device Change-Id: I10b26a8e667de83cd156b4622eb7a4cd0b35bb2e
diff --git a/net/test/sock_diag_test.py b/net/test/sock_diag_test.py index e25035b..4b1d055 100755 --- a/net/test/sock_diag_test.py +++ b/net/test/sock_diag_test.py
@@ -39,10 +39,24 @@ IPPROTO_SCTP = 132 def HaveUdpDiag(): - # There is no way to tell whether a dump succeeded: if the appropriate handler - # wasn't found, __inet_diag_dump just returns an empty result instead of an - # error. So, just check to see if a UDP dump returns no sockets when we know - # it should return one. + """Checks if the current kernel has config CONFIG_INET_UDP_DIAG enabled. + + This config is required for device running 4.9 kernel that ship with P, In + this case always assume the config is there and use the tests to check if the + config is enabled as required. + + For all ther other kernel version, there is no way to tell whether a dump + succeeded: if the appropriate handler wasn't found, __inet_diag_dump just + returns an empty result instead of an error. So, just check to see if a UDP + dump returns no sockets when we know it should return one. If not, some tests + will be skipped. + + Returns: + True if the kernel is 4.9 or above, or the CONFIG_INET_UDP_DIAG is enabled. + False otherwise. + """ + if HAVE_SO_COOKIE_SUPPORT: + return True; s = socket(AF_INET6, SOCK_DGRAM, 0) s.bind(("::", 0)) s.connect((s.getsockname()))