Lines Matching full:test
3 * KUnit test for the KUnit executor.
9 #include <kunit/test.h>
12 static void free_suite_set_at_end(struct kunit *test, const void *to_free);
13 static struct kunit_suite *alloc_fake_suite(struct kunit *test,
17 static void dummy_test(struct kunit *test) {} in dummy_test() argument
26 static void parse_filter_test(struct kunit *test) in parse_filter_test() argument
31 KUNIT_EXPECT_STREQ(test, filter.suite_glob, "suite"); in parse_filter_test()
32 KUNIT_EXPECT_FALSE(test, filter.test_glob); in parse_filter_test()
36 kunit_parse_glob_filter(&filter, "suite.test"); in parse_filter_test()
37 KUNIT_EXPECT_STREQ(test, filter.suite_glob, "suite"); in parse_filter_test()
38 KUNIT_EXPECT_STREQ(test, filter.test_glob, "test"); in parse_filter_test()
43 static void filter_suites_test(struct kunit *test) in filter_suites_test() argument
52 subsuite[0] = alloc_fake_suite(test, "suite1", dummy_test_cases); in filter_suites_test()
53 subsuite[1] = alloc_fake_suite(test, "suite2", dummy_test_cases); in filter_suites_test()
57 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start); in filter_suites_test()
58 KUNIT_ASSERT_EQ(test, err, 0); in filter_suites_test()
59 free_suite_set_at_end(test, &got); in filter_suites_test()
62 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start[0]); in filter_suites_test()
63 KUNIT_EXPECT_STREQ(test, (const char *)got.start[0]->name, "suite2"); in filter_suites_test()
66 KUNIT_ASSERT_EQ(test, got.end - got.start, 1); in filter_suites_test()
69 static void filter_suites_test_glob_test(struct kunit *test) in filter_suites_test_glob_test() argument
78 subsuite[0] = alloc_fake_suite(test, "suite1", dummy_test_cases); in filter_suites_test_glob_test()
79 subsuite[1] = alloc_fake_suite(test, "suite2", dummy_test_cases); in filter_suites_test_glob_test()
83 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start); in filter_suites_test_glob_test()
84 KUNIT_ASSERT_EQ(test, err, 0); in filter_suites_test_glob_test()
85 free_suite_set_at_end(test, &got); in filter_suites_test_glob_test()
88 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start[0]); in filter_suites_test_glob_test()
89 KUNIT_EXPECT_STREQ(test, (const char *)got.start[0]->name, "suite2"); in filter_suites_test_glob_test()
90 KUNIT_ASSERT_EQ(test, got.end - got.start, 1); in filter_suites_test_glob_test()
93 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start[0]->test_cases); in filter_suites_test_glob_test()
94 KUNIT_EXPECT_STREQ(test, (const char *)got.start[0]->test_cases[0].name, "test2"); in filter_suites_test_glob_test()
95 KUNIT_EXPECT_FALSE(test, got.start[0]->test_cases[1].name); in filter_suites_test_glob_test()
98 static void filter_suites_to_empty_test(struct kunit *test) in filter_suites_to_empty_test() argument
107 subsuite[0] = alloc_fake_suite(test, "suite1", dummy_test_cases); in filter_suites_to_empty_test()
108 subsuite[1] = alloc_fake_suite(test, "suite2", dummy_test_cases); in filter_suites_to_empty_test()
111 KUNIT_ASSERT_EQ(test, err, 0); in filter_suites_to_empty_test()
112 free_suite_set_at_end(test, &got); /* just in case */ in filter_suites_to_empty_test()
114 KUNIT_EXPECT_PTR_EQ_MSG(test, got.start, got.end, in filter_suites_to_empty_test()
118 static void parse_filter_attr_test(struct kunit *test) in parse_filter_attr_test() argument
126 KUNIT_EXPECT_EQ(test, filter_count, 2); in parse_filter_attr_test()
128 parsed_filters = kunit_kcalloc(test, filter_count, sizeof(*parsed_filters), in parse_filter_attr_test()
132 KUNIT_ASSERT_EQ_MSG(test, err, 0, "failed to parse filter from '%s'", filters); in parse_filter_attr_test()
135 KUNIT_EXPECT_STREQ(test, kunit_attr_filter_name(parsed_filters[0]), "speed"); in parse_filter_attr_test()
136 KUNIT_EXPECT_STREQ(test, parsed_filters[0].input, ">slow"); in parse_filter_attr_test()
138 KUNIT_EXPECT_STREQ(test, kunit_attr_filter_name(parsed_filters[1]), "module"); in parse_filter_attr_test()
139 KUNIT_EXPECT_STREQ(test, parsed_filters[1].input, "!=example"); in parse_filter_attr_test()
150 static void filter_attr_test(struct kunit *test) in filter_attr_test() argument
160 subsuite[0] = alloc_fake_suite(test, "normal_suite", dummy_attr_test_cases); in filter_attr_test()
161 subsuite[1] = alloc_fake_suite(test, "slow_suite", dummy_attr_test_cases); in filter_attr_test()
168 * The normal test in slow_suite is filtered out because the speed in filter_attr_test()
173 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start); in filter_attr_test()
174 KUNIT_ASSERT_EQ(test, err, 0); in filter_attr_test()
175 free_suite_set_at_end(test, &got); in filter_attr_test()
178 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start[0]); in filter_attr_test()
179 KUNIT_EXPECT_STREQ(test, got.start[0]->name, "normal_suite"); in filter_attr_test()
180 KUNIT_ASSERT_EQ(test, got.end - got.start, 1); in filter_attr_test()
182 /* Now validate we just have normal test case */ in filter_attr_test()
183 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start[0]->test_cases); in filter_attr_test()
184 KUNIT_EXPECT_STREQ(test, got.start[0]->test_cases[0].name, "normal"); in filter_attr_test()
185 KUNIT_EXPECT_FALSE(test, got.start[0]->test_cases[1].name); in filter_attr_test()
188 static void filter_attr_empty_test(struct kunit *test) in filter_attr_empty_test() argument
198 subsuite[0] = alloc_fake_suite(test, "suite1", dummy_attr_test_cases); in filter_attr_empty_test()
199 subsuite[1] = alloc_fake_suite(test, "suite2", dummy_attr_test_cases); in filter_attr_empty_test()
202 KUNIT_ASSERT_EQ(test, err, 0); in filter_attr_empty_test()
203 free_suite_set_at_end(test, &got); /* just in case */ in filter_attr_empty_test()
205 KUNIT_EXPECT_PTR_EQ_MSG(test, got.start, got.end, in filter_attr_empty_test()
209 static void filter_attr_skip_test(struct kunit *test) in filter_attr_skip_test() argument
219 subsuite[0] = alloc_fake_suite(test, "suite", dummy_attr_test_cases); in filter_attr_skip_test()
223 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start); in filter_attr_skip_test()
224 KUNIT_ASSERT_EQ(test, err, 0); in filter_attr_skip_test()
225 free_suite_set_at_end(test, &got); in filter_attr_skip_test()
227 /* Validate we have both the slow and normal test */ in filter_attr_skip_test()
228 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, got.start[0]->test_cases); in filter_attr_skip_test()
229 KUNIT_ASSERT_EQ(test, kunit_suite_num_test_cases(got.start[0]), 2); in filter_attr_skip_test()
230 KUNIT_EXPECT_STREQ(test, got.start[0]->test_cases[0].name, "slow"); in filter_attr_skip_test()
231 KUNIT_EXPECT_STREQ(test, got.start[0]->test_cases[1].name, "normal"); in filter_attr_skip_test()
234 KUNIT_EXPECT_EQ(test, got.start[0]->test_cases[0].status, KUNIT_SKIPPED); in filter_attr_skip_test()
235 KUNIT_EXPECT_FALSE(test, got.start[0]->test_cases[1].status); in filter_attr_skip_test()
257 /* Test helpers */
268 static void free_suite_set_at_end(struct kunit *test, const void *to_free) in free_suite_set_at_end() argument
278 kunit_add_action(test, free_suite_set, (void *)free); in free_suite_set_at_end()
281 static struct kunit_suite *alloc_fake_suite(struct kunit *test, in alloc_fake_suite() argument
288 suite = kunit_kzalloc(test, sizeof(*suite), GFP_KERNEL); in alloc_fake_suite()