49eb8448977e5e8fc35a61fdf93127147785b0da
1 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3 * Libmemcached Client and Server
5 * Copyright (C) 2011 Data Differential, http://datadifferential.com/
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
15 * * Redistributions in binary form must reproduce the above
16 * copyright notice, this list of conditions and the following disclaimer
17 * in the documentation and/or other materials provided with the
20 * * The names of its contributors may not be used to endorse or
21 * promote products derived from this software without specific prior
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 #include <mem_config.h>
39 #include <libtest/yatl.h>
43 using namespace libtest
;
45 #include <libmemcached-1.0/memcached.h>
47 #include <tests/server_add.h>
49 static std::string
random_hostname()
51 libtest::vchar_t hostname
;
52 libtest::vchar::make(hostname
, 23);
53 libtest::vchar::append(hostname
, ".com");
55 return std::string(&hostname
[0]);
58 test_return_t
memcached_server_add_null_test(memcached_st
* memc
)
60 ASSERT_EQ(0, memcached_server_count(memc
));
62 test_compare(MEMCACHED_SUCCESS
, memcached_server_add(memc
, NULL
, 0));
67 test_return_t
memcached_server_add_empty_test(memcached_st
* memc
)
69 ASSERT_EQ(0, memcached_server_count(memc
));
71 test_compare(MEMCACHED_SUCCESS
, memcached_server_add(memc
, "", 0));
76 test_return_t
memcached_server_many_TEST(memcached_st
* memc
)
78 ASSERT_EQ(0, memcached_server_count(memc
));
80 in_port_t base_port
= 5555;
81 for (in_port_t x
= 0; x
< 100; ++x
)
83 std::string
hostname(random_hostname());
84 ASSERT_TRUE(hostname
.size());
85 test_compare(MEMCACHED_SUCCESS
, memcached_server_add(memc
, hostname
.c_str(), base_port
+x
));
91 test_return_t
memcached_server_many_weighted_TEST(memcached_st
* memc
)
93 ASSERT_EQ(0, memcached_server_count(memc
));
95 in_port_t base_port
= 5555;
96 for (in_port_t x
= 0; x
< 100; ++x
)
98 std::string
hostname(random_hostname());
99 ASSERT_TRUE(hostname
.size());
100 test_compare(MEMCACHED_SUCCESS
, memcached_server_add_with_weight(memc
, hostname
.c_str(), base_port
+x
, x
% 10));
106 test_return_t
memcached_servers_reset_test(memcached_st
* memc
)
108 ASSERT_EQ(0, memcached_server_count(memc
));
110 test_compare(MEMCACHED_SUCCESS
, memcached_server_add(memc
, "localhost", 11511));
112 memcached_servers_reset(memc
);
114 test_compare(MEMCACHED_SUCCESS
, memcached_server_add(memc
, "localhost", 11511));