Adopted case-as-label style in switch statements
So:
switch (cond) {
case 0:;
// first case
break;
case 1:;
// second case
break;
default:;
// default case
break;
}
This basically adopts our current label style for the case statements in
switch statements. It initially looks like quite a monstrosity, but I
think it does a good job at highlighting that case statements in C are
no safer than labels and gotos.
I would not use this style in a language with better scoping in switch
statements.
I'd prefer not to use switch statements, their scoping rules in C are
just too error-prone, and the compiler usually optimizes things out
anyways, but there are some places where switch statements are clearly
the correct organization -- state machines such as lfsr_traversal_read
for example.
If you're curious about the ':;' ending, this is used in our current
style for labels to avoid "declaration is not a statement" warnings.
Which I think is just a bit of leftover from C historically not having
mixed statements/declarations.
This commit is contained in:
@@ -9313,7 +9313,7 @@ int lfsr_file_opencfg(lfs_t *lfs, lfsr_file_t *file,
|
|||||||
0, file->buffer, lfsr_bshrub_size(&file->bshrub));
|
0, file->buffer, lfsr_bshrub_size(&file->bshrub));
|
||||||
if (d < 0) {
|
if (d < 0) {
|
||||||
err = d;
|
err = d;
|
||||||
goto failed_with_buffer;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// small files remain perpetually unflushed
|
// small files remain perpetually unflushed
|
||||||
@@ -9327,7 +9327,7 @@ int lfsr_file_opencfg(lfs_t *lfs, lfsr_file_t *file,
|
|||||||
lfsr_addopened(lfs, &file->m);
|
lfsr_addopened(lfs, &file->m);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
failed_with_buffer:;
|
failed:;
|
||||||
// clean up memory
|
// clean up memory
|
||||||
if (!file->cfg->buffer) {
|
if (!file->cfg->buffer) {
|
||||||
lfs_free(file->buffer);
|
lfs_free(file->buffer);
|
||||||
@@ -14777,7 +14777,7 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
|
|||||||
lfs->rcache.buffer = lfs_malloc(lfs->cfg->cache_size);
|
lfs->rcache.buffer = lfs_malloc(lfs->cfg->cache_size);
|
||||||
if (!lfs->rcache.buffer) {
|
if (!lfs->rcache.buffer) {
|
||||||
err = LFS_ERR_NOMEM;
|
err = LFS_ERR_NOMEM;
|
||||||
goto cleanup;
|
goto failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14788,7 +14788,7 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
|
|||||||
lfs->pcache.buffer = lfs_malloc(lfs->cfg->cache_size);
|
lfs->pcache.buffer = lfs_malloc(lfs->cfg->cache_size);
|
||||||
if (!lfs->pcache.buffer) {
|
if (!lfs->pcache.buffer) {
|
||||||
err = LFS_ERR_NOMEM;
|
err = LFS_ERR_NOMEM;
|
||||||
goto cleanup;
|
goto failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14805,7 +14805,7 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
|
|||||||
lfs->lookahead.buffer = lfs_malloc(lfs->cfg->lookahead_size);
|
lfs->lookahead.buffer = lfs_malloc(lfs->cfg->lookahead_size);
|
||||||
if (!lfs->lookahead.buffer) {
|
if (!lfs->lookahead.buffer) {
|
||||||
err = LFS_ERR_NOMEM;
|
err = LFS_ERR_NOMEM;
|
||||||
goto cleanup;
|
goto failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lfs->lookahead.start = 0;
|
lfs->lookahead.start = 0;
|
||||||
@@ -14881,7 +14881,7 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
failed:;
|
||||||
lfs_deinit(lfs);
|
lfs_deinit(lfs);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|||||||
+50
-37
@@ -1506,7 +1506,7 @@ int main(int argc, char **argv) {
|
|||||||
int c = getopt_long(argc, argv, short_opts, long_opts, NULL);
|
int c = getopt_long(argc, argv, short_opts, long_opts, NULL);
|
||||||
switch (c) {
|
switch (c) {
|
||||||
// generate help message
|
// generate help message
|
||||||
case OPT_HELP: {
|
case OPT_HELP:;
|
||||||
printf("usage: %s [options] [bench_id]\n", argv[0]);
|
printf("usage: %s [options] [bench_id]\n", argv[0]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
@@ -1560,34 +1560,42 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
|
||||||
// summary/list flags
|
// summary/list flags
|
||||||
case OPT_SUMMARY:
|
case OPT_SUMMARY:;
|
||||||
op = summary;
|
op = summary;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_SUITES:
|
|
||||||
|
case OPT_LIST_SUITES:;
|
||||||
op = list_suites;
|
op = list_suites;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_CASES:
|
|
||||||
|
case OPT_LIST_CASES:;
|
||||||
op = list_cases;
|
op = list_cases;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_SUITE_PATHS:
|
|
||||||
|
case OPT_LIST_SUITE_PATHS:;
|
||||||
op = list_suite_paths;
|
op = list_suite_paths;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_CASE_PATHS:
|
|
||||||
|
case OPT_LIST_CASE_PATHS:;
|
||||||
op = list_case_paths;
|
op = list_case_paths;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_DEFINES:
|
|
||||||
|
case OPT_LIST_DEFINES:;
|
||||||
op = list_defines;
|
op = list_defines;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_PERMUTATION_DEFINES:
|
|
||||||
|
case OPT_LIST_PERMUTATION_DEFINES:;
|
||||||
op = list_permutation_defines;
|
op = list_permutation_defines;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_IMPLICIT_DEFINES:
|
|
||||||
|
case OPT_LIST_IMPLICIT_DEFINES:;
|
||||||
op = list_implicit_defines;
|
op = list_implicit_defines;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// configuration
|
// configuration
|
||||||
case OPT_DEFINE: {
|
case OPT_DEFINE:;
|
||||||
// allocate space
|
// allocate space
|
||||||
bench_override_t *override = mappend(
|
bench_override_t *override = mappend(
|
||||||
(void**)&bench_overrides,
|
(void**)&bench_overrides,
|
||||||
@@ -1732,12 +1740,12 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
invalid_define:
|
invalid_define:;
|
||||||
fprintf(stderr, "error: invalid define: %s\n", optarg);
|
fprintf(stderr, "error: invalid define: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
|
||||||
case OPT_STEP: {
|
case OPT_STEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
bench_step_start = strtoumax(optarg, &parsed, 0);
|
bench_step_start = strtoumax(optarg, &parsed, 0);
|
||||||
bench_step_stop = -1;
|
bench_step_stop = -1;
|
||||||
bench_step_step = 1;
|
bench_step_step = 1;
|
||||||
@@ -1784,39 +1792,43 @@ invalid_define:
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
step_unknown:
|
|
||||||
|
step_unknown:;
|
||||||
fprintf(stderr, "error: invalid step: %s\n", optarg);
|
fprintf(stderr, "error: invalid step: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
|
||||||
case OPT_DISK:
|
case OPT_DISK:;
|
||||||
bench_disk_path = optarg;
|
bench_disk_path = optarg;
|
||||||
break;
|
break;
|
||||||
case OPT_TRACE:
|
|
||||||
|
case OPT_TRACE:;
|
||||||
bench_trace_path = optarg;
|
bench_trace_path = optarg;
|
||||||
break;
|
break;
|
||||||
case OPT_TRACE_BACKTRACE:
|
|
||||||
|
case OPT_TRACE_BACKTRACE:;
|
||||||
bench_trace_backtrace = true;
|
bench_trace_backtrace = true;
|
||||||
break;
|
break;
|
||||||
case OPT_TRACE_PERIOD: {
|
|
||||||
char *parsed = NULL;
|
case OPT_TRACE_PERIOD:;
|
||||||
|
parsed = NULL;
|
||||||
bench_trace_period = strtoumax(optarg, &parsed, 0);
|
bench_trace_period = strtoumax(optarg, &parsed, 0);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid trace-period: %s\n", optarg);
|
fprintf(stderr, "error: invalid trace-period: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_TRACE_FREQ: {
|
case OPT_TRACE_FREQ:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
bench_trace_freq = strtoumax(optarg, &parsed, 0);
|
bench_trace_freq = strtoumax(optarg, &parsed, 0);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid trace-freq: %s\n", optarg);
|
fprintf(stderr, "error: invalid trace-freq: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_READ_SLEEP: {
|
case OPT_READ_SLEEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
double read_sleep = strtod(optarg, &parsed);
|
double read_sleep = strtod(optarg, &parsed);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid read-sleep: %s\n", optarg);
|
fprintf(stderr, "error: invalid read-sleep: %s\n", optarg);
|
||||||
@@ -1824,9 +1836,9 @@ step_unknown:
|
|||||||
}
|
}
|
||||||
bench_read_sleep = read_sleep*1.0e9;
|
bench_read_sleep = read_sleep*1.0e9;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_PROG_SLEEP: {
|
case OPT_PROG_SLEEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
double prog_sleep = strtod(optarg, &parsed);
|
double prog_sleep = strtod(optarg, &parsed);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid prog-sleep: %s\n", optarg);
|
fprintf(stderr, "error: invalid prog-sleep: %s\n", optarg);
|
||||||
@@ -1834,9 +1846,9 @@ step_unknown:
|
|||||||
}
|
}
|
||||||
bench_prog_sleep = prog_sleep*1.0e9;
|
bench_prog_sleep = prog_sleep*1.0e9;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_ERASE_SLEEP: {
|
case OPT_ERASE_SLEEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
double erase_sleep = strtod(optarg, &parsed);
|
double erase_sleep = strtod(optarg, &parsed);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid erase-sleep: %s\n", optarg);
|
fprintf(stderr, "error: invalid erase-sleep: %s\n", optarg);
|
||||||
@@ -1844,12 +1856,13 @@ step_unknown:
|
|||||||
}
|
}
|
||||||
bench_erase_sleep = erase_sleep*1.0e9;
|
bench_erase_sleep = erase_sleep*1.0e9;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
// done parsing
|
// done parsing
|
||||||
case -1:
|
case -1:;
|
||||||
goto getopt_done;
|
goto getopt_done;
|
||||||
|
|
||||||
// unknown arg, getopt prints a message for us
|
// unknown arg, getopt prints a message for us
|
||||||
default:
|
default:;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+60
-47
@@ -1946,7 +1946,7 @@ int main(int argc, char **argv) {
|
|||||||
int c = getopt_long(argc, argv, short_opts, long_opts, NULL);
|
int c = getopt_long(argc, argv, short_opts, long_opts, NULL);
|
||||||
switch (c) {
|
switch (c) {
|
||||||
// generate help message
|
// generate help message
|
||||||
case OPT_HELP: {
|
case OPT_HELP:;
|
||||||
printf("usage: %s [options] [test_id]\n", argv[0]);
|
printf("usage: %s [options] [test_id]\n", argv[0]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
@@ -2000,37 +2000,46 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
|
||||||
// summary/list flags
|
// summary/list flags
|
||||||
case OPT_SUMMARY:
|
case OPT_SUMMARY:;
|
||||||
op = summary;
|
op = summary;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_SUITES:
|
|
||||||
|
case OPT_LIST_SUITES:;
|
||||||
op = list_suites;
|
op = list_suites;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_CASES:
|
|
||||||
|
case OPT_LIST_CASES:;
|
||||||
op = list_cases;
|
op = list_cases;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_SUITE_PATHS:
|
|
||||||
|
case OPT_LIST_SUITE_PATHS:;
|
||||||
op = list_suite_paths;
|
op = list_suite_paths;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_CASE_PATHS:
|
|
||||||
|
case OPT_LIST_CASE_PATHS:;
|
||||||
op = list_case_paths;
|
op = list_case_paths;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_DEFINES:
|
|
||||||
|
case OPT_LIST_DEFINES:;
|
||||||
op = list_defines;
|
op = list_defines;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_PERMUTATION_DEFINES:
|
|
||||||
|
case OPT_LIST_PERMUTATION_DEFINES:;
|
||||||
op = list_permutation_defines;
|
op = list_permutation_defines;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_IMPLICIT_DEFINES:
|
|
||||||
|
case OPT_LIST_IMPLICIT_DEFINES:;
|
||||||
op = list_implicit_defines;
|
op = list_implicit_defines;
|
||||||
break;
|
break;
|
||||||
case OPT_LIST_POWERLOSSES:
|
|
||||||
|
case OPT_LIST_POWERLOSSES:;
|
||||||
op = list_powerlosses;
|
op = list_powerlosses;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// configuration
|
// configuration
|
||||||
case OPT_DEFINE: {
|
case OPT_DEFINE:;
|
||||||
// allocate space
|
// allocate space
|
||||||
test_override_t *override = mappend(
|
test_override_t *override = mappend(
|
||||||
(void**)&test_overrides,
|
(void**)&test_overrides,
|
||||||
@@ -2175,11 +2184,11 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
invalid_define:
|
invalid_define:;
|
||||||
fprintf(stderr, "error: invalid define: %s\n", optarg);
|
fprintf(stderr, "error: invalid define: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
|
||||||
case OPT_POWERLOSS: {
|
case OPT_POWERLOSS:;
|
||||||
// reset our powerloss scenarios
|
// reset our powerloss scenarios
|
||||||
if (test_powerloss_capacity > 0) {
|
if (test_powerloss_capacity > 0) {
|
||||||
free((test_powerloss_t*)test_powerlosses);
|
free((test_powerloss_t*)test_powerlosses);
|
||||||
@@ -2221,7 +2230,7 @@ invalid_define:
|
|||||||
|
|
||||||
char *s = optarg + 1;
|
char *s = optarg + 1;
|
||||||
while (true) {
|
while (true) {
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
*(lfs_emubd_powercycles_t*)mappend(
|
*(lfs_emubd_powercycles_t*)mappend(
|
||||||
(void**)&cycles,
|
(void**)&cycles,
|
||||||
sizeof(lfs_emubd_powercycles_t),
|
sizeof(lfs_emubd_powercycles_t),
|
||||||
@@ -2282,7 +2291,7 @@ invalid_define:
|
|||||||
|
|
||||||
char *s = optarg + 1;
|
char *s = optarg + 1;
|
||||||
while (true) {
|
while (true) {
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
uintmax_t x = leb16_parse(s, &parsed);
|
uintmax_t x = leb16_parse(s, &parsed);
|
||||||
if (parsed == s) {
|
if (parsed == s) {
|
||||||
break;
|
break;
|
||||||
@@ -2308,7 +2317,7 @@ invalid_define:
|
|||||||
|
|
||||||
// exhaustive permutations
|
// exhaustive permutations
|
||||||
{
|
{
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
size_t count = strtoumax(optarg, &parsed, 0);
|
size_t count = strtoumax(optarg, &parsed, 0);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
goto powerloss_unknown;
|
goto powerloss_unknown;
|
||||||
@@ -2322,13 +2331,13 @@ invalid_define:
|
|||||||
goto powerloss_next;
|
goto powerloss_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
powerloss_unknown:
|
powerloss_unknown:;
|
||||||
// unknown scenario?
|
// unknown scenario?
|
||||||
fprintf(stderr, "error: unknown power-loss scenario: %s\n",
|
fprintf(stderr, "error: unknown power-loss scenario: %s\n",
|
||||||
optarg);
|
optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
||||||
powerloss_next:
|
powerloss_next:;
|
||||||
optarg += strspn(optarg, " ");
|
optarg += strspn(optarg, " ");
|
||||||
if (*optarg == ',') {
|
if (*optarg == ',') {
|
||||||
optarg += 1;
|
optarg += 1;
|
||||||
@@ -2339,9 +2348,9 @@ powerloss_next:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_STEP: {
|
case OPT_STEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
test_step_start = strtoumax(optarg, &parsed, 0);
|
test_step_start = strtoumax(optarg, &parsed, 0);
|
||||||
test_step_stop = -1;
|
test_step_stop = -1;
|
||||||
test_step_step = 1;
|
test_step_step = 1;
|
||||||
@@ -2386,23 +2395,26 @@ powerloss_next:
|
|||||||
test_step_stop = test_step_start;
|
test_step_stop = test_step_start;
|
||||||
test_step_start = 0;
|
test_step_start = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
step_unknown:
|
|
||||||
|
step_unknown:;
|
||||||
fprintf(stderr, "error: invalid step: %s\n", optarg);
|
fprintf(stderr, "error: invalid step: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
|
||||||
case OPT_DISK:
|
case OPT_DISK:;
|
||||||
test_disk_path = optarg;
|
test_disk_path = optarg;
|
||||||
break;
|
break;
|
||||||
case OPT_TRACE:
|
|
||||||
|
case OPT_TRACE:;
|
||||||
test_trace_path = optarg;
|
test_trace_path = optarg;
|
||||||
break;
|
break;
|
||||||
case OPT_TRACE_BACKTRACE:
|
|
||||||
|
case OPT_TRACE_BACKTRACE:;
|
||||||
test_trace_backtrace = true;
|
test_trace_backtrace = true;
|
||||||
break;
|
break;
|
||||||
case OPT_TRACE_PERIOD: {
|
|
||||||
char *parsed = NULL;
|
case OPT_TRACE_PERIOD:;
|
||||||
|
parsed = NULL;
|
||||||
test_trace_period = strtoumax(optarg, &parsed, 0);
|
test_trace_period = strtoumax(optarg, &parsed, 0);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid trace-period: %s\n",
|
fprintf(stderr, "error: invalid trace-period: %s\n",
|
||||||
@@ -2410,18 +2422,18 @@ step_unknown:
|
|||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_TRACE_FREQ: {
|
case OPT_TRACE_FREQ:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
test_trace_freq = strtoumax(optarg, &parsed, 0);
|
test_trace_freq = strtoumax(optarg, &parsed, 0);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid trace-freq: %s\n", optarg);
|
fprintf(stderr, "error: invalid trace-freq: %s\n", optarg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_READ_SLEEP: {
|
case OPT_READ_SLEEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
double read_sleep = strtod(optarg, &parsed);
|
double read_sleep = strtod(optarg, &parsed);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid read-sleep: %s\n", optarg);
|
fprintf(stderr, "error: invalid read-sleep: %s\n", optarg);
|
||||||
@@ -2429,9 +2441,9 @@ step_unknown:
|
|||||||
}
|
}
|
||||||
test_read_sleep = read_sleep*1.0e9;
|
test_read_sleep = read_sleep*1.0e9;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_PROG_SLEEP: {
|
case OPT_PROG_SLEEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
double prog_sleep = strtod(optarg, &parsed);
|
double prog_sleep = strtod(optarg, &parsed);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid prog-sleep: %s\n", optarg);
|
fprintf(stderr, "error: invalid prog-sleep: %s\n", optarg);
|
||||||
@@ -2439,9 +2451,9 @@ step_unknown:
|
|||||||
}
|
}
|
||||||
test_prog_sleep = prog_sleep*1.0e9;
|
test_prog_sleep = prog_sleep*1.0e9;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case OPT_ERASE_SLEEP: {
|
case OPT_ERASE_SLEEP:;
|
||||||
char *parsed = NULL;
|
parsed = NULL;
|
||||||
double erase_sleep = strtod(optarg, &parsed);
|
double erase_sleep = strtod(optarg, &parsed);
|
||||||
if (parsed == optarg) {
|
if (parsed == optarg) {
|
||||||
fprintf(stderr, "error: invalid erase-sleep: %s\n", optarg);
|
fprintf(stderr, "error: invalid erase-sleep: %s\n", optarg);
|
||||||
@@ -2449,16 +2461,17 @@ step_unknown:
|
|||||||
}
|
}
|
||||||
test_erase_sleep = erase_sleep*1.0e9;
|
test_erase_sleep = erase_sleep*1.0e9;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
// done parsing
|
// done parsing
|
||||||
case -1:
|
case -1:;
|
||||||
goto getopt_done;
|
goto getopt_done;
|
||||||
|
|
||||||
// unknown arg, getopt prints a message for us
|
// unknown arg, getopt prints a message for us
|
||||||
default:
|
default:;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getopt_done: ;
|
getopt_done:;
|
||||||
|
|
||||||
if (argc > optind) {
|
if (argc > optind) {
|
||||||
// reset our test identifier list
|
// reset our test identifier list
|
||||||
|
|||||||
Reference in New Issue
Block a user