summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Watkins <noahwatkins@gmail.com>2013-02-28 09:23:16 -0800
committerNoah Watkins <noahwatkins@gmail.com>2013-08-25 08:58:27 -0700
commit0d46cfd0cf10271d01133edf2da6c4b43348ebff (patch)
treeb9db402f9ede8eb5695e7ac457391b4a4aa2b711
parenta98668e77a382bcfbe372c64d0dfca457b98d672 (diff)
downloadceph-0d46cfd0cf10271d01133edf2da6c4b43348ebff.tar.gz
test: use cls_lua client library for unit tests
...rather than using Ceph encoding directrly. Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
-rw-r--r--src/Makefile.am2
-rw-r--r--src/test/cls_lua/test_cls_lua.cc39
2 files changed, 15 insertions, 26 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 53ba26adfb9..4cd8531f18b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1089,7 +1089,7 @@ ceph_test_cls_lua_SOURCES = \
test/cls_lua/test_cls_lua.cc \
test/librados/test.cc \
$(LUA_TEST_H)
-ceph_test_cls_lua_LDADD = librados.la liblua/liblua.la ${UNITTEST_STATIC_LDADD}
+ceph_test_cls_lua_LDADD = libcls_lua_client.la librados.la liblua/liblua.la ${UNITTEST_STATIC_LDADD}
ceph_test_cls_lua_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += ceph_test_cls_lua
diff --git a/src/test/cls_lua/test_cls_lua.cc b/src/test/cls_lua/test_cls_lua.cc
index 7208ef5af84..9b66852ed60 100644
--- a/src/test/cls_lua/test_cls_lua.cc
+++ b/src/test/cls_lua/test_cls_lua.cc
@@ -1,12 +1,9 @@
#include <errno.h>
-#include "include/encoding.h"
-#include "include/rados.h"
#include "include/rados/librados.h"
-#include "include/types.h"
#include "gtest/gtest.h"
#include "test/librados/test.h"
-#include "cls/lua/cls_lua.h"
#include "liblua/lua.hpp"
+#include "cls/lua/cls_lua_client.hpp"
/*
* Auto-generated during build process. It includes the Lua unit test script
@@ -84,21 +81,12 @@ class ClsLua : public ::testing::Test {
int __clslua_exec(const string& oid, const string& script,
librados::bufferlist *input = NULL, const string& funcname = "")
{
- struct clslua_cmd cmd;
- cmd.script = script;
- cmd.funcname = funcname;
- if (input)
- cmd.input = *input;
-
bufferlist inbl;
- ::encode(cmd, inbl);
-
- bufferlist outbl;
- int ret = ioctx.exec(oid, "lua", "eval", inbl, outbl);
-
- ::decode(reply, outbl);
+ if (input)
+ inbl = *input;
- return ret;
+ return cls_lua_client::exec(ioctx, oid, script, funcname, inbl,
+ reply_output, &reply_log);
}
int clslua_exec(const string& script, librados::bufferlist *input = NULL,
@@ -113,7 +101,8 @@ class ClsLua : public ::testing::Test {
static string test_script;
string oid;
- struct clslua_reply reply;
+ vector<string> reply_log;
+ bufferlist reply_output;
lua_State *L;
};
@@ -224,7 +213,7 @@ TEST_F(ClsLua, Stat) {
/* unpack msgpack msg with Lua msgpack library */
lua_getglobal(L, "cmsgpack");
lua_getfield(L, -1, "unpack");
- lua_pushlstring(L, reply.output.c_str(), reply.output.length());
+ lua_pushlstring(L, reply_output.c_str(), reply_output.length());
ASSERT_EQ(0, lua_pcall(L, 1, 1, 0));
/* array on top of stack now */
@@ -307,7 +296,7 @@ TEST_F(ClsLua, MapGetVal) {
/* check return */
string ret_val;
- ret_val.assign(reply.output.c_str(), reply.output.length());
+ ret_val.assign(reply_output.c_str(), reply_output.length());
ASSERT_EQ(ret_val, msg);
/* error case */
@@ -326,7 +315,7 @@ TEST_F(ClsLua, Read) {
/* check return */
string ret_val;
- ret_val.assign(reply.output.c_str(), reply.output.length());
+ ret_val.assign(reply_output.c_str(), reply_output.length());
ASSERT_EQ(ret_val, msg);
}
@@ -356,7 +345,7 @@ TEST_F(ClsLua, BufferlistEquality) {
TEST_F(ClsLua, RunError) {
ASSERT_EQ(-EIO, clslua_exec(test_script, NULL, "runerr_c"));
- ASSERT_GT((int)reply.log.size(), 0);
+ ASSERT_GT((int)reply_log.size(), 0);
}
TEST_F(ClsLua, HandleNotFunc) {
@@ -402,8 +391,8 @@ TEST_F(ClsLua, Register) {
TEST_F(ClsLua, ClsLog) {
string script = "cls.log('la tee da'); cls.log('coffee');";
ASSERT_EQ(0, clslua_exec(script));
- ASSERT_EQ(reply.log[0], "la tee da");
- ASSERT_EQ(reply.log[1], "coffee");
+ ASSERT_EQ(reply_log[0], "la tee da");
+ ASSERT_EQ(reply_log[1], "coffee");
}
TEST_F(ClsLua, BufferlistCompare) {
@@ -422,7 +411,7 @@ TEST_F(ClsLua, GetXattr) {
bl.append("blahblahblahblahblah");
ASSERT_EQ(0, ioctx.setxattr(oid, "fooz", bl));
ASSERT_EQ(0, clslua_exec(test_script, NULL, "getxattr"));
- ASSERT_TRUE(reply.output == bl);
+ ASSERT_TRUE(reply_output == bl);
}
TEST_F(ClsLua, SetXattr) {