TEST: add skip command to skip individual tests
This patch adds a command to skip individual tests. It additionally accepts more than one test separated by comma.
This commit is contained in:
@@ -242,7 +242,7 @@ struct scsi_test tests[] = {
|
|||||||
|
|
||||||
void print_usage(void)
|
void print_usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Usage: iscsi-test [-?] [-?|--help] [--usage] [-t|--test=<test>]\n"
|
fprintf(stderr, "Usage: iscsi-test [-?] [-?|--help] [--usage] [-t|--test=<test>] [-s|--skip=<test>]\n"
|
||||||
"\t\t[-l|--list] [--info] [-i|--initiator-name=<iqn-name>]\n"
|
"\t\t[-l|--list] [--info] [-i|--initiator-name=<iqn-name>]\n"
|
||||||
"\t\t<iscsi-url>\n");
|
"\t\t<iscsi-url>\n");
|
||||||
}
|
}
|
||||||
@@ -253,6 +253,7 @@ void print_help(void)
|
|||||||
fprintf(stderr, " -i, --initiator-name=iqn-name Initiatorname to use\n");
|
fprintf(stderr, " -i, --initiator-name=iqn-name Initiatorname to use\n");
|
||||||
fprintf(stderr, " -I, --initiator-name-2=iqn-name Second initiatorname to use\n");
|
fprintf(stderr, " -I, --initiator-name-2=iqn-name Second initiatorname to use\n");
|
||||||
fprintf(stderr, " -t, --test=test-name Which test to run. Default is to run all tests.\n");
|
fprintf(stderr, " -t, --test=test-name Which test to run. Default is to run all tests.\n");
|
||||||
|
fprintf(stderr, " -s, --skip=test-name Which test to skip. Default is to run all tests.\n");
|
||||||
fprintf(stderr, " -l, --list List all tests.\n");
|
fprintf(stderr, " -l, --list List all tests.\n");
|
||||||
fprintf(stderr, " --info, Print extra info about a test.\n");
|
fprintf(stderr, " --info, Print extra info about a test.\n");
|
||||||
fprintf(stderr, " --dataloss Allow destructive tests.\n");
|
fprintf(stderr, " --dataloss Allow destructive tests.\n");
|
||||||
@@ -376,6 +377,7 @@ int main(int argc, const char *argv[])
|
|||||||
int res, num_failed, num_skipped;
|
int res, num_failed, num_skipped;
|
||||||
struct scsi_test *test;
|
struct scsi_test *test;
|
||||||
char *testname = NULL;
|
char *testname = NULL;
|
||||||
|
char *skipname = NULL;
|
||||||
|
|
||||||
struct poptOption popt_options[] = {
|
struct poptOption popt_options[] = {
|
||||||
{ "help", '?', POPT_ARG_NONE, &show_help, 0, "Show this help message", NULL },
|
{ "help", '?', POPT_ARG_NONE, &show_help, 0, "Show this help message", NULL },
|
||||||
@@ -384,6 +386,7 @@ int main(int argc, const char *argv[])
|
|||||||
{ "initiator-name", 'i', POPT_ARG_STRING, &initiator, 0, "Initiatorname to use", "iqn-name" },
|
{ "initiator-name", 'i', POPT_ARG_STRING, &initiator, 0, "Initiatorname to use", "iqn-name" },
|
||||||
{ "initiator-name-2", 'I', POPT_ARG_STRING, &initiator, 0, "Second initiatorname to use for tests using more two sessions", "iqn-name" },
|
{ "initiator-name-2", 'I', POPT_ARG_STRING, &initiator, 0, "Second initiatorname to use for tests using more two sessions", "iqn-name" },
|
||||||
{ "test", 't', POPT_ARG_STRING, &testname, 0, "Which test to run", "testname" },
|
{ "test", 't', POPT_ARG_STRING, &testname, 0, "Which test to run", "testname" },
|
||||||
|
{ "skip", 's', POPT_ARG_STRING, &skipname, 0, "Which test to skip", "skipname" },
|
||||||
{ "info", 0, POPT_ARG_NONE, &show_info, 0, "Show information about the test", "testname" },
|
{ "info", 0, POPT_ARG_NONE, &show_info, 0, "Show information about the test", "testname" },
|
||||||
{ "dataloss", 0, POPT_ARG_NONE, &data_loss, 0, "Allow destructuve tests", NULL },
|
{ "dataloss", 0, POPT_ARG_NONE, &data_loss, 0, "Allow destructuve tests", NULL },
|
||||||
POPT_TABLEEND
|
POPT_TABLEEND
|
||||||
@@ -439,6 +442,21 @@ int main(int argc, const char *argv[])
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (skipname != NULL) {
|
||||||
|
char * pchr = skipname;
|
||||||
|
char * pchr2 = NULL;
|
||||||
|
int skip = 0;
|
||||||
|
do {
|
||||||
|
pchr2 = strchr(pchr,',');
|
||||||
|
if (pchr2) pchr2[0]=0x00;
|
||||||
|
if (!fnmatch(pchr, test->name, 0)) {
|
||||||
|
skip = 1;
|
||||||
|
}
|
||||||
|
if (pchr2) {pchr2[0]=',';pchr=pchr2+1;}
|
||||||
|
} while (pchr2);
|
||||||
|
if (skip) continue;
|
||||||
|
}
|
||||||
|
|
||||||
res = test->test(initiator, url, data_loss, show_info);
|
res = test->test(initiator, url, data_loss, show_info);
|
||||||
if (res == 0) {
|
if (res == 0) {
|
||||||
printf("TEST %s [OK]\n", test->name);
|
printf("TEST %s [OK]\n", test->name);
|
||||||
|
|||||||
Reference in New Issue
Block a user