geary/test/meson.build
Niels De Graef 6ce2373a75 Create a config.vapi for config.h
Currently, a lot of our build variables that are defined at
configuration time, are spread out across the code base, often declared
as `extern` which can break when moving around sections of the code
across files.

This commit introduces a "Config" namespace which basically maps to the
definitions in `config.h`, but allows us to properly access them too
from the Vala source code.

By doing so, it helps us to more explicitly see where we rely on a
build variable from this file (which should be obvious from the `Config'
namespace).

To make it ourselves a bit easier in Meson too, we can declare an
internal dependency, which helps ensure that we pull in the dependency
where needed.
2025-12-07 01:32:32 +01:00

213 lines
6 KiB
Python

subdir('data')
# Mock classes should be compiled into a stand-alone test lib for
# re-use by both client and engine test suites, but we can't since
# that would depend on geary-engine.vapi, and the engine test sute
# needs to depend geary-engine_internal.vapi, which leads to duplicate
# symbols when linking. So just duplicate the sources in both.
libmock_sources = [
'mock/mock-account.vala',
'mock/mock-contact-store.vala',
'mock/mock-client-service.vala',
'mock/mock-credentials-mediator.vala',
'mock/mock-email-identifier.vala',
'mock/mock-email-properties.vala',
'mock/mock-folder.vala',
'mock/mock-folder-properties.vala',
'mock/mock-search-query.vala',
]
test_engine_sources = [
'test-case.vala',
'test-server.vala',
'test-engine.vala',
'engine/common/common-contact-harvester-mock.vala',
'engine/api/geary-account-information-test.vala',
'engine/api/geary-attachment-test.vala',
'engine/api/geary-composed-email-test.vala',
'engine/api/geary-email-test.vala',
'engine/api/geary-engine-test.vala',
'engine/api/geary-folder-path-test.vala',
'engine/api/geary-service-information-test.vala',
'engine/app/app-conversation-test.vala',
'engine/app/app-conversation-monitor-test.vala',
'engine/app/app-conversation-set-test.vala',
'engine/common/common-contact-store-impl-test.vala',
'engine/common/common-contact-harvester-test.vala',
'engine/common/common-fts-search-query-test.vala',
'engine/db/db-database-test.vala',
'engine/db/db-versioned-database-test.vala',
'engine/imap/command/imap-create-command-test.vala',
'engine/imap/command/imap-fetch-command-test.vala',
'engine/imap/message/imap-data-format-test.vala',
'engine/imap/message/imap-mailbox-specifier-test.vala',
'engine/imap/parameter/imap-list-parameter-test.vala',
'engine/imap/response/imap-fetch-data-decoder-test.vala',
'engine/imap/response/imap-namespace-response-test.vala',
'engine/imap/transport/imap-client-connection-test.vala',
'engine/imap/transport/imap-client-session-test.vala',
'engine/imap/transport/imap-deserializer-test.vala',
'engine/imap-db/imap-db-account-test.vala',
'engine/imap-db/imap-db-attachment-test.vala',
'engine/imap-db/imap-db-database-test.vala',
'engine/imap-db/imap-db-email-identifier-test.vala',
'engine/imap-db/imap-db-folder-test.vala',
'engine/imap-engine/account-processor-test.vala',
'engine/imap-engine/imap-engine-generic-account-test.vala',
'engine/mime/mime-content-type-test.vala',
'engine/outbox/outbox-email-identifier-test.vala',
'engine/rfc822/rfc822-mailbox-address-test.vala',
'engine/rfc822/rfc822-mailbox-addresses-test.vala',
'engine/rfc822/rfc822-message-test.vala',
'engine/rfc822/rfc822-message-data-test.vala',
'engine/rfc822/rfc822-part-test.vala',
'engine/rfc822/rfc822-utils-test.vala',
'engine/util-ascii-test.vala',
'engine/util-config-file-test.vala',
'engine/util-html-test.vala',
'engine/util-idle-manager-test.vala',
'engine/util-inet-test.vala',
'engine/util-string-test.vala',
'engine/util-timeout-manager-test.vala',
test_engine_resources
]
test_client_sources = [
'test-case.vala',
'test-client.vala',
'client/accounts/accounts-manager-test.vala',
'client/application/application-certificate-manager-test.vala',
'client/application/application-client-test.vala',
'client/application/application-configuration-test.vala',
'client/components/components-validator-test.vala',
'client/components/components-web-view-test-case.vala',
'client/components/components-web-view-test.vala',
'client/composer/composer-web-view-test.vala',
'client/composer/composer-widget-test.vala',
'client/util/util-cache-test.vala',
'client/util/util-email-test.vala',
'client/util/util-js-test.vala',
'js/components-page-state-test.vala',
'js/composer-page-state-test.vala',
'js/conversation-page-state-test.vala',
geary_compiled_schema,
geary_resources
]
test_js_sources = [
'test-case.vala',
'test-js.vala',
'client/components/components-web-view-test-case.vala',
'js/components-page-state-test.vala',
'js/composer-page-state-test.vala',
'js/conversation-page-state-test.vala',
geary_compiled_schema,
geary_resources
]
test_integration_sources = [
'test-case.vala',
'test-integration.vala',
'integration/imap/client-session.vala',
'integration/smtp/client-session.vala',
]
# Engine tests
test_engine_dependencies = [
config_dep,
engine_internal_dep,
vala_unit_dep,
]
test_engine_dependencies += engine_dependencies
test_engine_vala_args = geary_vala_args
if libytnef.found()
test_engine_dependencies += libytnef
test_engine_vala_args += [
'-D', 'WITH_TNEF_SUPPORT'
]
endif
test_engine_bin = executable('test-engine',
test_engine_sources + libmock_sources,
dependencies: test_engine_dependencies,
vala_args: test_engine_vala_args,
c_args: geary_c_args,
)
# Client tests
test_client_dependencies = [
config_dep,
client_internal_dep,
vala_unit_dep,
]
test_client_dependencies += client_dependencies
test_client_bin = executable('test-client',
test_client_sources + libmock_sources,
dependencies: test_client_dependencies,
vala_args: geary_vala_args,
c_args: geary_c_args,
build_rpath: client_build_dir,
)
test_js_dependencies = [
config_dep,
client_internal_dep,
vala_unit_dep,
]
test_js_dependencies += client_dependencies
test_js_bin = executable('test-js',
test_js_sources + libmock_sources,
dependencies: test_js_dependencies,
vala_args: geary_vala_args,
c_args: geary_c_args,
build_rpath: client_build_dir,
)
# Integration tests
test_integration_bin = executable('test-integration',
test_integration_sources,
dependencies: [
config_dep,
engine_dep,
gee,
gio,
gmime,
vala_unit_dep,
webkit2gtk,
],
vala_args: geary_vala_args,
c_args: geary_c_args,
)
test(
'engine-tests',
test_engine_bin,
depends: [ engine_lib ]
)
test(
'client-tests',
test_client_bin,
depends: [ client_lib, web_process ]
)
test(
'js-tests',
test_js_bin,
depends: [ client_lib, web_process ]
)