9
9
#include <kunit/test.h>
10
10
#include <kunit/attributes.h>
11
11
12
- static void kfree_at_end (struct kunit * test , const void * to_free );
12
+ static void free_suite_set_at_end (struct kunit * test , const void * to_free );
13
13
static struct kunit_suite * alloc_fake_suite (struct kunit * test ,
14
14
const char * suite_name ,
15
15
struct kunit_case * test_cases );
@@ -56,7 +56,7 @@ static void filter_suites_test(struct kunit *test)
56
56
got = kunit_filter_suites (& suite_set , "suite2" , NULL , NULL , & err );
57
57
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start );
58
58
KUNIT_ASSERT_EQ (test , err , 0 );
59
- kfree_at_end (test , got . start );
59
+ free_suite_set_at_end (test , & got );
60
60
61
61
/* Validate we just have suite2 */
62
62
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start [0 ]);
@@ -82,7 +82,7 @@ static void filter_suites_test_glob_test(struct kunit *test)
82
82
got = kunit_filter_suites (& suite_set , "suite2.test2" , NULL , NULL , & err );
83
83
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start );
84
84
KUNIT_ASSERT_EQ (test , err , 0 );
85
- kfree_at_end (test , got . start );
85
+ free_suite_set_at_end (test , & got );
86
86
87
87
/* Validate we just have suite2 */
88
88
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start [0 ]);
@@ -109,7 +109,7 @@ static void filter_suites_to_empty_test(struct kunit *test)
109
109
110
110
got = kunit_filter_suites (& suite_set , "not_found" , NULL , NULL , & err );
111
111
KUNIT_ASSERT_EQ (test , err , 0 );
112
- kfree_at_end (test , got . start ); /* just in case */
112
+ free_suite_set_at_end (test , & got ); /* just in case */
113
113
114
114
KUNIT_EXPECT_PTR_EQ_MSG (test , got .start , got .end ,
115
115
"should be empty to indicate no match" );
@@ -172,7 +172,7 @@ static void filter_attr_test(struct kunit *test)
172
172
got = kunit_filter_suites (& suite_set , NULL , filter , NULL , & err );
173
173
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start );
174
174
KUNIT_ASSERT_EQ (test , err , 0 );
175
- kfree_at_end (test , got . start );
175
+ free_suite_set_at_end (test , & got );
176
176
177
177
/* Validate we just have normal_suite */
178
178
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start [0 ]);
@@ -200,7 +200,7 @@ static void filter_attr_empty_test(struct kunit *test)
200
200
201
201
got = kunit_filter_suites (& suite_set , NULL , filter , NULL , & err );
202
202
KUNIT_ASSERT_EQ (test , err , 0 );
203
- kfree_at_end (test , got . start ); /* just in case */
203
+ free_suite_set_at_end (test , & got ); /* just in case */
204
204
205
205
KUNIT_EXPECT_PTR_EQ_MSG (test , got .start , got .end ,
206
206
"should be empty to indicate no match" );
@@ -222,7 +222,7 @@ static void filter_attr_skip_test(struct kunit *test)
222
222
got = kunit_filter_suites (& suite_set , NULL , filter , "skip" , & err );
223
223
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start );
224
224
KUNIT_ASSERT_EQ (test , err , 0 );
225
- kfree_at_end (test , got . start );
225
+ free_suite_set_at_end (test , & got );
226
226
227
227
/* Validate we have both the slow and normal test */
228
228
KUNIT_ASSERT_NOT_ERR_OR_NULL (test , got .start [0 ]-> test_cases );
@@ -256,18 +256,26 @@ kunit_test_suites(&executor_test_suite);
256
256
257
257
/* Test helpers */
258
258
259
- /* Use the resource API to register a call to kfree(to_free).
259
+ static void free_suite_set (void * suite_set )
260
+ {
261
+ kunit_free_suite_set (* (struct kunit_suite_set * )suite_set );
262
+ kfree (suite_set );
263
+ }
264
+
265
+ /* Use the resource API to register a call to free_suite_set.
260
266
* Since we never actually use the resource, it's safe to use on const data.
261
267
*/
262
- static void kfree_at_end (struct kunit * test , const void * to_free )
268
+ static void free_suite_set_at_end (struct kunit * test , const void * to_free )
263
269
{
264
- /* kfree() handles NULL already, but avoid allocating a no-op cleanup. */
265
- if (IS_ERR_OR_NULL (to_free ))
270
+ struct kunit_suite_set * free ;
271
+
272
+ if (!((struct kunit_suite_set * )to_free )-> start )
266
273
return ;
267
274
268
- kunit_add_action (test ,
269
- (kunit_action_t * )kfree ,
270
- (void * )to_free );
275
+ free = kzalloc (sizeof (struct kunit_suite_set ), GFP_KERNEL );
276
+ * free = * (struct kunit_suite_set * )to_free ;
277
+
278
+ kunit_add_action (test , free_suite_set , (void * )free );
271
279
}
272
280
273
281
static struct kunit_suite * alloc_fake_suite (struct kunit * test ,
0 commit comments