Skip to content

Commit

Permalink
meson: add unit tests
Browse files Browse the repository at this point in the history
Signed-off-by: Rosen Penev <[email protected]>
  • Loading branch information
neheb committed Feb 12, 2023
1 parent 35ad1bc commit fcd744d
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/on_PR_meson.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ jobs:
run: |
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 test -C "${{github.workspace}}/build" --verboise #fails for some reason
VisualStudio:
runs-on: windows-latest
Expand All @@ -47,6 +48,7 @@ jobs:
run: |
meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}}
meson compile -C "${{github.workspace}}/build" --verbose
meson test -C "${{github.workspace}}/build" --verbose
MacOS:
runs-on: macos-latest
Expand All @@ -66,3 +68,4 @@ jobs:
run: |
meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}}
meson compile -C "${{github.workspace}}/build" --verbose
meson test -C "${{github.workspace}}/build" --verbose
1 change: 1 addition & 0 deletions .github/workflows/on_PR_meson_clang.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,4 @@ jobs:
run: |
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 test -C "${{github.workspace}}/build" --verbose
2 changes: 2 additions & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,5 @@ executable(
dependencies: exiv2_dep,
install: true,
)

subdir('unitTests')
4 changes: 4 additions & 0 deletions meson_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,7 @@ option('video', type : 'boolean',
option('xmp', type : 'feature',
description : 'Build support for XMP',
)

option('unitTests', type : 'feature',
description : 'Build and run unit tests',
)
15 changes: 15 additions & 0 deletions subprojects/gtest.wrap
Original file line number Diff line number Diff line change
@@ -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
55 changes: 55 additions & 0 deletions unitTests/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
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_LangAltValueRead.cpp',
'test_Photoshop.cpp',
'test_TimeValue.cpp',
'test_XmpKey.cpp',
'test_basicio.cpp',
'test_bmpimage.cpp',
'test_cr2header_int.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',
#'test_datasets.cpp',
#'test_IptcKey.cpp',
)

test_sources += int_lib

if get_option('video')
test_sources += files(
'test_asfvideo.cpp',
'test_matroskavideo.cpp',
'test_riffVideo.cpp',
)
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)

0 comments on commit fcd744d

Please sign in to comment.