From: Brian Aker Date: Tue, 22 Feb 2011 02:02:11 +0000 (-0800) Subject: Merge in ability for memcapable to handle ascii/binary as flags to the X-Git-Tag: 0.51~35 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=3c11b74c0aa013a6afd492d46a8e9c911e12b350;p=m6w6%2Flibmemcached Merge in ability for memcapable to handle ascii/binary as flags to the command. --- 3c11b74c0aa013a6afd492d46a8e9c911e12b350 diff --cc clients/memcapable.c index 3de6baf1,7f5d51ee..fdbc35c8 --- a/clients/memcapable.c +++ b/clients/memcapable.c @@@ -1937,20 -1861,29 +1937,40 @@@ struct testcase testcases[]= { NULL, NULL} }; + const int ascii_tests = 1; + const int binary_tests = 2; + ++struct test_type_st ++{ ++ bool ascii; ++ bool binary; ++}; ++ int main(int argc, char **argv) { static const char * const status_msg[]= {"[skip]", "[pass]", "[pass]", "[FAIL]"}; ++ struct test_type_st tests= { true, true }; int total= 0; int failed= 0; const char *hostname= "localhost"; const char *port= "11211"; int cmd; - int tests = ascii_tests | binary_tests; + bool prompt= false; + const char *testname= NULL; + - while ((cmd= getopt(argc, argv, "t:vch:p:PT:?")) != EOF) + + - while ((cmd= getopt(argc, argv, "t:vch:p:?ab")) != EOF) ++ while ((cmd= getopt(argc, argv, "t:vch:p:PT:?ab")) != EOF) { switch (cmd) { + case 'a': - tests = ascii_tests; ++ tests.ascii= true; ++ tests.binary= false; + break; + case 'b': - tests = binary_tests; ++ tests.ascii= false; ++ tests.binary= true; + break; case 't': timeout= atoi(optarg); if (timeout == 0) @@@ -1967,21 -1900,13 +1987,22 @@@ break; case 'p': port= optarg; break; + case 'P': prompt= true; + break; + case 'T': testname= optarg; + break; default: - fprintf(stderr, "Usage: %s [-h hostname] [-p port] [-c] [-v] [-t n]" - " [-P] [-T testname]'\n" - fprintf(stderr, "Usage: %s [-h hostname] [-p port] [-c] [-v] [-t n] [-a] [-b]\n" ++ fprintf(stderr, "Usage: %s [-h hostname] [-p port] [-c] [-v] [-t n] [-P] [-T testname]'\n" "\t-c\tGenerate coredump if a test fails\n" "\t-v\tVerbose test output (print out the assertion)\n" "\t-t n\tSet the timeout for io-operations to n seconds\n" + "\t-P\tPrompt the user before starting a test.\n" + "\t\t\t\"skip\" will skip the test\n" + "\t\t\t\"quit\" will terminate memcapable\n" + "\t\t\tEverything else will start the test\n" - "\t-T n\tJust run the test named n\n", ++ "\t-T n\tJust run the test named n\n" + "\t-a\tOnly test the ascii protocol\n" + "\t-b\tOnly test the binary protocol\n", argv[0]); return 1; } @@@ -1998,9 -1923,11 +2019,14 @@@ for (int ii= 0; testcases[ii].description != NULL; ++ii) { - if ((testcases[ii].description[0] == 'a' && (tests & ascii_tests) == 0) || - (testcases[ii].description[0] == 'b' && (tests & binary_tests) == 0)) + if (testname != NULL && strcmp(testcases[ii].description, testname) != 0) + continue; + ++ if ((testcases[ii].description[0] == 'a' && (tests.ascii) == 0) || ++ (testcases[ii].description[0] == 'b' && (tests.binary) == 0)) + { + continue; + } ++total; fprintf(stdout, "%-40s", testcases[ii].description); fflush(stdout);