testing/fstest:Support test fs with parameter

Signed-off-by: anjianjun <anjianjun@xiaomi.com>
This commit is contained in:
anjianjun 2021-07-30 16:58:59 +08:00 committed by Xiang Xiao
parent 6367449751
commit 54d94d21b8
2 changed files with 57 additions and 4 deletions

View File

@ -17,3 +17,9 @@ for the SPIFFS file system.
- `CONFIG_TESTING_FSTEST_MOUNTPT` Path where the file system is mounted.
- `CONFIG_TESTING_FSTEST_NLOOPS` Number of test loops. default `100`.
- `CONFIG_TESTING_FSTEST_VERBOSE` Verbose output.
EXAMPLE
fstest -m /mnt -n 10 Test /mnt 10 times
fstest -h Get help message
fstest Test path define by `CONFIG_TESTING_FSTEST_MOUNTPT`
`CONFIG_TESTING_FSTEST_NLOOPS` times

View File

@ -102,7 +102,8 @@ struct fstest_filedesc_s
static uint8_t g_fileimage[CONFIG_TESTING_FSTEST_MAXFILE];
static struct fstest_filedesc_s g_files[CONFIG_TESTING_FSTEST_MAXOPEN];
static const char g_mountdir[] = CONFIG_TESTING_FSTEST_MOUNTPT "/";
static char g_mountdir[CONFIG_TESTING_FSTEST_MAXNAME] =
CONFIG_TESTING_FSTEST_MOUNTPT "/";
static int g_nfiles;
static int g_ndeleted;
static int g_nfailed;
@ -925,14 +926,14 @@ static int fstest_directory(void)
/* Open the directory */
dirp = opendir(CONFIG_TESTING_FSTEST_MOUNTPT);
dirp = opendir(g_mountdir);
if (!dirp)
{
/* Failed to open the directory */
printf("ERROR: Failed to open directory '%s': %d\n",
CONFIG_TESTING_FSTEST_MOUNTPT, errno);
g_mountdir, errno);
return ERROR;
}
@ -959,6 +960,19 @@ static int fstest_directory(void)
return OK;
}
/****************************************************************************
* Show help Message
****************************************************************************/
static void show_useage(void)
{
printf("Usage : fstest [OPTION [ARG]] ...\n");
printf("-h show this help statement\n");
printf("-n num of test loop e.g. [%d]\n", CONFIG_TESTING_FSTEST_NLOOPS);
printf("-m mount point tobe test e.g. [%s]\n",
CONFIG_TESTING_FSTEST_MOUNTPT);
}
/****************************************************************************
* Public Functions
****************************************************************************/
@ -972,10 +986,43 @@ int main(int argc, FAR char *argv[])
struct statfs buf;
unsigned int i;
int ret;
int loop_num;
int option;
/* Seed the random number generated */
srand(0x93846);
loop_num = CONFIG_TESTING_FSTEST_NLOOPS;
strcpy(g_mountdir, CONFIG_TESTING_FSTEST_MOUNTPT);
/* Opt Parse */
while ((option = getopt(argc, argv, ":m:hn:")) != -1)
{
switch (option)
{
case 'm':
strcpy(g_mountdir, optarg);
break;
case 'h':
show_useage();
exit(0);
case 'n':
loop_num = atoi(optarg);
break;
case ':':
printf("Error: Missing required argument\n");
exit(1);
case '?':
printf("Error: Unrecognized option\n");
exit(1);
}
}
if (g_mountdir[strlen(g_mountdir)-1] != '/')
{
strcat(g_mountdir, "/");
}
/* Set up memory monitoring */
@ -990,7 +1037,7 @@ int main(int argc, FAR char *argv[])
#if CONFIG_TESTING_FSTEST_NLOOPS == 0
for (i = 0; ; i++)
#else
for (i = 1; i <= CONFIG_TESTING_FSTEST_NLOOPS; i++)
for (i = 1; i <= loop_num; i++)
#endif
{
/* Write a files to the file system until either (1) all of the open