enh: test coverage of tfs
This commit is contained in:
parent
5c61eea4ad
commit
84d4808291
|
@ -16,6 +16,10 @@
|
||||||
#ifndef _TD_TFS_INT_H_
|
#ifndef _TD_TFS_INT_H_
|
||||||
#define _TD_TFS_INT_H_
|
#define _TD_TFS_INT_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#include "taosdef.h"
|
#include "taosdef.h"
|
||||||
|
|
|
@ -41,13 +41,13 @@ void tfsDestroyTier(STfsTier *pTier) {
|
||||||
int32_t tfsMountDiskToTier(STfsTier *pTier, SDiskCfg *pCfg, STfsDisk **ppDisk) {
|
int32_t tfsMountDiskToTier(STfsTier *pTier, SDiskCfg *pCfg, STfsDisk **ppDisk) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t lino = 0;
|
int32_t lino = 0;
|
||||||
|
int32_t id = 0;
|
||||||
STfsDisk *pDisk = NULL;
|
STfsDisk *pDisk = NULL;
|
||||||
|
|
||||||
if (pTier->ndisk >= TFS_MAX_DISKS_PER_TIER) {
|
if (pTier->ndisk >= TFS_MAX_DISKS_PER_TIER) {
|
||||||
TAOS_CHECK_GOTO(TSDB_CODE_FS_TOO_MANY_MOUNT, &lino, _exit);
|
TAOS_CHECK_GOTO(TSDB_CODE_FS_TOO_MANY_MOUNT, &lino, _exit);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t id = 0;
|
|
||||||
if (pTier->level == 0) {
|
if (pTier->level == 0) {
|
||||||
if (pTier->disks[0] != NULL) {
|
if (pTier->disks[0] != NULL) {
|
||||||
id = pTier->ndisk;
|
id = pTier->ndisk;
|
||||||
|
|
|
@ -7,8 +7,13 @@ target_link_libraries(
|
||||||
PUBLIC tfs
|
PUBLIC tfs
|
||||||
PUBLIC gtest_main
|
PUBLIC gtest_main
|
||||||
)
|
)
|
||||||
|
target_include_directories(
|
||||||
|
tfs_test
|
||||||
|
PUBLIC "${TD_SOURCE_DIR}/include/libs/tfs"
|
||||||
|
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../inc"
|
||||||
|
)
|
||||||
|
|
||||||
# add_test(
|
add_test(
|
||||||
# NAME tfs_test
|
NAME tfs_test
|
||||||
# COMMAND tfs_test
|
COMMAND tfs_test
|
||||||
# )
|
)
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#include "tfs.h"
|
#include "tfs.h"
|
||||||
|
#include "tfsInt.h"
|
||||||
|
|
||||||
class TfsTest : public ::testing::Test {
|
class TfsTest : public ::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
|
@ -744,3 +745,43 @@ TEST_F(TfsTest, 05_MultiDisk) {
|
||||||
|
|
||||||
tfsClose(pTfs);
|
tfsClose(pTfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(TfsTest, 06_Exception) {
|
||||||
|
// tfsDisk.c
|
||||||
|
STfsDisk *pDisk = NULL;
|
||||||
|
EXPECT_EQ(tfsNewDisk(0, 0, 0, NULL, &pDisk), TSDB_CODE_INVALID_PARA);
|
||||||
|
|
||||||
|
STfsDisk disk = {0};
|
||||||
|
EXPECT_EQ(tfsUpdateDiskSize(&disk), TSDB_CODE_INVALID_PARA);
|
||||||
|
|
||||||
|
// tfsTier.c
|
||||||
|
STfsTier tfsTier = {0};
|
||||||
|
EXPECT_EQ(taosThreadSpinInit(&tfsTier.lock, 0), 0);
|
||||||
|
EXPECT_EQ(tfsAllocDiskOnTier(&tfsTier), TSDB_CODE_FS_NO_VALID_DISK);
|
||||||
|
|
||||||
|
tfsTier.ndisk = 3;
|
||||||
|
tfsTier.nAvailDisks = 1;
|
||||||
|
|
||||||
|
tfsTier.disks[1] = &disk;
|
||||||
|
disk.disable = 1;
|
||||||
|
EXPECT_EQ(tfsAllocDiskOnTier(&tfsTier), TSDB_CODE_FS_NO_VALID_DISK);
|
||||||
|
disk.disable = 0;
|
||||||
|
disk.size.avail = 0;
|
||||||
|
EXPECT_EQ(tfsAllocDiskOnTier(&tfsTier), TSDB_CODE_FS_NO_VALID_DISK);
|
||||||
|
|
||||||
|
tfsTier.ndisk = TFS_MAX_DISKS_PER_TIER;
|
||||||
|
SDiskCfg diskCfg = {0};
|
||||||
|
tstrncpy(diskCfg.dir, "testDataDir", TSDB_FILENAME_LEN);
|
||||||
|
EXPECT_EQ(tfsMountDiskToTier(&tfsTier, &diskCfg, 0), TSDB_CODE_FS_TOO_MANY_MOUNT);
|
||||||
|
EXPECT_EQ(taosThreadSpinDestroy(&tfsTier.lock), 0);
|
||||||
|
|
||||||
|
// tfs.c
|
||||||
|
STfs *pTfs = NULL;
|
||||||
|
EXPECT_EQ(tfsOpen(0, -1, &pTfs), TSDB_CODE_INVALID_PARA);
|
||||||
|
EXPECT_EQ(tfsOpen(0, 0, &pTfs), TSDB_CODE_INVALID_PARA);
|
||||||
|
EXPECT_EQ(tfsOpen(0, TFS_MAX_DISKS + 1, &pTfs), TSDB_CODE_INVALID_PARA);
|
||||||
|
taosMemoryFreeClear(pTfs);
|
||||||
|
|
||||||
|
STfs tfs = {0};
|
||||||
|
EXPECT_EQ(tfsDiskSpaceAvailable(&tfs, -1), 0);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue