dfc5ddb9b04d88be337a3ef5d9da267bad2f1296
1 #include "test/lib/common.hpp"
2 #include "test/lib/Shell.hpp"
3 #include "test/lib/Server.hpp"
4 #include "test/lib/Retry.hpp"
5 #include "test/lib/ReturnMatcher.hpp"
7 using Catch::Matchers::Contains
;
9 TEST_CASE("bin/memcat") {
10 Shell sh
{string
{TESTING_ROOT
"/../src/bin"}};
12 SECTION("no servers provided") {
14 REQUIRE_FALSE(sh
.run("memcat", output
));
15 REQUIRE(output
== "No servers provided\n");
20 REQUIRE(sh
.run("memcat --help", output
));
21 REQUIRE_THAT(output
, Contains("memcat"));
22 REQUIRE_THAT(output
, Contains("v1"));
23 REQUIRE_THAT(output
, Contains("help"));
24 REQUIRE_THAT(output
, Contains("version"));
25 REQUIRE_THAT(output
, Contains("option"));
26 REQUIRE_THAT(output
, Contains("--"));
27 REQUIRE_THAT(output
, Contains("="));
30 SECTION("with server") {
31 Server server
{MEMCACHED_BINARY
, {"-p", random_port_string
}};
33 LoneReturnMatcher test
{*memc
};
36 Retry
{[&server
] { return server
.isListening(); }}();
37 auto port
= get
<int>(server
.getSocketOrPort());
38 auto comm
= "memcat --servers=localhost:" + to_string(port
) + " ";
40 REQUIRE_SUCCESS(memcached_server_add(*memc
, "localhost", port
));
43 REQUIRE_SUCCESS(memcached_set(*memc
, S("memcat"), S("MEMCAT-SET"), 0, 0));
46 REQUIRE(sh
.run(comm
+ "memcat", output
));
47 REQUIRE(output
== "MEMCAT-SET\n");
50 SECTION("not found") {
51 memcached_delete(*memc
, S("memcat"), 0);
54 REQUIRE_FALSE(sh
.run(comm
+ "memcat", output
));
55 REQUIRE_THAT(output
, !Contains("MEMCAT-SET"));
56 REQUIRE_THAT(output
, Contains("NOT FOUND"));