all test cases in tests/subsys/fs/fs_api are moved to new ztest API Signed-off-by: Meng xianglin <xianglinx.meng@intel.com>
137 lines
2.4 KiB
C
137 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2020 Intel Corporation.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include "test_fs.h"
|
|
/* amount of file system */
|
|
#define NUM_FS 2
|
|
#define TEST_FS_NAND1 "/NAND:"
|
|
#define TEST_FS_NAND2 "/MMCBLOCK:"
|
|
|
|
static struct test_fs_data test_data;
|
|
|
|
static struct fs_mount_t test_fs_mnt_1 = {
|
|
.type = TEST_FS_1,
|
|
.mnt_point = TEST_FS_NAND1,
|
|
.fs_data = &test_data,
|
|
};
|
|
|
|
static struct fs_mount_t test_fs_mnt_2 = {
|
|
.type = TEST_FS_2,
|
|
.mnt_point = TEST_FS_NAND2,
|
|
.fs_data = &test_data,
|
|
};
|
|
|
|
static int test_fs_init(void)
|
|
{
|
|
if (fs_register(TEST_FS_1, &temp_fs)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
/* Attempt to re-register a file system */
|
|
if (fs_register(TEST_FS_1, &temp_fs) != -EALREADY) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_mount(&test_fs_mnt_1)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_register(TEST_FS_2, &temp_fs)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_mount(&test_fs_mnt_2)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int test_fs_readmount(void)
|
|
{
|
|
int ret;
|
|
int mnt_nbr = 0;
|
|
const char *mnt_name;
|
|
|
|
do {
|
|
ret = fs_readmount(&mnt_nbr, &mnt_name);
|
|
if (ret < 0) {
|
|
break;
|
|
}
|
|
|
|
|
|
} while (true);
|
|
|
|
if (mnt_nbr == NUM_FS) {
|
|
return 0;
|
|
}
|
|
|
|
return TC_FAIL;
|
|
}
|
|
|
|
static int test_fs_deinit(void)
|
|
{
|
|
/* NULL parameter */
|
|
if (fs_unregister(TEST_FS_1, NULL) == 0) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_unregister(TEST_FS_1, &temp_fs)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_unmount(&test_fs_mnt_1)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_unregister(TEST_FS_2, &temp_fs)) {
|
|
return -EINVAL;
|
|
}
|
|
|
|
if (fs_unmount(&test_fs_mnt_2)) {
|
|
return -EINVAL;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
static int test_fs_external(void)
|
|
{
|
|
/* There is no way to statically determine whether a file
|
|
* system is unsupported, but */
|
|
if (fs_register(FS_TYPE_EXTERNAL_BASE, &temp_fs) != -ENOSPC) {
|
|
return TC_FAIL;
|
|
}
|
|
|
|
if (fs_unregister(FS_TYPE_EXTERNAL_BASE, &temp_fs) != -EINVAL) {
|
|
return TC_FAIL;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/**
|
|
* @brief Multi file systems register and unregister
|
|
*
|
|
* @details
|
|
* Register and unregister two file systems to test the system support
|
|
* multiple file system simultaneously
|
|
*
|
|
*@addtogroup filesystem_api
|
|
*@{
|
|
*/
|
|
|
|
ZTEST(fs_api_register_mount, test_fs_register)
|
|
{
|
|
zassert_true(test_fs_init() == 0, "Failed to register filesystems");
|
|
zassert_true(test_fs_readmount() == 0, "Failed to readmount");
|
|
zassert_true(test_fs_external() == 0, "Supported other file system");
|
|
zassert_true(test_fs_deinit() == 0, "Failed to unregister filesystems");
|
|
}
|
|
|
|
/**
|
|
* @}
|
|
*/
|