testing: sasl
[m6w6/libmemcached] / testing / tests / memcached / sasl.cpp
1 #include "testing/lib/common.hpp"
2 #include "testing/lib/Shell.hpp"
3 #include "testing/lib/MemcachedCluster.hpp"
4
5 TEST_CASE("memcached_sasl") {
6 #if !LIBMEMCACHED_WITH_SASL_SUPPORT
7 WARN("ENABLE_SASL=OFF");
8 #else
9 Shell sh;
10 string mc{MEMCACHED_BINARY}, err;
11
12 if (!sh.run(mc + " -S --version", err)) {
13 WARN(mc << ": " << err);
14 } else {
15 auto test = MemcachedCluster::sasl();
16 auto memc = &test.memc;
17
18 REQUIRE_SUCCESS(memcached_set(memc, S(__func__), S(__func__), 0, 0));
19 REQUIRE_SUCCESS(memcached_delete(memc, S(__func__), 0));
20 REQUIRE_SUCCESS(memcached_destroy_sasl_auth_data(memc));
21 REQUIRE_SUCCESS(memcached_destroy_sasl_auth_data(memc));
22 REQUIRE_RC(MEMCACHED_INVALID_ARGUMENTS, memcached_destroy_sasl_auth_data(nullptr));
23
24 memcached_quit(memc);
25
26 REQUIRE_RC(MEMCACHED_AUTH_FAILURE, memcached_set(memc, S(__func__), S(__func__), 0, 0));
27
28 REQUIRE_SUCCESS(memcached_set_sasl_auth_data(memc, "username", "password"));
29 REQUIRE_RC(MEMCACHED_AUTH_FAILURE, memcached_set(memc, S(__func__), S(__func__), 0, 0));
30 }
31 #endif
32 }