Lines Matching +full:non +full:- +full:empty
1 // SPDX-License-Identifier: GPL-2.0
16 #include "string-stream.h"
19 /* For testing resource-managed free. */
46 /* Resource-managed initialization. */ in string_stream_managed_init_test()
50 KUNIT_EXPECT_EQ(test, stream->length, 0); in string_stream_managed_init_test()
51 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments)); in string_stream_managed_init_test()
52 KUNIT_EXPECT_TRUE(test, (stream->gfp == GFP_KERNEL)); in string_stream_managed_init_test()
53 KUNIT_EXPECT_FALSE(test, stream->append_newlines); in string_stream_managed_init_test()
66 KUNIT_EXPECT_EQ(test, stream->length, 0); in string_stream_unmanaged_init_test()
67 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments)); in string_stream_unmanaged_init_test()
68 KUNIT_EXPECT_TRUE(test, (stream->gfp == GFP_KERNEL)); in string_stream_unmanaged_init_test()
69 KUNIT_EXPECT_FALSE(test, stream->append_newlines); in string_stream_unmanaged_init_test()
77 struct string_stream_test_priv *priv = fake_test->priv; in string_stream_destroy_stub()
80 if (stream == priv->expected_free_stream) { in string_stream_destroy_stub()
81 if (priv->stream_was_freed) in string_stream_destroy_stub()
82 priv->stream_free_again = true; in string_stream_destroy_stub()
84 priv->stream_was_freed = true; in string_stream_destroy_stub()
90 * Avoid calling deactivate_static_stub() or changing current->kunit_test in string_stream_destroy_stub()
100 struct string_stream_test_priv *priv = test->priv; in string_stream_managed_free_test()
102 priv->expected_free_stream = NULL; in string_stream_managed_free_test()
103 priv->stream_was_freed = false; in string_stream_managed_free_test()
104 priv->stream_free_again = false; in string_stream_managed_free_test()
110 priv->expected_free_stream = kunit_alloc_string_stream(test, GFP_KERNEL); in string_stream_managed_free_test()
111 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->expected_free_stream); in string_stream_managed_free_test()
114 kunit_free_string_stream(test, priv->expected_free_stream); in string_stream_managed_free_test()
116 KUNIT_EXPECT_TRUE(test, priv->stream_was_freed); in string_stream_managed_free_test()
117 KUNIT_EXPECT_FALSE(test, priv->stream_free_again); in string_stream_managed_free_test()
123 struct string_stream_test_priv *priv = test->priv; in string_stream_resource_free_test()
130 fake_test->priv = priv; in string_stream_resource_free_test()
136 priv->expected_free_stream = NULL; in string_stream_resource_free_test()
137 priv->stream_was_freed = false; in string_stream_resource_free_test()
138 priv->stream_free_again = false; in string_stream_resource_free_test()
144 priv->expected_free_stream = kunit_alloc_string_stream(fake_test, GFP_KERNEL); in string_stream_resource_free_test()
145 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->expected_free_stream); in string_stream_resource_free_test()
147 /* Set current->kunit_test to fake_test so the static stub will be called. */ in string_stream_resource_free_test()
148 current->kunit_test = fake_test; in string_stream_resource_free_test()
150 /* Cleanup test - the stub function should be called */ in string_stream_resource_free_test()
153 /* Set current->kunit_test back to current test. */ in string_stream_resource_free_test()
154 current->kunit_test = test; in string_stream_resource_free_test()
156 KUNIT_EXPECT_TRUE(test, priv->stream_was_freed); in string_stream_resource_free_test()
157 KUNIT_EXPECT_FALSE(test, priv->stream_free_again); in string_stream_resource_free_test()
181 /* Sanity-check that our test string isn't truncated */ in string_stream_line_add_test()
202 /* Convert to NULL-terminated string */ in string_stream_line_add_test()
221 " 0123456789!$%^&*()_-+={}[]:;@'~#<>,.?/|"; in string_stream_variable_length_line_test()
239 offset = prandom_u32_state(&rnd) % (sizeof(line) - 1); in string_stream_variable_length_line_test()
241 total_len += sizeof(line) - offset; in string_stream_variable_length_line_test()
259 /* Convert to NULL-terminated string */ in string_stream_variable_length_line_test()
262 offset = prandom_u32_state(&rnd) % (sizeof(line) - 1); in string_stream_variable_length_line_test()
294 /* Append content of empty stream to empty stream */ in string_stream_append_test()
304 /* Append content of empty stream to non-empty stream */ in string_stream_append_test()
313 /* Append content of non-empty stream to non-empty stream */ in string_stream_append_test()
330 /* Append content of non-empty stream to empty stream */ in string_stream_append_test()
340 /* Appending the content of one string stream to one with auto-newlining. */
349 KUNIT_EXPECT_TRUE(test, stream_1->append_newlines); in string_stream_append_auto_newline_test()
379 /* Adding an empty string should not create a fragment. */
388 /* Formatted empty string */ in string_stream_append_empty_string_test()
391 KUNIT_EXPECT_TRUE(test, list_empty(&stream->fragments)); in string_stream_append_empty_string_test()
393 /* Adding an empty string to a non-empty stream */ in string_stream_append_empty_string_test()
395 original_frag_count = list_count_nodes(&stream->fragments); in string_stream_append_empty_string_test()
398 KUNIT_EXPECT_EQ(test, list_count_nodes(&stream->fragments), original_frag_count); in string_stream_append_empty_string_test()
434 KUNIT_EXPECT_TRUE(test, stream->append_newlines); in string_stream_auto_newline_test()
468 memset(test_line, 'x', sizeof(test_line) - 1); in string_stream_performance_test()
469 test_line[sizeof(test_line) - 1] = '\0'; in string_stream_performance_test()
473 offset = i % (sizeof(test_line) - 1); in string_stream_performance_test()
486 list_for_each_entry(frag_container, &stream->fragments, node) { in string_stream_performance_test()
490 len = strlen(frag_container->fragment); in string_stream_performance_test()
493 actual_bytes_used += ksize(frag_container->fragment); in string_stream_performance_test()
509 return -ENOMEM; in string_stream_test_init()
511 test->priv = priv; in string_stream_test_init()
533 .name = "string-stream-test",