Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.10.11.
  1// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
  2
  3#include "test_progs.h"
  4#include "testing_helpers.h"
  5
  6static void init_test_filter_set(struct test_filter_set *set)
  7{
  8	set->cnt = 0;
  9	set->tests = NULL;
 10}
 11
 12static void free_test_filter_set(struct test_filter_set *set)
 13{
 14	int i, j;
 15
 16	for (i = 0; i < set->cnt; i++) {
 17		for (j = 0; j < set->tests[i].subtest_cnt; j++)
 18			free((void *)set->tests[i].subtests[j]);
 19		free(set->tests[i].subtests);
 20		free(set->tests[i].name);
 21	}
 22
 23	free(set->tests);
 24	init_test_filter_set(set);
 25}
 26
 27static void test_parse_test_list(void)
 28{
 29	struct test_filter_set set;
 30
 31	init_test_filter_set(&set);
 32
 33	ASSERT_OK(parse_test_list("arg_parsing", &set, true), "parsing");
 34	if (!ASSERT_EQ(set.cnt, 1, "test filters count"))
 35		goto error;
 36	if (!ASSERT_OK_PTR(set.tests, "test filters initialized"))
 37		goto error;
 38	ASSERT_EQ(set.tests[0].subtest_cnt, 0, "subtest filters count");
 39	ASSERT_OK(strcmp("arg_parsing", set.tests[0].name), "subtest name");
 40	free_test_filter_set(&set);
 41
 42	ASSERT_OK(parse_test_list("arg_parsing,bpf_cookie", &set, true),
 43		  "parsing");
 44	if (!ASSERT_EQ(set.cnt, 2, "count of test filters"))
 45		goto error;
 46	if (!ASSERT_OK_PTR(set.tests, "test filters initialized"))
 47		goto error;
 48	ASSERT_EQ(set.tests[0].subtest_cnt, 0, "subtest filters count");
 49	ASSERT_EQ(set.tests[1].subtest_cnt, 0, "subtest filters count");
 50	ASSERT_OK(strcmp("arg_parsing", set.tests[0].name), "test name");
 51	ASSERT_OK(strcmp("bpf_cookie", set.tests[1].name), "test name");
 52	free_test_filter_set(&set);
 53
 54	ASSERT_OK(parse_test_list("arg_parsing/arg_parsing,bpf_cookie",
 55				  &set,
 56				  true),
 57		  "parsing");
 58	if (!ASSERT_EQ(set.cnt, 2, "count of test filters"))
 59		goto error;
 60	if (!ASSERT_OK_PTR(set.tests, "test filters initialized"))
 61		goto error;
 62	if (!ASSERT_EQ(set.tests[0].subtest_cnt, 1, "subtest filters count"))
 63		goto error;
 64	ASSERT_EQ(set.tests[1].subtest_cnt, 0, "subtest filters count");
 65	ASSERT_OK(strcmp("arg_parsing", set.tests[0].name), "test name");
 66	ASSERT_OK(strcmp("arg_parsing", set.tests[0].subtests[0]),
 67		  "subtest name");
 68	ASSERT_OK(strcmp("bpf_cookie", set.tests[1].name), "test name");
 69	free_test_filter_set(&set);
 70
 71	ASSERT_OK(parse_test_list("arg_parsing/arg_parsing", &set, true),
 72		  "parsing");
 73	ASSERT_OK(parse_test_list("bpf_cookie", &set, true), "parsing");
 74	ASSERT_OK(parse_test_list("send_signal", &set, true), "parsing");
 75	if (!ASSERT_EQ(set.cnt, 3, "count of test filters"))
 76		goto error;
 77	if (!ASSERT_OK_PTR(set.tests, "test filters initialized"))
 78		goto error;
 79	if (!ASSERT_EQ(set.tests[0].subtest_cnt, 1, "subtest filters count"))
 80		goto error;
 81	ASSERT_EQ(set.tests[1].subtest_cnt, 0, "subtest filters count");
 82	ASSERT_EQ(set.tests[2].subtest_cnt, 0, "subtest filters count");
 83	ASSERT_OK(strcmp("arg_parsing", set.tests[0].name), "test name");
 84	ASSERT_OK(strcmp("arg_parsing", set.tests[0].subtests[0]),
 85		  "subtest name");
 86	ASSERT_OK(strcmp("bpf_cookie", set.tests[1].name), "test name");
 87	ASSERT_OK(strcmp("send_signal", set.tests[2].name), "test name");
 88	free_test_filter_set(&set);
 89
 90	ASSERT_OK(parse_test_list("bpf_cookie/trace", &set, false), "parsing");
 91	if (!ASSERT_EQ(set.cnt, 1, "count of test filters"))
 92		goto error;
 93	if (!ASSERT_OK_PTR(set.tests, "test filters initialized"))
 94		goto error;
 95	if (!ASSERT_EQ(set.tests[0].subtest_cnt, 1, "subtest filters count"))
 96		goto error;
 97	ASSERT_OK(strcmp("*bpf_cookie*", set.tests[0].name), "test name");
 98	ASSERT_OK(strcmp("*trace*", set.tests[0].subtests[0]), "subtest name");
 99error:
100	free_test_filter_set(&set);
101}
102
103void test_arg_parsing(void)
104{
105	if (test__start_subtest("test_parse_test_list"))
106		test_parse_test_list();
107}