Returns number of consumed options. */
| 1407 | |
| 1408 | /* Returns number of consumed options. */ |
| 1409 | int parseOptions(int argc, const char **argv) { |
| 1410 | int i; |
| 1411 | int lastarg; |
| 1412 | int exit_status = 1; |
| 1413 | |
| 1414 | for (i = 1; i < argc; i++) { |
| 1415 | lastarg = (i == (argc-1)); |
| 1416 | |
| 1417 | if (!strcmp(argv[i],"-c")) { |
| 1418 | if (lastarg) goto invalid; |
| 1419 | config.numclients = atoi(argv[++i]); |
| 1420 | } else if (!strcmp(argv[i],"-v") || !strcmp(argv[i], "--version")) { |
| 1421 | sds version = benchmarkVersion(); |
| 1422 | printf("redis-benchmark %s\n", version); |
| 1423 | sdsfree(version); |
| 1424 | exit(0); |
| 1425 | } else if (!strcmp(argv[i],"-n")) { |
| 1426 | if (lastarg) goto invalid; |
| 1427 | config.requests = atoi(argv[++i]); |
| 1428 | } else if (!strcmp(argv[i],"-k")) { |
| 1429 | if (lastarg) goto invalid; |
| 1430 | config.keepalive = atoi(argv[++i]); |
| 1431 | } else if (!strcmp(argv[i],"-h")) { |
| 1432 | if (lastarg) goto invalid; |
| 1433 | config.hostip = strdup(argv[++i]); |
| 1434 | } else if (!strcmp(argv[i],"-p")) { |
| 1435 | if (lastarg) goto invalid; |
| 1436 | config.hostport = atoi(argv[++i]); |
| 1437 | } else if (!strcmp(argv[i],"-s")) { |
| 1438 | if (lastarg) goto invalid; |
| 1439 | config.hostsocket = strdup(argv[++i]); |
| 1440 | } else if (!strcmp(argv[i],"-a") ) { |
| 1441 | if (lastarg) goto invalid; |
| 1442 | config.auth = strdup(argv[++i]); |
| 1443 | } else if (!strcmp(argv[i],"--user")) { |
| 1444 | if (lastarg) goto invalid; |
| 1445 | config.user = argv[++i]; |
| 1446 | } else if (!strcmp(argv[i],"-d")) { |
| 1447 | if (lastarg) goto invalid; |
| 1448 | config.datasize = atoi(argv[++i]); |
| 1449 | if (config.datasize < 1) config.datasize=1; |
| 1450 | if (config.datasize > 1024*1024*1024) config.datasize = 1024*1024*1024; |
| 1451 | } else if (!strcmp(argv[i],"-P")) { |
| 1452 | if (lastarg) goto invalid; |
| 1453 | config.pipeline = atoi(argv[++i]); |
| 1454 | if (config.pipeline <= 0) config.pipeline=1; |
| 1455 | } else if (!strcmp(argv[i],"-r")) { |
| 1456 | if (lastarg) goto invalid; |
| 1457 | const char *next = argv[++i], *p = next; |
| 1458 | if (*p == '-') { |
| 1459 | p++; |
| 1460 | if (*p < '0' || *p > '9') goto invalid; |
| 1461 | } |
| 1462 | config.randomkeys = 1; |
| 1463 | config.randomkeys_keyspacelen = atoi(next); |
| 1464 | if (config.randomkeys_keyspacelen < 0) |
| 1465 | config.randomkeys_keyspacelen = 0; |
| 1466 | } else if (!strcmp(argv[i],"-q")) { |
no test coverage detected