Browse Source

Add lua test framework.

tags/0.9.0
Vsevolod Stakhov 9 years ago
parent
commit
2f20e4f7fe
5 changed files with 89 additions and 1 deletions
  1. 11
    1
      test/CMakeLists.txt
  2. 0
    0
      test/lua/rsa.lua
  3. 75
    0
      test/rspamd_lua_test.c
  4. 1
    0
      test/rspamd_test_suite.c
  5. 2
    0
      test/tests.h

+ 11
- 1
test/CMakeLists.txt View File

@@ -11,6 +11,7 @@ SET(TESTSRC rspamd_expression_test.c
rspamd_shingles_test.c
rspamd_upstream_test.c
rspamd_http_test.c
rspamd_lua_test.c
rspamd_test_suite.c)

ADD_EXECUTABLE(rspamd-test EXCLUDE_FROM_ALL ${TESTSRC})
@@ -18,4 +19,13 @@ SET_TARGET_PROPERTIES(rspamd-test PROPERTIES LINKER_LANGUAGE C)
SET_TARGET_PROPERTIES(rspamd-test PROPERTIES COMPILE_FLAGS "-DRSPAMD_TEST")

TARGET_LINK_LIBRARIES(rspamd-test rspamd-server)
TARGET_LINK_LIBRARIES(rspamd-test ${RSPAMD_REQUIRED_LIBRARIES})
TARGET_LINK_LIBRARIES(rspamd-test ${RSPAMD_REQUIRED_LIBRARIES})
TARGET_LINK_LIBRARIES(rspamd-test stemmer)

IF(NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/busted.lua"
"${CMAKE_CURRENT_SOURCE_DIR}/busted"
"${CMAKE_CURRENT_SOURCE_DIR}/lua"
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
ENDIF()

test/lua/test_rsa.lua → test/lua/rsa.lua View File


+ 75
- 0
test/rspamd_lua_test.c View File

@@ -0,0 +1,75 @@
/* Copyright (c) 2015, Vsevolod Stakhov
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include "config.h"
#include "main.h"
#include "util.h"
#include "lua/lua_common.h"

static const char *lua_src = "./lua";

void
rspamd_lua_test_func (void)
{
lua_State *L = rspamd_lua_init (NULL);
gchar *lua_file;
gchar rp[PATH_MAX];
glob_t globbuf;
gchar *pattern;
guint i, len;

msg_info ("Starting lua tests");

if (realpath (lua_src, rp) == NULL) {
msg_err ("cannod find path %s: %s", lua_src, strerror (errno));
g_assert (0);
}

globbuf.gl_offs = 0;
len = strlen (rp) + sizeof ("*.lua") + 1;
pattern = g_malloc (len);
rspamd_snprintf (pattern, len, "%s/%s", rp, "*.lua");

if (glob (pattern, GLOB_DOOFFS, NULL, &globbuf) == 0) {
for (i = 0; i < globbuf.gl_pathc; i++) {
lua_file = globbuf.gl_pathv[i];

if (luaL_loadfile (L, lua_file) != 0) {
msg_err ("load test from %s failed", lua_file);
g_assert (0);
}
/* Now do it */
if (lua_pcall (L, 0, LUA_MULTRET, 0) != 0) {
msg_err ("run test from %s failed: %s", lua_file,
lua_tostring (L, -1));
g_assert (0);
}
}
globfree (&globbuf);
g_free (pattern);
}
else {
msg_err ("glob for %s failed: %s", pattern, strerror (errno));
g_assert (0);
}
}

+ 1
- 0
test/rspamd_test_suite.c View File

@@ -56,6 +56,7 @@ main (int argc, char **argv)
g_test_add_func ("/rspamd/upstream", rspamd_upstream_test_func);
g_test_add_func ("/rspamd/shingles", rspamd_shingles_test_func);
g_test_add_func ("/rspamd/http", rspamd_http_test_func);
g_test_add_func ("/rspamd/lua", rspamd_lua_test_func);

g_test_run ();


+ 2
- 0
test/tests.h View File

@@ -41,4 +41,6 @@ void rspamd_shingles_test_func (void);

void rspamd_http_test_func (void);

void rspamd_lua_test_func (void);

#endif

Loading…
Cancel
Save