summaryrefslogtreecommitdiffstats
path: root/third_party/libsrtp/src/test/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libsrtp/src/test/meson.build')
-rw-r--r--third_party/libsrtp/src/test/meson.build77
1 files changed, 77 insertions, 0 deletions
diff --git a/third_party/libsrtp/src/test/meson.build b/third_party/libsrtp/src/test/meson.build
new file mode 100644
index 0000000000..4a67912ebb
--- /dev/null
+++ b/third_party/libsrtp/src/test/meson.build
@@ -0,0 +1,77 @@
+# test suite
+
+# XXX: Makefile only runs test_srtp and srtp_driver with valgrind
+add_test_setup('valgrind',
+ exe_wrapper: ['valgrind', '--leak-check=full'],
+ timeout_multiplier: 10)
+
+test_apps = [
+ ['srtp_driver', {'extra_sources': 'util.c', 'run_args': '-v'}],
+ ['replay_driver', {'extra_sources': 'ut_sim.c', 'run_args': '-v'}],
+ ['roc_driver', {'extra_sources': 'ut_sim.c', 'run_args': '-v'}],
+ ['rdbx_driver', {'extra_sources': 'ut_sim.c', 'run_args': '-v'}],
+ ['test_srtp', {'run_args': '-v'}],
+ ['rtpw', {'extra_sources': ['rtp.c', 'util.c', '../crypto/math/datatypes.c'], 'define_test': false}],
+]
+
+foreach t : test_apps
+ test_name = t.get(0)
+ test_dict = t.get(1, {})
+ test_extra_sources = test_dict.get('extra_sources', [])
+ test_run_args = test_dict.get('run_args', [])
+
+ test_exe = executable(test_name,
+ '@0@.c'.format(test_name), 'getopt_s.c', test_extra_sources,
+ include_directories: [config_incs, crypto_incs, srtp2_incs, test_incs],
+ dependencies: [srtp2_deps, syslibs],
+ link_with: libsrtp2_for_tests)
+
+ if test_dict.get('define_test', true)
+ test(test_name, test_exe, args: test_run_args)
+ else
+ set_variable(test_name + '_exe', test_exe)
+ endif
+endforeach
+
+# rtpw test needs to be run using shell scripts
+can_run_rtpw = find_program('sh', 'bash', required: false).found()
+
+# Meson only passes the exe_wrapper to shell scripts starting 0.55
+if meson.is_cross_build() and meson.version().version_compare('<0.55')
+ can_run_rtpw = false
+endif
+
+if can_run_rtpw
+ words_txt = files('words.txt')
+
+ rtpw_test_sh = find_program('rtpw_test.sh', required: false)
+ if rtpw_test_sh.found()
+ test('rtpw_test', rtpw_test_sh,
+ args: ['-w', words_txt],
+ depends: rtpw_exe,
+ is_parallel: false,
+ workdir: meson.current_build_dir())
+ endif
+
+ rtpw_test_gcm_sh = find_program('rtpw_test_gcm.sh', required: false)
+ if (use_openssl or use_nss) and rtpw_test_gcm_sh.found()
+ test('rtpw_test_gcm', rtpw_test_gcm_sh,
+ args: ['-w', words_txt],
+ depends: rtpw_exe,
+ is_parallel: false,
+ workdir: meson.current_build_dir())
+ endif
+endif
+
+# rtp_decoder
+pcap_dep = dependency('libpcap', required: get_option('pcap-tests'))
+
+if pcap_dep.found()
+ executable('rtp_decoder',
+ 'rtp_decoder.c', 'getopt_s.c', 'rtp.c', 'util.c', 'getopt_s.c',
+ '../crypto/math/datatypes.c',
+ include_directories: [config_incs, crypto_incs, srtp2_incs, test_incs],
+ dependencies: [srtp2_deps, pcap_dep, syslibs],
+ link_with: libsrtp2,
+ install: false)
+endif