1 // SPDX-License-Identifier: LGPL-2.1
2 /*
3 *
4 * KUnit tests of SMB2 maperror
5 *
6 * Copyright (C) 2025 KylinSoft Co., Ltd. All rights reserved.
7 * Author(s): ChenXiaoSong <chenxiaosong@kylinos.cn>
8 *
9 */
10
11 #include <kunit/test.h>
12 #include "smb2glob.h"
13
14 const struct status_to_posix_error *smb2_get_err_map_test(__u32 smb2_status);
15 extern const struct status_to_posix_error *smb2_error_map_table_test;
16 extern unsigned int smb2_error_map_num;
17
18 static void
test_cmp_map(struct kunit * test,const struct status_to_posix_error * expect)19 test_cmp_map(struct kunit *test, const struct status_to_posix_error *expect)
20 {
21 const struct status_to_posix_error *result;
22
23 result = smb2_get_err_map_test(expect->smb2_status);
24 KUNIT_EXPECT_PTR_NE(test, NULL, result);
25 KUNIT_EXPECT_EQ(test, expect->smb2_status, result->smb2_status);
26 KUNIT_EXPECT_EQ(test, expect->posix_error, result->posix_error);
27 KUNIT_EXPECT_STREQ(test, expect->status_string, result->status_string);
28 }
29
maperror_test_check_search(struct kunit * test)30 static void maperror_test_check_search(struct kunit *test)
31 {
32 unsigned int i;
33
34 for (i = 0; i < smb2_error_map_num; i++)
35 test_cmp_map(test, &smb2_error_map_table_test[i]);
36 }
37
38 static struct kunit_case maperror_test_cases[] = {
39 KUNIT_CASE(maperror_test_check_search),
40 {}
41 };
42
43 static struct kunit_suite maperror_suite = {
44 .name = "smb2_maperror",
45 .test_cases = maperror_test_cases,
46 };
47
48 kunit_test_suite(maperror_suite);
49
50 MODULE_LICENSE("GPL");
51 MODULE_DESCRIPTION("KUnit tests of SMB2 maperror");
52