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