diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CMakeLists.txt | 31 | ||||
-rw-r--r-- | tests/Makefile.am | 28 | ||||
-rw-r--r-- | tests/scripts/test-scripts.cpp | 16 | ||||
-rw-r--r-- | tests/tests.cpp | 1 | ||||
-rw-r--r-- | tests/unit/core/test-core-eval.cpp | 6 | ||||
-rw-r--r-- | tests/unit/plugins/test-plugins.cpp | 26 | ||||
-rw-r--r-- | tests/unit/test-plugins.cpp | 79 |
7 files changed, 82 insertions, 105 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 145e66388..5c6bd1abb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -24,7 +24,6 @@ include_directories(${CPPUTEST_INCLUDE_DIRS} ${PROJECT_BINARY_DIR} ${PROJECT_SOU # unit tests (core) set(LIB_WEECHAT_UNIT_TESTS_CORE_SRC - unit/test-plugins.cpp unit/core/test-core-arraylist.cpp unit/core/test-core-calc.cpp unit/core/test-core-crypto.cpp @@ -47,16 +46,26 @@ set(LIB_WEECHAT_UNIT_TESTS_CORE_SRC add_library(weechat_unit_tests_core STATIC ${LIB_WEECHAT_UNIT_TESTS_CORE_SRC}) # unit tests (plugins) -set(LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC - unit/plugins/irc/test-irc-color.cpp - unit/plugins/irc/test-irc-config.cpp - unit/plugins/irc/test-irc-ignore.cpp - unit/plugins/irc/test-irc-message.cpp - unit/plugins/irc/test-irc-mode.cpp - unit/plugins/irc/test-irc-nick.cpp - unit/plugins/irc/test-irc-protocol.cpp - unit/plugins/relay/test-relay-auth.cpp -) +set(LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC unit/plugins/test-plugins.cpp) + +if(ENABLE_IRC) + list(APPEND LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC + unit/plugins/irc/test-irc-color.cpp + unit/plugins/irc/test-irc-config.cpp + unit/plugins/irc/test-irc-ignore.cpp + unit/plugins/irc/test-irc-message.cpp + unit/plugins/irc/test-irc-mode.cpp + unit/plugins/irc/test-irc-nick.cpp + unit/plugins/irc/test-irc-protocol.cpp + ) +endif() + +if (ENABLE_RELAY) + list(APPEND LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC + unit/plugins/relay/test-relay-auth.cpp + ) +endif() + add_library(weechat_unit_tests_plugins MODULE ${LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC}) if(ICONV_LIBRARY) diff --git a/tests/Makefile.am b/tests/Makefile.am index 8bed45056..2f4b214f7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,8 +21,7 @@ AM_CPPFLAGS = -DLOCALEDIR=\"$(datadir)/locale\" $(CPPUTEST_CFLAGS) -I$(abs_top_s noinst_LIBRARIES = lib_weechat_unit_tests_core.a -lib_weechat_unit_tests_core_a_SOURCES = unit/test-plugins.cpp \ - unit/core/test-core-arraylist.cpp \ +lib_weechat_unit_tests_core_a_SOURCES = unit/core/test-core-arraylist.cpp \ unit/core/test-core-calc.cpp \ unit/core/test-core-crypto.cpp \ unit/core/test-core-eval.cpp \ @@ -65,14 +64,23 @@ tests_SOURCES = tests.cpp \ lib_LTLIBRARIES = lib_weechat_unit_tests_plugins.la -lib_weechat_unit_tests_plugins_la_SOURCES = unit/plugins/irc/test-irc-color.cpp \ - unit/plugins/irc/test-irc-config.cpp \ - unit/plugins/irc/test-irc-ignore.cpp \ - unit/plugins/irc/test-irc-message.cpp \ - unit/plugins/irc/test-irc-mode.cpp \ - unit/plugins/irc/test-irc-nick.cpp \ - unit/plugins/irc/test-irc-protocol.cpp \ - unit/plugins/relay/test-relay-auth.cpp +if PLUGIN_IRC +tests_irc = unit/plugins/irc/test-irc-color.cpp \ + unit/plugins/irc/test-irc-config.cpp \ + unit/plugins/irc/test-irc-ignore.cpp \ + unit/plugins/irc/test-irc-message.cpp \ + unit/plugins/irc/test-irc-mode.cpp \ + unit/plugins/irc/test-irc-nick.cpp \ + unit/plugins/irc/test-irc-protocol.cpp +endif + +if PLUGIN_RELAY +tests_relay = unit/plugins/relay/test-relay-auth.cpp +endif + +lib_weechat_unit_tests_plugins_la_SOURCES = unit/plugins/test-plugins.cpp \ + $(tests_irc) \ + $(tests_relay) lib_weechat_unit_tests_plugins_la_LDFLAGS = -module -no-undefined diff --git a/tests/scripts/test-scripts.cpp b/tests/scripts/test-scripts.cpp index 1ece28301..16058dec6 100644 --- a/tests/scripts/test-scripts.cpp +++ b/tests/scripts/test-scripts.cpp @@ -30,6 +30,7 @@ extern "C" #include <string.h> #include <sys/time.h> #include "src/core/weechat.h" +#include "src/core/wee-hdata.h" #include "src/core/wee-string.h" #include "src/core/wee-hook.h" #include "src/core/wee-util.h" @@ -121,7 +122,7 @@ TEST(Scripts, API) { char path_testapigen[PATH_MAX], path_testapi[PATH_MAX]; char *path_testapi_output_dir, str_command[(PATH_MAX * 2) + 128]; - char *test_scripts_dir; + char *test_scripts_dir, str_condition[128]; struct timeval time_start, time_end; long long diff; const char *ptr_test_scripts_dir; @@ -137,6 +138,9 @@ TEST(Scripts, API) { NULL, NULL } }; int i, turnoff_memleak; + struct t_hdata *hdata; + void *plugins; + printf ("...\n"); @@ -183,9 +187,19 @@ TEST(Scripts, API) "/script unload testapigen.py"); run_cmd (str_command); + hdata = hook_hdata_get (NULL, "plugin"); + plugins = hdata_get_list (hdata, "weechat_plugins"); + /* test the scripting API */ for (i = 0; languages[i][0]; i++) { + /* test if the plugin is loaded; if not, tests are skipped */ + snprintf (str_condition, sizeof (str_condition), + "${plugin.name} == %s", + languages[i][0]); + if (!hdata_search (hdata, plugins, str_condition, 1)) + continue; + /* * TODO: fix memory leaks in javascript plugin * and keep memory leak detection enabled diff --git a/tests/tests.cpp b/tests/tests.cpp index 2044e2434..65d0c5bb8 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -59,7 +59,6 @@ extern "C" /* import tests from libs */ /* core */ -IMPORT_TEST_GROUP(Plugins); IMPORT_TEST_GROUP(CoreArraylist); IMPORT_TEST_GROUP(CoreCalc); IMPORT_TEST_GROUP(CoreCrypto); diff --git a/tests/unit/core/test-core-eval.cpp b/tests/unit/core/test-core-eval.cpp index a74d8ee96..65f6a0c76 100644 --- a/tests/unit/core/test-core-eval.cpp +++ b/tests/unit/core/test-core-eval.cpp @@ -530,15 +530,15 @@ TEST(CoreEval, EvalExpression) "%s-test-", gui_color_from_option (config_color_chat_delimiters)); WEE_CHECK_EVAL(str_value, "${color:chat_delimiters}-test-"); - config_file_search_with_string ("irc.color.message_join", NULL, NULL, + config_file_search_with_string ("weechat.color.chat_host", NULL, NULL, &ptr_option, NULL); if (!ptr_option) { - FAIL("ERROR: option irc.color.message_join not found."); + FAIL("ERROR: option weechat.color.chat_host not found."); } snprintf (str_value, sizeof (str_value), "%s-test-", gui_color_from_option (ptr_option)); - WEE_CHECK_EVAL(str_value, "${color:irc.color.message_join}-test-"); + WEE_CHECK_EVAL(str_value, "${color:weechat.color.chat_host}-test-"); WEE_CHECK_EVAL("test", "${option.not.found}test"); /* test modifier (invalid values) */ diff --git a/tests/unit/plugins/test-plugins.cpp b/tests/unit/plugins/test-plugins.cpp new file mode 100644 index 000000000..5afc2b85c --- /dev/null +++ b/tests/unit/plugins/test-plugins.cpp @@ -0,0 +1,26 @@ +/* + * test-plugins.cpp - generic tests on plugins + * + * Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * WeeChat is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WeeChat. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "CppUTest/TestHarness.h" + +TEST_GROUP(Plugins) +{ +}; diff --git a/tests/unit/test-plugins.cpp b/tests/unit/test-plugins.cpp deleted file mode 100644 index 96151b6b1..000000000 --- a/tests/unit/test-plugins.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * test-plugins.cpp - test plugins - * - * Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org> - * - * This file is part of WeeChat, the extensible chat client. - * - * WeeChat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * WeeChat is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with WeeChat. If not, see <https://www.gnu.org/licenses/>. - */ - -#include "CppUTest/TestHarness.h" - -extern "C" -{ -#include <stdio.h> -#include <string.h> -#include <regex.h> -#include "src/core/wee-hdata.h" -#include "src/core/wee-hook.h" -#include "src/plugins/plugin.h" -} - -TEST_GROUP(Plugins) -{ -}; - -/* - * Tests loaded plugins. - */ - -TEST(Plugins, Loaded) -{ - struct t_hdata *hdata; - void *plugins; - - hdata = hook_hdata_get (NULL, "plugin"); - CHECK(hdata); - - plugins = hdata_get_list (hdata, "weechat_plugins"); - CHECK(plugins); - - /* check that all plugins are properly loaded */ - CHECK(hdata_search (hdata, plugins, "${plugin.name} == alias", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == buflist", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == charset", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == exec", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == fifo", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == fset", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == guile", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == irc", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == javascript", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == logger", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == lua", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == perl", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == php", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == python", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == relay", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == ruby", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == script", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == spell", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == tcl", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == trigger", 1)); - CHECK(hdata_search (hdata, plugins, "${plugin.name} == xfer", 1)); - - /* non-existing plugin */ - POINTERS_EQUAL(NULL, - hdata_search (hdata, plugins, "${plugin.name} == x", 1)); -} |