Lines Matching refs:test

3  * KUnit test for struct string_stream.
10 #include <kunit/test.h>
30 static char *get_concatenated_string(struct kunit *test, struct string_stream *stream)
34 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, str);
35 kunit_add_action(test, kfree_wrapper, (void *)str);
41 static void string_stream_managed_init_test(struct kunit *test)
46 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
47 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
49 KUNIT_EXPECT_EQ(test, stream->length, 0);
50 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments));
51 KUNIT_EXPECT_TRUE(test, (stream->gfp == GFP_KERNEL));
52 KUNIT_EXPECT_FALSE(test, stream->append_newlines);
53 KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
57 static void string_stream_unmanaged_init_test(struct kunit *test)
62 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
63 kunit_add_action(test, cleanup_raw_stream, stream);
65 KUNIT_EXPECT_EQ(test, stream->length, 0);
66 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments));
67 KUNIT_EXPECT_TRUE(test, (stream->gfp == GFP_KERNEL));
68 KUNIT_EXPECT_FALSE(test, stream->append_newlines);
70 KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
97 static void string_stream_managed_free_test(struct kunit *test)
99 struct string_stream_test_priv *priv = test->priv;
105 kunit_activate_static_stub(test,
109 priv->expected_free_stream = kunit_alloc_string_stream(test, GFP_KERNEL);
110 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->expected_free_stream);
113 kunit_free_string_stream(test, priv->expected_free_stream);
115 KUNIT_EXPECT_TRUE(test, priv->stream_was_freed);
116 KUNIT_EXPECT_FALSE(test, priv->stream_free_again);
119 /* string_stream object is freed when test is cleaned up. */
120 static void string_stream_resource_free_test(struct kunit *test)
122 struct string_stream_test_priv *priv = test->priv;
125 fake_test = kunit_kzalloc(test, sizeof(*fake_test), GFP_KERNEL);
126 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, fake_test);
144 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->expected_free_stream);
149 /* Cleanup test - the stub function should be called */
152 /* Set current->kunit_test back to current test. */
153 current->kunit_test = test;
155 KUNIT_EXPECT_TRUE(test, priv->stream_was_freed);
156 KUNIT_EXPECT_FALSE(test, priv->stream_free_again);
163 static void string_stream_line_add_test(struct kunit *test)
171 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
172 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
180 /* Sanity-check that our test string isn't truncated */
181 KUNIT_ASSERT_LT(test, len, sizeof(line));
188 concat_string = get_concatenated_string(test, stream);
189 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, concat_string);
190 KUNIT_EXPECT_EQ(test, strlen(concat_string), total_len);
199 KUNIT_EXPECT_NOT_NULL(test, string_end);
206 KUNIT_EXPECT_STREQ(test, pos, line);
212 KUNIT_EXPECT_EQ(test, strlen(pos), 0);
216 static void string_stream_variable_length_line_test(struct kunit *test)
227 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
228 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
244 concat_string = get_concatenated_string(test, stream);
245 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, concat_string);
246 KUNIT_EXPECT_EQ(test, strlen(concat_string), total_len);
256 KUNIT_EXPECT_NOT_NULL(test, string_end);
262 KUNIT_EXPECT_STREQ(test, pos, &line[offset]);
268 KUNIT_EXPECT_EQ(test, strlen(pos), 0);
272 static void string_stream_append_test(struct kunit *test)
287 stream_1 = kunit_alloc_string_stream(test, GFP_KERNEL);
288 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_1);
290 stream_2 = kunit_alloc_string_stream(test, GFP_KERNEL);
291 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_2);
295 KUNIT_EXPECT_EQ(test, strlen(get_concatenated_string(test, stream_1)), 0);
301 stream1_content_before_append = get_concatenated_string(test, stream_1);
305 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1),
319 stream_2_content = get_concatenated_string(test, stream_2);
322 combined_content = kunit_kmalloc(test, combined_length, GFP_KERNEL);
323 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, combined_content);
327 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1), combined_content);
330 kunit_free_string_stream(test, stream_1);
332 stream_1 = kunit_alloc_string_stream(test, GFP_KERNEL);
333 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_1);
336 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1), stream_2_content);
340 static void string_stream_append_auto_newline_test(struct kunit *test)
345 stream_1 = kunit_alloc_string_stream(test, GFP_KERNEL);
346 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_1);
348 KUNIT_EXPECT_TRUE(test, stream_1->append_newlines);
351 stream_2 = kunit_alloc_string_stream(test, GFP_KERNEL);
352 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_2);
359 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1),
362 kunit_free_string_stream(test, stream_2);
363 stream_2 = kunit_alloc_string_stream(test, GFP_KERNEL);
364 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream_2);
374 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream_1),
379 static void string_stream_append_empty_string_test(struct kunit *test)
384 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
385 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
389 KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
390 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments));
397 KUNIT_EXPECT_EQ(test, list_count_nodes(&stream->fragments), original_frag_count);
398 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream), "Add this line");
402 static void string_stream_no_auto_newline_test(struct kunit *test)
406 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
407 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
420 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream),
425 static void string_stream_auto_newline_test(struct kunit *test)
429 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
430 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
433 KUNIT_EXPECT_TRUE(test, stream->append_newlines);
447 KUNIT_EXPECT_STREQ(test, get_concatenated_string(test, stream),
452 * This doesn't actually "test" anything. It reports time taken
455 static void string_stream_performance_test(struct kunit *test)
464 stream = kunit_alloc_string_stream(test, GFP_KERNEL);
465 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, stream);
495 kunit_info(test, "Time elapsed: %lld us\n",
497 kunit_info(test, "Total string length: %zu\n", total_string_length);
498 kunit_info(test, "Bytes requested: %zu\n", bytes_requested);
499 kunit_info(test, "Actual bytes allocated: %zu\n", actual_bytes_used);
502 static int string_stream_test_init(struct kunit *test)
506 priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL);
510 test->priv = priv;
532 .name = "string-stream-test",