PROTOCOL_BINARY_RESPONSE_SUCCESS));
}
- /* Socket should be closed now, read should return 0 */
+ /* Socket should be closed now, read should return EXIT_SUCCESS */
verify(timeout_io_op(sock, POLLIN, rsp.bytes, sizeof(rsp.bytes)) == 0);
return TEST_PASS_RECONNECT;
/* Verify that quit works */
execute(send_string("quit\r\n"));
- /* Socket should be closed now, read should return 0 */
+ /* Socket should be closed now, read should return EXIT_SUCCESS */
char buffer[80];
verify(timeout_io_op(sock, POLLIN, buffer, sizeof(buffer)) == 0);
return TEST_PASS_RECONNECT;
{ 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";
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:PT:?ab")) != EOF)
{
switch (cmd) {
+ case 'a':
+ tests.ascii= true;
+ tests.binary= false;
+ break;
+ case 'b':
+ tests.ascii= false;
+ tests.binary= true;
+ break;
case 't':
timeout= atoi(optarg);
if (timeout == 0)
{
fprintf(stderr, "Invalid timeout. Please specify a number for -t\n");
- return 1;
+ return EXIT_FAILURE;
}
break;
case 'v': verbose= true;
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] [-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\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;
+ return EXIT_FAILURE;
}
}
{
fprintf(stderr, "Failed to connect to <%s:%s>: %s\n",
hostname, port, strerror(get_socket_errno()));
- return 1;
+ return EXIT_FAILURE;
}
for (int ii= 0; testcases[ii].description != NULL; ++ii)
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);
fprintf(stderr, "Failed to connect to <%s:%s>: %s\n",
hostname, port, strerror(get_socket_errno()));
fprintf(stderr, "%d of %d tests failed\n", failed, total);
- return 1;
+ return EXIT_FAILURE;
}
}
}