testing
[awesomized/libmemcached] / test / tests / bin / memslap.cpp
index dee7ebc3c94c11112dae11b316e9feb1d8c8a51d..bc0b817bc54ae47d674ae2bc1c17ec5c24f3634a 100644 (file)
@@ -10,34 +10,44 @@ TEST_CASE("bin/memslap") {
   SECTION("no servers provided") {
     string output;
     REQUIRE_FALSE(sh.run("memslap", output));
-    REQUIRE(output == "No servers provided\n");
+    REQUIRE(output == "No servers provided.\n");
   }
 
   SECTION("--help") {
     string output;
 
     REQUIRE(sh.run("memslap --help", output));
-    REQUIRE_THAT(output, Contains("memslap"));
-    REQUIRE_THAT(output, Contains("v1"));
-    REQUIRE_THAT(output, Contains("help"));
-    REQUIRE_THAT(output, Contains("version"));
-    REQUIRE_THAT(output, Contains("option"));
-    REQUIRE_THAT(output, Contains("--"));
-    REQUIRE_THAT(output, Contains("="));
+    REQUIRE_THAT(output, Contains("memslap v1"));
+    REQUIRE_THAT(output, Contains("Usage:"));
+    REQUIRE_THAT(output, Contains("Options:"));
+    REQUIRE_THAT(output, Contains("-h|--help"));
+    REQUIRE_THAT(output, Contains("-V|--version"));
+    REQUIRE_THAT(output, Contains("--concurrency"));
+    REQUIRE_THAT(output, Contains("Environment:"));
+    REQUIRE_THAT(output, Contains("MEMCACHED_SERVERS"));
   }
 
   SECTION("with servers") {
     auto test = MemcachedCluster::udp();
-    auto flags = {"--binary", "--udp", "--flush", "--test=mget", "--test=get", "--tcp-nodelay",
-                  "--non-blocking", "--initial-load=1000"};
+    auto flags = {"--binary", "--udp", "--flush", "--test=mget", "--test=get", "--test=set",
+                  "--tcp-nodelay", "--non-blocking", "--execute-number=1000"};
     string servers{"--servers="};
+    auto verbosity = GENERATE(as<string>(), " --verbose ", " --quiet ");
 
     for (const auto &server : test.cluster.getServers()) {
       servers += "localhost:" + to_string(get<int>(server.getSocketOrPort())) + ", ";
     }
 
     for (const auto flag : flags) {
-      REQUIRE(sh.run("memslap --quiet --concurrency=2 " + servers + flag));
+      string output;
+      REQUIRE(sh.run("memslap --concurrency=2 " + servers + verbosity + flag, output));
+      if (verbosity != " --quiet ") {
+        REQUIRE_THAT(output, Contains("Starting"));
+        REQUIRE_THAT(output, Contains("Time to"));
+        REQUIRE_THAT(output, Contains("seconds"));
+      } else {
+        REQUIRE(output.empty());
+      }
     }
   }
 }