2efde2f3791c4c1060a8cf83887cb237166a6932
[m6w6/libmemcached] / libtest / binaries.cc
1 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
2 *
3 * libtest
4 *
5 * Copyright (C) 2011 Data Differential, http://datadifferential.com/
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 3 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22
23 #include <config.h>
24 #include <libtest/common.h>
25
26 namespace libtest {
27
28 bool has_gearmand_binary()
29 {
30 #if defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY
31 std::stringstream arg_buffer;
32
33 if (getenv("PWD"))
34 {
35 arg_buffer << getenv("PWD");
36 arg_buffer << "/";
37 }
38 arg_buffer << GEARMAND_BINARY;
39
40 if (access(arg_buffer.str().c_str() ,R_OK|X_OK) == 0)
41 {
42 return true;
43 }
44 #endif
45
46 return false;
47 }
48
49 bool has_drizzled_binary()
50 {
51 #if defined(HAVE_DRIZZLED_BINARY) && HAVE_DRIZZLED_BINARY
52 if (access(DRIZZLED_BINARY, R_OK|X_OK) == 0)
53 {
54 return true;
55 }
56 #endif
57
58 return false;
59 }
60
61 bool has_memcached_binary()
62 {
63 #if defined(HAVE_MEMCACHED_BINARY) && HAVE_MEMCACHED_BINARY
64 if (access(MEMCACHED_BINARY, R_OK|X_OK) == 0)
65 {
66 return true;
67 }
68 #endif
69
70 return false;
71 }
72
73 bool has_memcached_sasl_binary()
74 {
75 #if defined(HAVE_MEMCACHED_SASL_BINARY) && HAVE_MEMCACHED_SASL_BINARY
76 if (access(MEMCACHED_SASL_BINARY, R_OK|X_OK) == 0)
77 {
78 return true;
79 }
80 #endif
81
82 return false;
83 }
84
85 }