memtest/args_parser.h

57 lines
2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
void print_help(const char *progname) {
printf("Использование: %s [опции]\n", progname);
printf(" -h, --help показать это сообщение\n");
printf(" -t, --threads N указать число потоков\n");
printf(" -i, --iterations N указать число повторения тестов\n");
printf(" -j, --json вывод в виде json\n");
printf(" -p, --pretest-delay N указать сколько секунд ждать\n\t\t\tперед проверкой памяти после записи\n");
printf(" --simulate-errors создаёт ошибки с вероятностью\n\t\t\t%%0.0001 каждый на 1 из 1000 проверок\n");
}
void aaa(int* argc, char *argv[], int* pretest_delay){
const struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"threads", required_argument, 0, 't'},
{"verbose", no_argument, 0, 'v'},
{"iterations", required_argument, 0, 'i'},
{"json", no_argument, 0, 'j'},
{"pretest-delay", no_argument, 0, 'p'},
{"simulate-errors", no_argument, 0, 's'},
{0, 0, 0, 0}
};
int opt;
while ((opt = getopt_long(*argc, argv, "ht:i:jp:", long_options, NULL)) != -1) {
switch (opt) {
case 'h':
print_help(argv[0]);
exit(0);
case 't':
args.tred = atoi(optarg);
break;
case 'i':
args.iterations = atoi(optarg);
break;
case 'p':
*pretest_delay = atoi(optarg);
break;
case 'j':
args.json = 1;
break;
case 's':
args.simulate_errors = 1;
break;
default:
print_help(argv[0]);
exit(1);
}
}
}