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/test.hpp"
41 using namespace libtest
;
43 #include "libmemcached-1.0/memcached.h"
44 #include "libmemcachedutil-1.0/util.h"
46 #include "tests/touch.h"
48 static test_return_t
pre_touch(memcached_st
*memc
)
50 test_compare(MEMCACHED_SUCCESS
, memcached_version(memc
));
51 test_skip(true, libmemcached_util_version_check(memc
, 1, 4, 15));
56 test_return_t
test_memcached_touch(memcached_st
*memc
)
58 test_skip(TEST_SUCCESS
, pre_touch(memc
));
64 test_null(memcached_get(memc
,
65 test_literal_param(__func__
),
68 test_compare(MEMCACHED_NOTFOUND
, rc
);
70 test_compare(MEMCACHED_SUCCESS
,
72 test_literal_param(__func__
),
73 test_literal_param("touchval"),
77 char *value
= memcached_get(memc
,
78 test_literal_param(__func__
),
80 test_compare(8U, test_literal_param_size("touchval"));
82 test_strcmp(value
, "touchval");
83 test_compare(MEMCACHED_SUCCESS
, rc
);
87 rc
= memcached_touch(memc
, test_literal_param(__func__
), 60 *60);
88 ASSERT_EQ_(MEMCACHED_SUCCESS
, rc
, "%s", memcached_last_error_message(memc
));
90 rc
= memcached_touch(memc
, test_literal_param(__func__
), 60 *60 *24 *60);
91 ASSERT_EQ_(MEMCACHED_SUCCESS
, rc
, "%s", memcached_last_error_message(memc
));
93 rc
= memcached_exist(memc
, test_literal_param(__func__
));
94 ASSERT_EQ_(MEMCACHED_NOTFOUND
, rc
, "%s", memcached_last_error_message(memc
));
99 test_return_t
test_memcached_touch_by_key(memcached_st
*memc
)
101 test_skip(TEST_SUCCESS
, pre_touch(memc
));
107 test_null(memcached_get_by_key(memc
,
108 test_literal_param("grouping_key"),
109 test_literal_param(__func__
),
112 test_compare(MEMCACHED_NOTFOUND
, rc
);
114 test_compare(MEMCACHED_SUCCESS
,
115 memcached_set_by_key(memc
,
116 test_literal_param("grouping_key"),
117 test_literal_param(__func__
),
118 test_literal_param("touchval"),
122 char *value
= memcached_get_by_key(memc
,
123 test_literal_param("grouping_key"),
124 test_literal_param(__func__
),
126 test_compare(8U, test_literal_param_size("touchval"));
128 test_strcmp(value
, "touchval");
129 test_compare(MEMCACHED_SUCCESS
, rc
);
133 rc
= memcached_touch_by_key(memc
,
134 test_literal_param("grouping_key"),
135 test_literal_param(__func__
),
137 ASSERT_EQ_(MEMCACHED_SUCCESS
, rc
, "%s", memcached_last_error_message(memc
));
139 rc
= memcached_touch_by_key(memc
,
140 test_literal_param("grouping_key"),
141 test_literal_param(__func__
),
143 ASSERT_EQ_(MEMCACHED_SUCCESS
, rc
, "%s", memcached_last_error_message(memc
));
145 rc
= memcached_exist_by_key(memc
, test_literal_param("grouping_key"),test_literal_param(__func__
));
146 ASSERT_EQ_(MEMCACHED_NOTFOUND
, rc
, "%s", memcached_last_error_message(memc
));