meson: add unit tests

Signed-off-by: Rosen Penev <rosenp@gmail.com>
main
Rosen Penev 2 years ago
parent 8310b48552
commit 52ab999151

@ -27,6 +27,7 @@ jobs:
run: | run: |
env CXX=g++-${{matrix.cxx}} meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} env CXX=g++-${{matrix.cxx}} meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}}
meson compile -C "${{github.workspace}}/build" --verbose meson compile -C "${{github.workspace}}/build" --verbose
meson test -C "${{github.workspace}}/build" --verbose
VisualStudio: VisualStudio:
runs-on: windows-latest runs-on: windows-latest
@ -47,6 +48,7 @@ jobs:
run: | run: |
meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}}
meson compile -C "${{github.workspace}}/build" --verbose meson compile -C "${{github.workspace}}/build" --verbose
meson test -C "${{github.workspace}}/build" --verbose
MacOS: MacOS:
runs-on: macos-latest runs-on: macos-latest
@ -66,3 +68,4 @@ jobs:
run: | run: |
meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}}
meson compile -C "${{github.workspace}}/build" --verbose meson compile -C "${{github.workspace}}/build" --verbose
meson test -C "${{github.workspace}}/build" --verbose

@ -27,3 +27,4 @@ jobs:
run: | run: |
env CXX=clang++-${{matrix.cxx}} CXXFLAGS=-stdlib=libc++ meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} env CXX=clang++-${{matrix.cxx}} CXXFLAGS=-stdlib=libc++ meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}}
meson compile -C "${{github.workspace}}/build" --verbose meson compile -C "${{github.workspace}}/build" --verbose
meson test -C "${{github.workspace}}/build" --verbose

@ -339,3 +339,5 @@ executable(
dependencies: exiv2_dep, dependencies: exiv2_dep,
install: true, install: true,
) )
subdir('unitTests')

@ -40,3 +40,7 @@ option('video', type : 'boolean',
option('xmp', type : 'feature', option('xmp', type : 'feature',
description : 'Build support for XMP', description : 'Build support for XMP',
) )
option('unitTests', type : 'feature',
description : 'Build and run unit tests',
)

@ -0,0 +1,15 @@
[wrap-file]
directory = googletest-1.13.0
source_url = https://github.com/google/googletest/archive/refs/tags/v1.13.0.tar.gz
source_filename = gtest-1.13.0.tar.gz
source_hash = ad7fdba11ea011c1d925b3289cf4af2c66a352e18d4c7264392fead75e919363
patch_filename = gtest_1.13.0-1_patch.zip
patch_url = https://wrapdb.mesonbuild.com/v2/gtest_1.13.0-1/get_patch
patch_hash = 6d82a02c3a45071cea989983bf6becde801cbbfd29196ba30dada0215393b082
wrapdb_version = 1.13.0-1
[provide]
gtest = gtest_dep
gtest_main = gtest_main_dep
gmock = gmock_dep
gmock_main = gmock_main_dep

@ -0,0 +1,57 @@
gtest_dep = dependency('gmock_main', required: get_option('unitTests'))
if not gtest_dep.found()
subdir_done()
endif
test_sources = files(
'test_DateValue.cpp',
'test_Error.cpp',
'test_FileIo.cpp',
'test_ImageFactory.cpp',
'test_IptcKey.cpp',
'test_LangAltValueRead.cpp',
'test_Photoshop.cpp',
'test_TimeValue.cpp',
'test_XmpKey.cpp',
'test_basicio.cpp',
'test_bmpimage.cpp',
'test_cr2header_int.cpp',
'test_datasets.cpp',
'test_enforce.cpp',
'test_futils.cpp',
'test_helper_functions.cpp',
'test_image_int.cpp',
'test_jp2image.cpp',
'test_jp2image_int.cpp',
'test_pngimage.cpp',
'test_safe_op.cpp',
'test_slice.cpp',
'test_tiffheader.cpp',
'test_types.cpp',
'test_utils.cpp',
)
if get_option('video')
test_sources += files(
'test_asfvideo.cpp',
'test_matroskavideo.cpp',
'test_riffVideo.cpp',
)
endif
if host_machine.system() == 'windows' and get_option('default_library') != 'static'
test_sources += int_lib
endif
t_args = ['-UEXIV2API', '-DEXIV2API=', '-DTESTDATA_PATH="@0@"'.format('..' / 'test' / 'data')]
privinc = include_directories('../src', '../include/exiv2')
unit_tests = executable(
'unit_tests',
test_sources,
cpp_args: t_args,
dependencies: [deps, exiv2_dep, gtest_dep],
include_directories: privinc,
)
test('Unit Tests', unit_tests)
Loading…
Cancel
Save