enh: test coverage of tfs
This commit is contained in:
parent
84d4808291
commit
67af6846f6
|
@ -148,7 +148,7 @@ int32_t tfsMkdirRecur(STfs *pTfs, const char *rname);
|
||||||
* @return int32_t 0 for success, -1 for failure.
|
* @return int32_t 0 for success, -1 for failure.
|
||||||
*/
|
*/
|
||||||
int32_t tfsMkdirRecurAt(STfs *pTfs, const char *rname, SDiskID diskId);
|
int32_t tfsMkdirRecurAt(STfs *pTfs, const char *rname, SDiskID diskId);
|
||||||
|
#if 0
|
||||||
/**
|
/**
|
||||||
* @brief check directories exist in tfs.
|
* @brief check directories exist in tfs.
|
||||||
*
|
*
|
||||||
|
@ -158,7 +158,7 @@ int32_t tfsMkdirRecurAt(STfs *pTfs, const char *rname, SDiskID diskId);
|
||||||
* @return true for exist, false for not exist.
|
* @return true for exist, false for not exist.
|
||||||
*/
|
*/
|
||||||
bool tfsDirExistAt(STfs *pTfs, const char *rname, SDiskID diskId);
|
bool tfsDirExistAt(STfs *pTfs, const char *rname, SDiskID diskId);
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* @brief Remove directory at all levels in tfs.
|
* @brief Remove directory at all levels in tfs.
|
||||||
*
|
*
|
||||||
|
@ -241,7 +241,7 @@ void tfsBasename(const STfsFile *pFile, char *dest);
|
||||||
* @param dest The buffer where dirname will be saved.
|
* @param dest The buffer where dirname will be saved.
|
||||||
*/
|
*/
|
||||||
void tfsDirname(const STfsFile *pFile, char *dest);
|
void tfsDirname(const STfsFile *pFile, char *dest);
|
||||||
|
#if 0
|
||||||
/**
|
/**
|
||||||
* @brief Get the absolute file name of rname.
|
* @brief Get the absolute file name of rname.
|
||||||
*
|
*
|
||||||
|
@ -251,7 +251,7 @@ void tfsDirname(const STfsFile *pFile, char *dest);
|
||||||
* @param aname absolute file name
|
* @param aname absolute file name
|
||||||
*/
|
*/
|
||||||
void tfsAbsoluteName(STfs *pTfs, SDiskID diskId, const char *rname, char *aname);
|
void tfsAbsoluteName(STfs *pTfs, SDiskID diskId, const char *rname, char *aname);
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* @brief Remove file in tfs.
|
* @brief Remove file in tfs.
|
||||||
*
|
*
|
||||||
|
|
|
@ -245,13 +245,13 @@ void tfsDirname(const STfsFile *pFile, char *dest) {
|
||||||
tstrncpy(tname, pFile->aname, TSDB_FILENAME_LEN);
|
tstrncpy(tname, pFile->aname, TSDB_FILENAME_LEN);
|
||||||
tstrncpy(dest, taosDirName(tname), TSDB_FILENAME_LEN);
|
tstrncpy(dest, taosDirName(tname), TSDB_FILENAME_LEN);
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
void tfsAbsoluteName(STfs *pTfs, SDiskID diskId, const char *rname, char *aname) {
|
void tfsAbsoluteName(STfs *pTfs, SDiskID diskId, const char *rname, char *aname) {
|
||||||
STfsDisk *pDisk = TFS_DISK_AT(pTfs, diskId);
|
STfsDisk *pDisk = TFS_DISK_AT(pTfs, diskId);
|
||||||
|
|
||||||
(void)snprintf(aname, TSDB_FILENAME_LEN, "%s%s%s", pDisk->path, TD_DIRSEP, rname);
|
(void)snprintf(aname, TSDB_FILENAME_LEN, "%s%s%s", pDisk->path, TD_DIRSEP, rname);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
int32_t tfsRemoveFile(const STfsFile *pFile) { return taosRemoveFile(pFile->aname); }
|
int32_t tfsRemoveFile(const STfsFile *pFile) { return taosRemoveFile(pFile->aname); }
|
||||||
|
|
||||||
int32_t tfsCopyFile(const STfsFile *pFile1, const STfsFile *pFile2) {
|
int32_t tfsCopyFile(const STfsFile *pFile1, const STfsFile *pFile2) {
|
||||||
|
@ -340,7 +340,7 @@ int32_t tfsMkdir(STfs *pTfs, const char *rname) {
|
||||||
|
|
||||||
TAOS_RETURN(0);
|
TAOS_RETURN(0);
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
bool tfsDirExistAt(STfs *pTfs, const char *rname, SDiskID diskId) {
|
bool tfsDirExistAt(STfs *pTfs, const char *rname, SDiskID diskId) {
|
||||||
STfsDisk *pDisk = TFS_DISK_AT(pTfs, diskId);
|
STfsDisk *pDisk = TFS_DISK_AT(pTfs, diskId);
|
||||||
char aname[TMPNAME_LEN];
|
char aname[TMPNAME_LEN];
|
||||||
|
@ -348,7 +348,7 @@ bool tfsDirExistAt(STfs *pTfs, const char *rname, SDiskID diskId) {
|
||||||
(void)snprintf(aname, TMPNAME_LEN, "%s%s%s", pDisk->path, TD_DIRSEP, rname);
|
(void)snprintf(aname, TMPNAME_LEN, "%s%s%s", pDisk->path, TD_DIRSEP, rname);
|
||||||
return taosDirExist(aname);
|
return taosDirExist(aname);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
int32_t tfsRmdir(STfs *pTfs, const char *rname) {
|
int32_t tfsRmdir(STfs *pTfs, const char *rname) {
|
||||||
if (rname[0] == 0) {
|
if (rname[0] == 0) {
|
||||||
TAOS_RETURN(0);
|
TAOS_RETURN(0);
|
||||||
|
|
|
@ -281,6 +281,9 @@ TEST_F(TfsTest, 04_File) {
|
||||||
const STfsFile *pf2 = tfsReaddir(pDir);
|
const STfsFile *pf2 = tfsReaddir(pDir);
|
||||||
EXPECT_EQ(pf2, nullptr);
|
EXPECT_EQ(pf2, nullptr);
|
||||||
|
|
||||||
|
pDir->pDir = taosOpenDir(fulldir);
|
||||||
|
EXPECT_NE(pDir->pDir, nullptr);
|
||||||
|
|
||||||
tfsClosedir(pDir);
|
tfsClosedir(pDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -783,5 +786,49 @@ TEST_F(TfsTest, 06_Exception) {
|
||||||
taosMemoryFreeClear(pTfs);
|
taosMemoryFreeClear(pTfs);
|
||||||
|
|
||||||
STfs tfs = {0};
|
STfs tfs = {0};
|
||||||
EXPECT_EQ(tfsDiskSpaceAvailable(&tfs, -1), 0);
|
STfsTier *pTier = &tfs.tiers[0];
|
||||||
|
EXPECT_EQ(tfsDiskSpaceAvailable(&tfs, -1), false);
|
||||||
|
tfs.nlevel = 2;
|
||||||
|
pTier->ndisk = 3;
|
||||||
|
pTier->nAvailDisks = 1;
|
||||||
|
EXPECT_EQ(tfsDiskSpaceAvailable(&tfs, 0), false);
|
||||||
|
pTier->disks[0] = &disk;
|
||||||
|
EXPECT_EQ(tfsDiskSpaceAvailable(&tfs, 0), false);
|
||||||
|
|
||||||
|
EXPECT_EQ(tfsDiskSpaceSufficient(&tfs, -1, 0), false);
|
||||||
|
EXPECT_EQ(tfsDiskSpaceSufficient(&tfs, tfs.nlevel + 1, 0), false);
|
||||||
|
EXPECT_EQ(tfsDiskSpaceSufficient(&tfs, 0, -1), false);
|
||||||
|
EXPECT_EQ(tfsDiskSpaceSufficient(&tfs, 0, pTier->ndisk), false);
|
||||||
|
|
||||||
|
EXPECT_EQ(tfsGetDisksAtLevel(&tfs, -1), 0);
|
||||||
|
EXPECT_EQ(tfsGetDisksAtLevel(&tfs, tfs.nlevel), 0);
|
||||||
|
|
||||||
|
EXPECT_EQ(tfsGetLevel(&tfs), tfs.nlevel);
|
||||||
|
|
||||||
|
for (int32_t l = 0; l < tfs.nlevel; ++l) {
|
||||||
|
EXPECT_EQ(taosThreadSpinInit(&tfs.tiers[l].lock, 0), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDiskID diskID = {0};
|
||||||
|
disk.size.avail = TFS_MIN_DISK_FREE_SIZE;
|
||||||
|
EXPECT_EQ(tfsAllocDisk(&tfs, tfs.nlevel, &diskID), 0);
|
||||||
|
tfs.nlevel = 0;
|
||||||
|
diskID.level = 0;
|
||||||
|
EXPECT_EQ(tfsAllocDisk(&tfs, 0, &diskID), 0);
|
||||||
|
tfs.nlevel = 2;
|
||||||
|
|
||||||
|
diskID.id = 10;
|
||||||
|
EXPECT_EQ(tfsMkdirAt(&tfs, NULL, diskID), TSDB_CODE_FS_INVLD_CFG);
|
||||||
|
|
||||||
|
EXPECT_NE(tfsMkdirRecurAt(&tfs, NULL, diskID), 0);
|
||||||
|
|
||||||
|
const char *rname = "";
|
||||||
|
EXPECT_EQ(tfsRmdir(&tfs, rname), 0);
|
||||||
|
|
||||||
|
EXPECT_EQ(tfsSearch(&tfs, -1, NULL), -1);
|
||||||
|
EXPECT_EQ(tfsSearch(&tfs, tfs.nlevel, NULL), -1);
|
||||||
|
|
||||||
|
for (int32_t l = 0; l < tfs.nlevel; ++l) {
|
||||||
|
EXPECT_EQ(taosThreadSpinDestroy(&tfs.tiers[l].lock), 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue