diff --git a/guile/meson.build b/guile/meson.build index e0319c7a..aceada35 100644 --- a/guile/meson.build +++ b/guile/meson.build @@ -1,4 +1,4 @@ -## Copyright (C) 2022 Dirk-Jan C. Binnema +## Copyright (C) 2022-2024 Dirk-Jan C. Binnema ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -109,24 +109,6 @@ install_data(mu_guile_scripts, install_dir: mu_guile_script_dir) guile_builddir=meson.current_build_dir() -# -# guile test; does't work wit asan. -# -if get_option('b_sanitize') == 'none' - guile_load_path=':'.join([ - join_paths(meson.project_source_root(), 'guile'), - meson.current_build_dir()]) - - test('test-mu-guile', - executable('test-mu-guile', - join_paths('tests', 'test-mu-guile.cc'), - install: false, - cpp_args: [ - '-DABS_SRCDIR="' + join_paths(meson.current_source_dir(), 'tests') + '"', - '-DGUILE_LOAD_PATH="' + guile_load_path + '"', - '-DGUILE_EXTENSIONS_PATH="' + guile_load_path + '"' - ], - dependencies: [glib_dep, lib_mu_dep])) -else - message('sanitizer build; skip guile test') +if not get_option('tests').disabled() + subdir('tests') endif diff --git a/guile/tests/meson.build b/guile/tests/meson.build new file mode 100644 index 00000000..a9c63524 --- /dev/null +++ b/guile/tests/meson.build @@ -0,0 +1,38 @@ +## Copyright (C) 2024 Dirk-Jan C. Binnema +## +## This program 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. +## +## This program 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 this program; if not, write to the Free Software Foundation, +## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# +# guile test; does't work wit asan. +# +if get_option('b_sanitize') == 'none' + guile_load_path=':'.join([ + join_paths(meson.project_source_root(), 'guile'), + meson.current_build_dir()]) + + test('test-mu-guile', + executable('test-mu-guile', + 'test-mu-guile.cc', + install: false, + cpp_args: [ + '-DABS_SRCDIR="' + meson.current_source_dir() + '"', + '-DGUILE_LOAD_PATH="' + guile_load_path + '"', + '-DGUILE_EXTENSIONS_PATH="' + guile_load_path + '"' + ], + dependencies: [glib_dep, lib_mu_dep])) +else + message('sanitizer build; skip guile test') +endif diff --git a/lib/meson.build b/lib/meson.build index df7c8e37..b3b519d5 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -90,78 +90,6 @@ list_maildirs = executable('list-maildirs', 'mu-scanner.cc', dependencies: [glib_dep, config_h_dep, lib_mu_utils_dep]) -# -# unit tests -# - -test('test-threads', - executable('test-threads', - 'mu-query-threads.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) -test('test-contacts-cache', - executable('test-contacts-cache', - 'mu-contacts-cache.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-config', - executable('test-config', - 'mu-config.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-query-macros', - executable('test-query-macros', - 'mu-query-macros.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [lib_mu_dep])) - -test('test-query-processor', - executable('test-query-processor', - 'mu-query-processor.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [lib_mu_dep])) - -test('test-query-parser', - executable('test-query-parser', - 'mu-query-parser.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [lib_mu_dep])) - -test('test-query-xapianizer', - executable('test-query-xapianizer', - 'mu-query-xapianizer.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [lib_mu_dep])) - - -test('test-indexer', - executable('test-indexer', 'mu-indexer.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, config_h_dep, - lib_mu_dep])) - -test('test-scanner', - executable('test-scanner', 'mu-scanner.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, config_h_dep, - lib_mu_utils_dep])) - -test('test-xapian-db', - executable('test-xapian-db', 'mu-xapian-db.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [lib_mu_dep, config_h_dep])) - - -subdir('tests') +if not get_option('tests').disabled() + subdir('tests') +endif diff --git a/lib/message/meson.build b/lib/message/meson.build index 4c7bb601..006bb189 100644 --- a/lib/message/meson.build +++ b/lib/message/meson.build @@ -1,4 +1,4 @@ -## Copyright (C) 2022-2023 Dirk-Jan C. Binnema +## Copyright (C) 2022-2024 Dirk-Jan C. Binnema ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -42,61 +42,6 @@ lib_mu_message_dep = declare_dependency( include_directories: include_directories(['.', '..'])) -# -# tests -# - -test('test-contact', - executable('test-contact', - 'mu-contact.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) - -test('test-document', - executable('test-document', - 'mu-document.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) - -test('test-fields', - executable('test-fields', - 'mu-fields.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) - -test('test-flags', - executable('test-flags', - 'mu-flags.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) - -test('test-message', - executable('test-message', - 'test-mu-message.cc', - install: false, - dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) - -test('test-priority', - executable('test-priority', - 'mu-priority.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) - -test('test-message-file', - executable('test-message-file', - 'mu-message-file.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_message_dep])) - -test('test-message-part', - executable('test-message-part', - 'mu-message-part.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_message_dep])) +if not get_option('tests').disabled() + subdir('tests') +endif diff --git a/lib/message/tests/meson.build b/lib/message/tests/meson.build new file mode 100644 index 00000000..94d0de92 --- /dev/null +++ b/lib/message/tests/meson.build @@ -0,0 +1,74 @@ +## Copyright (C) 2022-2024 Dirk-Jan C. Binnema +## +## This program 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. +## +## This program 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 this program; if not, write to the Free Software Foundation, +## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# +# tests +# + +test('test-contact', + executable('test-contact', + '../mu-contact.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) + +test('test-document', + executable('test-document', + '../mu-document.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) + +test('test-fields', + executable('test-fields', + '../mu-fields.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) + +test('test-flags', + executable('test-flags', + '../mu-flags.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) + +test('test-message', + executable('test-message', + '../test-mu-message.cc', + install: false, + dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) + +test('test-priority', + executable('test-priority', + '../mu-priority.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, gmime_dep, lib_mu_message_dep])) + +test('test-message-file', + executable('test-message-file', + '../mu-message-file.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_message_dep])) + +test('test-message-part', + executable('test-message-part', + '../mu-message-part.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_message_dep])) diff --git a/lib/tests/meson.build b/lib/tests/meson.build index 5d21ea1c..39b5b38d 100644 --- a/lib/tests/meson.build +++ b/lib/tests/meson.build @@ -1,4 +1,4 @@ -## Copyright (C) 2021-2023 Dirk-Jan C. Binnema +## Copyright (C) 2021-2024 Dirk-Jan C. Binnema ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -17,6 +17,84 @@ # # tests # + + +# +# unit tests +# + +test('test-threads', + executable('test-threads', + '../mu-query-threads.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) +test('test-contacts-cache', + executable('test-contacts-cache', + '../mu-contacts-cache.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-config', + executable('test-config', + '../mu-config.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-query-macros', + executable('test-query-macros', + '../mu-query-macros.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [lib_mu_dep])) + +test('test-query-processor', + executable('test-query-processor', + '../mu-query-processor.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [lib_mu_dep])) + +test('test-query-parser', + executable('test-query-parser', + '../mu-query-parser.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [lib_mu_dep])) + +test('test-query-xapianizer', + executable('test-query-xapianizer', + '../mu-query-xapianizer.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [lib_mu_dep])) + + +test('test-indexer', + executable('test-indexer', + '../mu-indexer.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, config_h_dep, + lib_mu_dep])) + +test('test-scanner', + executable('test-scanner', + '../mu-scanner.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, config_h_dep, + lib_mu_utils_dep])) + +test('test-xapian-db', + executable('test-xapian-db', + '../mu-xapian-db.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [lib_mu_dep, config_h_dep])) + test('test-maildir', executable('test-maildir', 'test-mu-maildir.cc', diff --git a/lib/utils/meson.build b/lib/utils/meson.build index 2181e615..e8f3567d 100644 --- a/lib/utils/meson.build +++ b/lib/utils/meson.build @@ -54,62 +54,6 @@ html2text = executable('mu-html2text', cpp_args: ['-DBUILD_HTML_TO_TEXT'], install: false) -# -# tests -# -test('test-sexp', - executable('test-sexp', 'mu-sexp.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep])) - -test('test-regex', - executable('test-regex', 'mu-regex.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep])) - -test('test-command-handler', - executable('test-command-handler', 'mu-command-handler.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep])) - -test('test-utils-file', - executable('test-utils-file', 'mu-utils-file.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, gio_unix_dep,config_h_dep, lib_mu_utils_dep])) - -test('test-logger', - executable('test-logger', 'mu-logger.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep, thread_dep ])) - -test('test-option', - executable('test-option', 'mu-option.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep ])) - -test('test-lang-detector', - executable('test-lang-detector', 'mu-lang-detector.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [ config_h_dep, glib_dep, lib_mu_utils_dep ])) - -test('test-html-to-text', - executable('test-html-to-text', 'mu-html-to-text.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep])) - -test('test-error', - executable('test-error', 'mu-error.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_utils_dep])) - - -subdir('tests') +if not get_option('tests').disabled() + subdir('tests') +endif diff --git a/lib/utils/tests/meson.build b/lib/utils/tests/meson.build index aea5b3fd..9c2883bb 100644 --- a/lib/utils/tests/meson.build +++ b/lib/utils/tests/meson.build @@ -1,4 +1,4 @@ -## Copyright (C) 2021-2023 Dirk-Jan C. Binnema +## Copyright (C) 2021-2024 Dirk-Jan C. Binnema ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -18,6 +18,64 @@ ################################################################################ # tests + +# +# tests +# +test('test-sexp', + executable('test-sexp', '../mu-sexp.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep])) + +test('test-regex', + executable('test-regex', '../mu-regex.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep])) + +test('test-command-handler', + executable('test-command-handler', '../mu-command-handler.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep])) + +test('test-utils-file', + executable('test-utils-file', '../mu-utils-file.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, gio_unix_dep,config_h_dep, lib_mu_utils_dep])) + +test('test-logger', + executable('test-logger', '../mu-logger.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep, thread_dep ])) + +test('test-option', + executable('test-option', '../mu-option.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep ])) + +test('test-lang-detector', + executable('test-lang-detector', '../mu-lang-detector.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [ config_h_dep, glib_dep, lib_mu_utils_dep ])) + +test('test-html-to-text', + executable('test-html-to-text', '../mu-html-to-text.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep])) + +test('test-error', + executable('test-error', '../mu-error.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_utils_dep])) + test('test-mu-utils', executable('test-mu-utils', 'test-utils.cc', diff --git a/meson_options.txt b/meson_options.txt index 2214cbeb..eabdc00b 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,4 +1,4 @@ -## Copyright (C) 2022-2023 Dirk-Jan C. Binnema +## Copyright (C) 2022-2024 Dirk-Jan C. Binnema ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ ## along with this program; if not, write to the Free Software Foundation, ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +option('tests', + type : 'feature', + value: 'auto', + description: 'build unit tests') option('guile', type : 'feature', diff --git a/mu/meson.build b/mu/meson.build index cdb9c72a..0ada1e5f 100644 --- a/mu/meson.build +++ b/mu/meson.build @@ -37,86 +37,7 @@ mu = executable( dependencies: [ glib_dep, gmime_dep, lib_mu_dep, thread_dep, config_h_dep ], cpp_args: ['-DMU_SCRIPTS_DIR="'+ join_paths(datadir, 'mu', 'scripts') + '"'], install: true) - # -# tests -# - -test('test-cmd-add', - executable('test-cmd-add', - 'mu-cmd-add.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-cfind', - executable('test-cmd-cfind', - 'mu-cmd-cfind.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-extract', - executable('test-cmd-extract', - 'mu-cmd-extract.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-find', - executable('test-cmd-find', - 'mu-cmd-find.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-index', - executable('test-cmd-index', - 'mu-cmd-index.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-init', - executable('test-cmd-init', - 'mu-cmd-init.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-mkdir', - executable('test-cmd-mkdir', - 'mu-cmd-mkdir.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-move', - executable('test-cmd-move', - 'mu-cmd-move.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-remove', - executable('test-cmd-remove', - 'mu-cmd-remove.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-verify', - executable('test-cmd-verify', - 'mu-cmd-verify.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -test('test-cmd-view', - executable('test-cmd-view', - 'mu-cmd-view.cc', - install: false, - cpp_args: ['-DBUILD_TESTS'], - dependencies: [glib_dep, lib_mu_dep])) - -subdir('tests') +if not get_option('tests').disabled() + subdir('tests') +endif diff --git a/mu/tests/meson.build b/mu/tests/meson.build index b1025b77..cc8a3429 100644 --- a/mu/tests/meson.build +++ b/mu/tests/meson.build @@ -1,4 +1,4 @@ -## Copyright (C) 2022 Dirk-Jan C. Binnema +## Copyright (C) 2022-2024 Dirk-Jan C. Binnema ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -18,6 +18,84 @@ # tests # + +test('test-cmd-add', + executable('test-cmd-add', + '../mu-cmd-add.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-cfind', + executable('test-cmd-cfind', + '../mu-cmd-cfind.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-extract', + executable('test-cmd-extract', + '../mu-cmd-extract.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-find', + executable('test-cmd-find', + '../mu-cmd-find.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-index', + executable('test-cmd-index', + '../mu-cmd-index.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-init', + executable('test-cmd-init', + '../mu-cmd-init.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-mkdir', + executable('test-cmd-mkdir', + '../mu-cmd-mkdir.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-move', + executable('test-cmd-move', + '../mu-cmd-move.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-remove', + executable('test-cmd-remove', + '../mu-cmd-remove.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-verify', + executable('test-cmd-verify', + '../mu-cmd-verify.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + +test('test-cmd-view', + executable('test-cmd-view', + '../mu-cmd-view.cc', + install: false, + cpp_args: ['-DBUILD_TESTS'], + dependencies: [glib_dep, lib_mu_dep])) + test('test-cmd-query', executable('test-cmd-query', 'test-mu-query.cc',