smb/client: introduce KUnit tests to check DOS/SRV err mapping search
Check whether all elements can be correctly found in the arrays. Signed-off-by: Youling Tang <tangyouling@kylinos.cn> Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn> Signed-off-by: Steve French <stfrench@microsoft.com>master
parent
8c028dd086
commit
85274a3bd4
|
|
@ -16,11 +16,6 @@
|
|||
#include "nterr.h"
|
||||
#include "cifs_debug.h"
|
||||
|
||||
struct smb_to_posix_error {
|
||||
__u16 smb_err;
|
||||
int posix_code;
|
||||
};
|
||||
|
||||
static __always_inline int smb1_posix_error_cmp(const void *_key, const void *_pivot)
|
||||
{
|
||||
__u16 key = *(__u16 *)_key;
|
||||
|
|
@ -260,4 +255,32 @@ EXPORT_SYMBOL_FOR_SMB_TEST(ntstatus_to_dos_map_test);
|
|||
|
||||
unsigned int ntstatus_to_dos_num = ARRAY_SIZE(ntstatus_to_dos_map);
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(ntstatus_to_dos_num);
|
||||
|
||||
const struct smb_to_posix_error *
|
||||
search_mapping_table_ERRDOS_test(__u16 smb_err)
|
||||
{
|
||||
return search_mapping_table_ERRDOS(smb_err);
|
||||
}
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(search_mapping_table_ERRDOS_test);
|
||||
|
||||
const struct smb_to_posix_error *
|
||||
mapping_table_ERRDOS_test = mapping_table_ERRDOS;
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(mapping_table_ERRDOS_test);
|
||||
|
||||
unsigned int mapping_table_ERRDOS_num = ARRAY_SIZE(mapping_table_ERRDOS);
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(mapping_table_ERRDOS_num);
|
||||
|
||||
const struct smb_to_posix_error *
|
||||
search_mapping_table_ERRSRV_test(__u16 smb_err)
|
||||
{
|
||||
return search_mapping_table_ERRSRV(smb_err);
|
||||
}
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(search_mapping_table_ERRSRV_test);
|
||||
|
||||
const struct smb_to_posix_error *
|
||||
mapping_table_ERRSRV_test = mapping_table_ERRSRV;
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(mapping_table_ERRSRV_test);
|
||||
|
||||
unsigned int mapping_table_ERRSRV_num = ARRAY_SIZE(mapping_table_ERRSRV);
|
||||
EXPORT_SYMBOL_FOR_SMB_TEST(mapping_table_ERRSRV_num);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include <kunit/test.h>
|
||||
#include "smb1proto.h"
|
||||
#include "nterr.h"
|
||||
#include "smberr.h"
|
||||
|
||||
#define DEFINE_CHECK_SEARCH_FUNC(__struct_name, __field, \
|
||||
__array, __num) \
|
||||
|
|
@ -39,12 +40,29 @@ test_cmp_ntstatus_to_dos_err(struct kunit *test,
|
|||
KUNIT_EXPECT_STREQ(test, expect->nt_errstr, result->nt_errstr);
|
||||
}
|
||||
|
||||
static void
|
||||
test_cmp_smb_to_posix_error(struct kunit *test,
|
||||
const struct smb_to_posix_error *expect,
|
||||
const struct smb_to_posix_error *result)
|
||||
{
|
||||
KUNIT_EXPECT_EQ(test, expect->smb_err, result->smb_err);
|
||||
KUNIT_EXPECT_EQ(test, expect->posix_code, result->posix_code);
|
||||
}
|
||||
|
||||
/* check_search_ntstatus_to_dos_map */
|
||||
DEFINE_CHECK_SEARCH_FUNC(ntstatus_to_dos_err, ntstatus, ntstatus_to_dos_map,
|
||||
ntstatus_to_dos_num);
|
||||
/* check_search_mapping_table_ERRDOS */
|
||||
DEFINE_CHECK_SEARCH_FUNC(smb_to_posix_error, smb_err, mapping_table_ERRDOS,
|
||||
mapping_table_ERRDOS_num);
|
||||
/* check_search_mapping_table_ERRSRV */
|
||||
DEFINE_CHECK_SEARCH_FUNC(smb_to_posix_error, smb_err, mapping_table_ERRSRV,
|
||||
mapping_table_ERRSRV_num);
|
||||
|
||||
static struct kunit_case maperror_test_cases[] = {
|
||||
KUNIT_CASE(check_search_ntstatus_to_dos_map),
|
||||
KUNIT_CASE(check_search_mapping_table_ERRDOS),
|
||||
KUNIT_CASE(check_search_mapping_table_ERRSRV),
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -242,6 +242,14 @@ extern const struct ntstatus_to_dos_err *ntstatus_to_dos_map_test;
|
|||
extern unsigned int ntstatus_to_dos_num;
|
||||
const struct ntstatus_to_dos_err *
|
||||
search_ntstatus_to_dos_map_test(__u32 ntstatus);
|
||||
extern const struct smb_to_posix_error *mapping_table_ERRDOS_test;
|
||||
extern unsigned int mapping_table_ERRDOS_num;
|
||||
const struct smb_to_posix_error *
|
||||
search_mapping_table_ERRDOS_test(__u16 smb_err);
|
||||
extern const struct smb_to_posix_error *mapping_table_ERRSRV_test;
|
||||
extern unsigned int mapping_table_ERRSRV_num;
|
||||
const struct smb_to_posix_error *
|
||||
search_mapping_table_ERRSRV_test(__u16 smb_err);
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -9,6 +9,11 @@
|
|||
*
|
||||
*/
|
||||
|
||||
struct smb_to_posix_error {
|
||||
__u16 smb_err;
|
||||
int posix_code;
|
||||
};
|
||||
|
||||
/* The request was successful. */
|
||||
#define SUCCESS 0x00
|
||||
/* Error is from the core DOS operating system set */
|
||||
|
|
|
|||
Loading…
Reference in New Issue