blob: 2a6645f8753f7359a2f7b399531b54cadb9b5b7b [file] [log] [blame]
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -07001gtests = {
2 'cancel': [stdplus_dep, gtest_main_dep],
3 'exception': [stdplus_dep, gtest_main_dep],
4 'handle/copyable': [stdplus_dep, gtest_main_dep],
5 'handle/managed': [stdplus_dep, gtest_main_dep],
6 'raw': [stdplus_dep, gmock_dep, gtest_main_dep],
7 'signal': [stdplus_dep, gtest_main_dep],
8 'util/cexec': [stdplus_dep, gtest_main_dep],
9 'util/string': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIf2ddf512022-09-20 15:36:44 -070010 'zstring': [stdplus_dep, gtest_main_dep],
William A. Kennington III61a81bc2022-09-19 17:46:49 -070011 'zstring_view': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070012}
William A. Kennington IIId7acddd2022-07-13 16:41:11 -070013
William A. Kennington III5a528022021-04-28 12:52:43 -070014if has_dl
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070015 gtests += {
16 'dl': [stdplus_dl_dep, gtest_main_dep],
17 }
William A. Kennington III5a528022021-04-28 12:52:43 -070018elif build_tests.enabled()
19 error('Not testing libdl feature')
20else
21 warning('Not testing libdl feature')
22endif
23
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070024if has_fd
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070025 gtests += {
26 'fd/dupable': [stdplus_fd_dep],
27 'fd/managed': [stdplus_fd_dep],
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070028 'fd/fmt': [stdplus_fd_dep, stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070029 'fd/intf': [stdplus_fd_dep],
30 'fd/impl': [stdplus_fd_dep],
31 'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
32 'fd/mmap': [stdplus_fd_dep, gtest_main_dep],
33 'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep],
34 'fd/ops': [stdplus_fd_dep, gtest_main_dep],
35 }
36 if has_gtest
37 gtests += {
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070038 'fd/atomic': [stdplus_fd_dep, stdplus_gtest_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070039 }
40 elif build_tests.enabled()
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070041 error('Not testing fd/atomic feature')
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070042 else
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070043 warning('Not testing fd/atomic feature')
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070044 endif
William A. Kennington III45754242021-04-28 12:48:31 -070045elif build_tests.enabled()
46 error('Not testing file descriptor feature')
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070047else
48 warning('Not testing file descriptor feature')
49endif
50
William A. Kennington III5c20da22021-06-18 16:44:55 -070051if has_io_uring
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070052 gtests += {
53 'io_uring': [stdplus_io_uring_dep, stdplus_dep, gmock_dep, gtest_main_dep],
54 }
William A. Kennington III5c20da22021-06-18 16:44:55 -070055elif build_tests.enabled()
56 error('Not testing io_uring feature')
57else
58 warning('Not testing io_uring feature')
59endif
60
William A. Kennington III953de362022-07-13 17:32:55 -070061if has_gtest
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070062 gtests += {
63 'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep],
64 }
William A. Kennington III953de362022-07-13 17:32:55 -070065elif build_tests.enabled()
66 error('Not testing gtest lib feature')
67else
68 warning('Not testing gtest lib feature')
69endif
70
William A. Kennington IIIb4674602022-08-24 14:54:37 -070071add_test_setup(
72 'stdplus',
73 exe_wrapper: run_with_tmp,
74 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
75 is_default: true)
76
77add_test_setup(
78 'valgrind',
79 exe_wrapper: [run_with_tmp, 'valgrind'],
80 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'})
81
William A. Kennington III953de362022-07-13 17:32:55 -070082if gtest_dep.found() and gmock_dep.found()
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070083 foreach t, deps : gtests
William A. Kennington III953de362022-07-13 17:32:55 -070084 test(
85 t,
William A. Kennington IIIb4674602022-08-24 14:54:37 -070086 executable(
William A. Kennington III953de362022-07-13 17:32:55 -070087 t.underscorify(), t + '.cpp',
88 build_by_default: false,
89 implicit_include_directories: false,
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070090 dependencies: deps))
William A. Kennington III83af3fa2021-01-31 15:22:54 -080091 endforeach
92endif