]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Pass test-case patten into test engine
authorMikhail Galanin <mgalanin@mimecast.com>
Thu, 20 Sep 2018 10:26:36 +0000 (11:26 +0100)
committerMikhail Galanin <mgalanin@mimecast.com>
Thu, 20 Sep 2018 10:26:36 +0000 (11:26 +0100)
So that now we can set which test cases should be runned:

$ ./test/rspamd-test -p /rspamd/lua -t selectors.lua -c "case .* rcpts"
$ ./test/rspamd-test -p /rspamd/lua -c "case 1st rcpts"

-c accepts Lua-pattern

test/lua/tests.lua
test/rspamd_lua_test.c
test/rspamd_test_suite.c

index 99d509de0c29dfbce8b2dd5e4d3f206a6b6cc6a7..6c05e02e0be4226e3a3b70bc080f93ebab6f8bb1 100644 (file)
@@ -8,8 +8,14 @@ local contexts = {}
 for _,t in ipairs(tests_list) do
   telescope.load_contexts(t, contexts)
 end
+local function test_filter(test)
+  return test.name:match(test_pattern)
+end
+if not test_pattern then
+  test_filter = function(_) return true end
+end
 local buffer = {}
-local results = telescope.run(contexts, callbacks, test_pattern)
+local results = telescope.run(contexts, callbacks, test_filter)
 local summary, data = telescope.summary_report(contexts, results)
 
 table.insert(buffer, telescope.test_report(contexts, results))
index b87df0f58014610e5620e1cc90a3ba4c3efde8ba..15dd3923b79cc10c3e24b2b554d78166b5aaf644 100644 (file)
@@ -25,6 +25,7 @@
 
 static const char *lua_src = BUILDROOT "/test/lua/tests.lua";
 extern gchar *lua_test;
+extern gchar *lua_test_case;
 extern struct rspamd_main *rspamd_main;
 
 static int
@@ -65,6 +66,11 @@ rspamd_lua_test_func (void)
 
        rspamd_lua_set_globals (rspamd_main->cfg, L, NULL);
 
+       if (lua_test_case) {
+               lua_pushstring (L, lua_test_case);
+               lua_setglobal (L, "test_pattern");
+       }
+
        rspamd_printf ("Starting lua tests\n");
 
        if ((rp = realpath (lua_src, rp_buf)) == NULL) {
index 0be3091d960a34008ac57322288144e7e9ab3a56..10a5d941b35dfe19957602c806bb38975c3bca8c 100644 (file)
@@ -8,12 +8,15 @@ struct event_base              *base = NULL;
 worker_t *workers[] = { NULL };
 
 gchar *lua_test = NULL;
+gchar *lua_test_case = NULL;
 gboolean verbose = FALSE;
 
 static GOptionEntry entries[] =
 {
        { "test", 't', 0, G_OPTION_ARG_STRING, &lua_test,
          "Lua test to run (i.e. selectors.lua)", NULL },
+       { "test-case", 'c', 0, G_OPTION_ARG_STRING, &lua_test_case,
+         "Lua test to run, lua pattern i.e. \"case .* rcpts\"", NULL },
        { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
 };