summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/net/rxtimestamp.c
diff options
context:
space:
mode:
authortannerlove <tannerlove@google.com>2020-06-22 13:43:24 -0400
committerDavid S. Miller <davem@davemloft.net>2020-06-23 20:36:46 -0700
commit0558c396040734bc1d361919566a581fd41aa539 (patch)
tree0c661cb487d5562da742284c0ea39a37475a584d /tools/testing/selftests/net/rxtimestamp.c
parent547030c8e663520348557a5c7ed1eacf72e6bf86 (diff)
selftests/net: plug rxtimestamp test into kselftest framework
Run rxtimestamp as part of TEST_PROGS. Analogous to other tests, add new rxtimestamp.sh wrapper script, so that the test runs isolated from background traffic in a private network namespace. Also ignore failures of test case #6 by default. This case verifies that a receive timestamp is not reported if timestamp reporting is enabled for a socket, but generation is disabled. Receive timestamp generation has to be enabled globally, as no associated socket is known yet. A background process that enables rx timestamp generation therefore causes a false positive. Ntpd is one example that does. Add a "--strict" option to cause failure in the event that any test case fails, including test #6. This is useful for environments that are known to not have such background processes. Tested: make -C tools/testing/selftests TARGETS="net" run_tests Signed-off-by: Tanner Love <tannerlove@google.com> Acked-by: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/testing/selftests/net/rxtimestamp.c')
-rw-r--r--tools/testing/selftests/net/rxtimestamp.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/testing/selftests/net/rxtimestamp.c b/tools/testing/selftests/net/rxtimestamp.c
index 422e7761254d..d4ea86a13e52 100644
--- a/tools/testing/selftests/net/rxtimestamp.c
+++ b/tools/testing/selftests/net/rxtimestamp.c
@@ -44,6 +44,7 @@ struct test_case {
struct options sockopt;
struct tstamps expected;
bool enabled;
+ bool warn_on_fail;
};
struct sof_flag {
@@ -89,7 +90,7 @@ static struct test_case test_cases[] = {
},
{
{ so_timestamping: SOF_TIMESTAMPING_SOFTWARE },
- {}
+ warn_on_fail : true
},
{
{ so_timestamping: SOF_TIMESTAMPING_RX_SOFTWARE
@@ -115,6 +116,7 @@ static struct option long_options[] = {
{ "tcp", no_argument, 0, 't' },
{ "udp", no_argument, 0, 'u' },
{ "ip", no_argument, 0, 'i' },
+ { "strict", no_argument, 0, 'S' },
{ NULL, 0, NULL, 0 },
};
@@ -327,6 +329,7 @@ int main(int argc, char **argv)
{
bool all_protocols = true;
bool all_tests = true;
+ bool strict = false;
int arg_index = 0;
int failures = 0;
int s, t;
@@ -363,6 +366,9 @@ int main(int argc, char **argv)
all_protocols = false;
socket_types[0].enabled = true;
break;
+ case 'S':
+ strict = true;
+ break;
default:
error(1, 0, "Failed to parse parameters.");
}
@@ -379,7 +385,8 @@ int main(int argc, char **argv)
printf("Starting testcase %d...\n", t);
if (run_test_case(socket_types[s], test_cases[t])) {
- failures++;
+ if (strict || !test_cases[t].warn_on_fail)
+ failures++;
printf("FAILURE in test case ");
print_test_case(&test_cases[t]);
}