123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * KUnit test for strerror and strerror_r
- *
- * Copyright (C) 2019, Google LLC.
- * Author: Mike Krinkin <[email protected]>
- */
- #include <linux/err.h>
- #include <kunit/strerror.h>
- #include <kunit/test.h>
- static void test_strerror_returns_null_for_unknown_errors(struct kunit *test)
- {
- KUNIT_EXPECT_PTR_EQ(test, strerror_str(-1), NULL);
- KUNIT_EXPECT_PTR_EQ(test, strerror_str(MAX_ERRNO + 1), NULL);
- }
- static void test_strerror_r_returns_null_if_buflen_is_zero(struct kunit *test)
- {
- KUNIT_EXPECT_PTR_EQ(test, strerror_r(-1, NULL, 0), NULL);
- }
- static void test_strerror_returns_string(struct kunit *test)
- {
- const char *err;
- char buf[64];
- err = strerror_str(EAGAIN);
- KUNIT_ASSERT_PTR_NE(test, err, NULL);
- KUNIT_EXPECT_STREQ(test, err, "EAGAIN");
- err = strerror_r(EAGAIN, buf, sizeof(buf));
- KUNIT_ASSERT_PTR_NE(test, err, NULL);
- KUNIT_EXPECT_STREQ(test, err, "EAGAIN");
- }
- static void test_strerror_r_correctly_truncates_message_to_buffer_size(
- struct kunit *test)
- {
- const char *err;
- char buf[64];
- err = strerror_r(EAGAIN, buf, 1);
- KUNIT_ASSERT_PTR_NE(test, err, NULL);
- KUNIT_EXPECT_EQ(test, strlen(err), 0);
- err = strerror_r(EAGAIN, buf, 2);
- KUNIT_ASSERT_PTR_NE(test, err, NULL);
- KUNIT_EXPECT_EQ(test, strlen(err), 1);
- err = strerror_r(EAGAIN, buf, sizeof(buf));
- KUNIT_ASSERT_PTR_NE(test, err, NULL);
- KUNIT_EXPECT_STREQ(test, err, "EAGAIN");
- }
- static void test_strerror_r_returns_string_for_unknown_errors(struct kunit *test)
- {
- char buf[64];
- KUNIT_EXPECT_PTR_NE(test, strerror_r(-1, buf, sizeof(buf)), NULL);
- KUNIT_EXPECT_PTR_NE(test, strerror_r(MAX_ERRNO + 1, buf, sizeof(buf)), NULL);
- }
- static struct kunit_case strerror_test_cases[] = {
- KUNIT_CASE(test_strerror_returns_null_for_unknown_errors),
- KUNIT_CASE(test_strerror_r_returns_null_if_buflen_is_zero),
- KUNIT_CASE(test_strerror_returns_string),
- KUNIT_CASE(test_strerror_r_correctly_truncates_message_to_buffer_size),
- KUNIT_CASE(test_strerror_r_returns_string_for_unknown_errors),
- {},
- };
- static struct kunit_suite strerror_test_module = {
- .name = "strerror-test",
- .test_cases = strerror_test_cases,
- };
- kunit_test_suites(&strerror_test_module);
|