1d8e2a76bSBrendan Higgins // SPDX-License-Identifier: GPL-2.0 2d8e2a76bSBrendan Higgins /* 3d8e2a76bSBrendan Higgins * KUnit test for struct string_stream. 4d8e2a76bSBrendan Higgins * 5d8e2a76bSBrendan Higgins * Copyright (C) 2019, Google LLC. 6d8e2a76bSBrendan Higgins * Author: Brendan Higgins <brendanhiggins@google.com> 7d8e2a76bSBrendan Higgins */ 8d8e2a76bSBrendan Higgins 9d8e2a76bSBrendan Higgins #include <kunit/string-stream.h> 10d8e2a76bSBrendan Higgins #include <kunit/test.h> 11d8e2a76bSBrendan Higgins #include <linux/slab.h> 12d8e2a76bSBrendan Higgins 13d8e2a76bSBrendan Higgins static void string_stream_test_empty_on_creation(struct kunit *test) 14d8e2a76bSBrendan Higgins { 15d8e2a76bSBrendan Higgins struct string_stream *stream = alloc_string_stream(test, GFP_KERNEL); 16d8e2a76bSBrendan Higgins 17d8e2a76bSBrendan Higgins KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream)); 18d8e2a76bSBrendan Higgins } 19d8e2a76bSBrendan Higgins 20d8e2a76bSBrendan Higgins static void string_stream_test_not_empty_after_add(struct kunit *test) 21d8e2a76bSBrendan Higgins { 22d8e2a76bSBrendan Higgins struct string_stream *stream = alloc_string_stream(test, GFP_KERNEL); 23d8e2a76bSBrendan Higgins 24d8e2a76bSBrendan Higgins string_stream_add(stream, "Foo"); 25d8e2a76bSBrendan Higgins 26d8e2a76bSBrendan Higgins KUNIT_EXPECT_FALSE(test, string_stream_is_empty(stream)); 27d8e2a76bSBrendan Higgins } 28d8e2a76bSBrendan Higgins 29d8e2a76bSBrendan Higgins static void string_stream_test_get_string(struct kunit *test) 30d8e2a76bSBrendan Higgins { 31d8e2a76bSBrendan Higgins struct string_stream *stream = alloc_string_stream(test, GFP_KERNEL); 32d8e2a76bSBrendan Higgins char *output; 33d8e2a76bSBrendan Higgins 34d8e2a76bSBrendan Higgins string_stream_add(stream, "Foo"); 35d8e2a76bSBrendan Higgins string_stream_add(stream, " %s", "bar"); 36d8e2a76bSBrendan Higgins 37d8e2a76bSBrendan Higgins output = string_stream_get_string(stream); 38e4aea8f8SBrendan Higgins KUNIT_ASSERT_STREQ(test, output, "Foo bar"); 39d8e2a76bSBrendan Higgins } 40d8e2a76bSBrendan Higgins 41d8e2a76bSBrendan Higgins static struct kunit_case string_stream_test_cases[] = { 42d8e2a76bSBrendan Higgins KUNIT_CASE(string_stream_test_empty_on_creation), 43d8e2a76bSBrendan Higgins KUNIT_CASE(string_stream_test_not_empty_after_add), 44d8e2a76bSBrendan Higgins KUNIT_CASE(string_stream_test_get_string), 45d8e2a76bSBrendan Higgins {} 46d8e2a76bSBrendan Higgins }; 47d8e2a76bSBrendan Higgins 48d8e2a76bSBrendan Higgins static struct kunit_suite string_stream_test_suite = { 49d8e2a76bSBrendan Higgins .name = "string-stream-test", 50d8e2a76bSBrendan Higgins .test_cases = string_stream_test_cases 51d8e2a76bSBrendan Higgins }; 52d8e2a76bSBrendan Higgins kunit_test_suite(string_stream_test_suite); 53