Lines Matching refs:test

3  * KUnit test for struct string_stream.
10 #include <kunit/test.h>
38 static char *get_concatenated_string(struct kunit *test, struct string_stream *stream)
42 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, str);
43 kunit_add_action(test, kfree_wrapper, (void *)str);
49 static void string_stream_managed_init_test(struct kunit *test)
54 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
55 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
57 KUNIT_EXPECT_EQ(test, stream->length, 0);
58 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments));
59 KUNIT_EXPECT_TRUE(test, (stream->gfp == GFP_KERNEL));
60 KUNIT_EXPECT_FALSE(test, stream->append_newlines);
61 KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
65 static void string_stream_unmanaged_init_test(struct kunit *test)
70 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
71 kunit_add_action(test, cleanup_raw_stream, stream);
73 KUNIT_EXPECT_EQ(test, stream->length, 0);
74 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments));
75 KUNIT_EXPECT_TRUE(test, (stream->gfp == GFP_KERNEL));
76 KUNIT_EXPECT_FALSE(test, stream->append_newlines);
78 KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
105 static void string_stream_managed_free_test(struct kunit *test)
107 struct string_stream_test_priv *priv = test->priv;
113 kunit_activate_static_stub(test,
117 priv->expected_free_stream = kunit_alloc_string_stream(test, GFP_KERNEL);
118 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->expected_free_stream);
121 kunit_free_string_stream(test, priv->expected_free_stream);
123 KUNIT_EXPECT_TRUE(test, priv->stream_was_freed);
124 KUNIT_EXPECT_FALSE(test, priv->stream_free_again);
127 /* string_stream object is freed when test is cleaned up. */
128 static void string_stream_resource_free_test(struct kunit *test)
130 struct string_stream_test_priv *priv = test->priv;
133 fake_test = kunit_kzalloc(test, sizeof(*fake_test), GFP_KERNEL);
134 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, fake_test);
152 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->expected_free_stream);
157 /* Cleanup test - the stub function should be called */
160 /* Set current->kunit_test back to current test. */
161 current->kunit_test = test;
163 KUNIT_EXPECT_TRUE(test, priv->stream_was_freed);
164 KUNIT_EXPECT_FALSE(test, priv->stream_free_again);
171 static void string_stream_line_add_test(struct kunit *test)
179 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
180 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
188 /* Sanity-check that our test string isn't truncated */
189 KUNIT_ASSERT_LT(test, len, sizeof(line));
196 concat_string = get_concatenated_string(test, stream);
197 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, concat_string);
198 KUNIT_EXPECT_EQ(test, strlen(concat_string), total_len);
207 KUNIT_EXPECT_NOT_NULL(test, string_end);
214 KUNIT_EXPECT_STREQ(test, pos, line);
220 KUNIT_EXPECT_EQ(test, strlen(pos), 0);
224 static void string_stream_variable_length_line_test(struct kunit *test)
235 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
236 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
252 concat_string = get_concatenated_string(test, stream);
253 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, concat_string);
254 KUNIT_EXPECT_EQ(test, strlen(concat_string), total_len);
264 KUNIT_EXPECT_NOT_NULL(test, string_end);
270 KUNIT_EXPECT_STREQ(test, pos, &line[offset]);
276 KUNIT_EXPECT_EQ(test, strlen(pos), 0);
280 static void string_stream_append_test(struct kunit *test)
295 stream_1 = kunit_alloc_string_stream(test, GFP_KERNEL);
296 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_1);
298 stream_2 = kunit_alloc_string_stream(test, GFP_KERNEL);
299 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_2);
303 KUNIT_EXPECT_EQ(test, strlen(get_concatenated_string(test, stream_1)), 0);
309 stream1_content_before_append = get_concatenated_string(test, stream_1);
313 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1),
327 stream_2_content = get_concatenated_string(test, stream_2);
330 combined_content = kunit_kmalloc(test, combined_length, GFP_KERNEL);
331 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, combined_content);
335 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1), combined_content);
338 kunit_free_string_stream(test, stream_1);
340 stream_1 = kunit_alloc_string_stream(test, GFP_KERNEL);
341 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_1);
344 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1), stream_2_content);
348 static void string_stream_append_auto_newline_test(struct kunit *test)
353 stream_1 = kunit_alloc_string_stream(test, GFP_KERNEL);
354 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_1);
356 KUNIT_EXPECT_TRUE(test, stream_1->append_newlines);
359 stream_2 = kunit_alloc_string_stream(test, GFP_KERNEL);
360 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_2);
367 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1),
370 kunit_free_string_stream(test, stream_2);
371 stream_2 = kunit_alloc_string_stream(test, GFP_KERNEL);
372 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_2);
382 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1),
387 static void string_stream_append_empty_string_test(struct kunit *test)
392 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
393 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
397 KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
398 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments));
405 KUNIT_EXPECT_EQ(test, list_count_nodes(&stream->fragments), original_frag_count);
406 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream), "Add this line");
410 static void string_stream_no_auto_newline_test(struct kunit *test)
414 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
415 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
428 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream),
433 static void string_stream_auto_newline_test(struct kunit *test)
437 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
438 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
441 KUNIT_EXPECT_TRUE(test, stream->append_newlines);
455 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream),
460 * This doesn't actually "test" anything. It reports time taken
463 static void string_stream_performance_test(struct kunit *test)
472 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
473 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
503 kunit_info(test, "Time elapsed: %lld us\n",
505 kunit_info(test, "Total string length: %zu\n", total_string_length);
506 kunit_info(test, "Bytes requested: %zu\n", bytes_requested);
507 kunit_info(test, "Actual bytes allocated: %zu\n", actual_bytes_used);
510 static int string_stream_test_init(struct kunit *test)
514 priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL);
518 test->priv = priv;
540 .name = "string-stream-test",