X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Ftests%2Fbin%2Fmemcat.cpp;h=f5d63cc5991c6a4115f662caeae2b45307e27c8a;hb=6e77392804b33fec81b9d6d3fc3fd65c4b879ce1;hp=dfc5ddb9b04d88be337a3ef5d9da267bad2f1296;hpb=9f262c9ea92d4869715ca6f534c80075a8310ac1;p=awesomized%2Flibmemcached diff --git a/test/tests/bin/memcat.cpp b/test/tests/bin/memcat.cpp index dfc5ddb9..f5d63cc5 100644 --- a/test/tests/bin/memcat.cpp +++ b/test/tests/bin/memcat.cpp @@ -12,19 +12,26 @@ TEST_CASE("bin/memcat") { SECTION("no servers provided") { string output; REQUIRE_FALSE(sh.run("memcat", output)); - REQUIRE(output == "No servers provided\n"); + REQUIRE(output == "No servers provided.\n"); + } + + SECTION("connection failure") { + string output; + CHECK_FALSE(sh.run("memcat --servers=localhost:" + random_port_string("-p") + " memcat", output)); + REQUIRE_THAT(output, Contains("CONNECTION FAILURE")); } SECTION("--help") { string output; REQUIRE(sh.run("memcat --help", output)); - REQUIRE_THAT(output, Contains("memcat")); - 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("memcat v1")); + REQUIRE_THAT(output, Contains("Usage:")); + REQUIRE_THAT(output, Contains("key [key ...]")); + REQUIRE_THAT(output, Contains("Options:")); + REQUIRE_THAT(output, Contains("-h|--help")); + REQUIRE_THAT(output, Contains("-V|--version")); + REQUIRE_THAT(output, Contains("Environment:")); + REQUIRE_THAT(output, Contains("MEMCACHED_SERVERS")); } SECTION("with server") { @@ -32,28 +39,48 @@ TEST_CASE("bin/memcat") { MemcachedPtr memc; LoneReturnMatcher test{*memc}; - server.start(); - Retry{[&server] { return server.isListening(); }}(); + REQUIRE(server.ensureListening()); auto port = get(server.getSocketOrPort()); auto comm = "memcat --servers=localhost:" + to_string(port) + " "; REQUIRE_SUCCESS(memcached_server_add(*memc, "localhost", port)); - SECTION("found") { - REQUIRE_SUCCESS(memcached_set(*memc, S("memcat"), S("MEMCAT-SET"), 0, 0)); + SECTION("not found") { + memcached_delete(*memc, S("memcat"), 0); string output; - REQUIRE(sh.run(comm + "memcat", output)); - REQUIRE(output == "MEMCAT-SET\n"); + REQUIRE_FALSE(sh.run(comm + "memcat", output)); + REQUIRE(output.empty()); } - - SECTION("not found") { + SECTION("not found --verbose") { memcached_delete(*memc, S("memcat"), 0); string output; - REQUIRE_FALSE(sh.run(comm + "memcat", output)); + REQUIRE_FALSE(sh.run(comm + " -v memcat", output)); REQUIRE_THAT(output, !Contains("MEMCAT-SET")); REQUIRE_THAT(output, Contains("NOT FOUND")); } + SECTION("found") { + string output; + REQUIRE_SUCCESS(memcached_set(*memc, S("memcat"), S("MEMCAT-SET"), 0, 123)); + + SECTION("default") { + REQUIRE(sh.run(comm + "memcat", output)); + REQUIRE(output == "MEMCAT-SET\n"); + } + SECTION("flags") { + REQUIRE(sh.run(comm + "--flag memcat", output)); + REQUIRE(output == "123\nMEMCAT-SET\n"); + output.clear(); + REQUIRE(sh.run(comm + "--flag -v memcat", output)); + REQUIRE(output == "key: memcat\nflags: 123\nvalue: MEMCAT-SET\n"); + } + SECTION("file") { + Tempfile temp; + REQUIRE(sh.run(comm + "--file " + temp.getFn() + " memcat", output)); + REQUIRE(output.empty()); + REQUIRE(temp.get() == "MEMCAT-SET"); + } + } } }