blob: 901527d030bc308087a2e5c6f6af31b98b332e52 [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],
William A. Kennington IIIcb9ddb62022-11-18 19:50:10 -08006 'pinned': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -07007 'raw': [stdplus_dep, gmock_dep, gtest_main_dep],
8 'signal': [stdplus_dep, gtest_main_dep],
William A. Kennington III60479702022-12-07 02:55:24 -08009 'str/cat': [stdplus_dep, gtest_main_dep],
William A. Kennington III48a470a2022-12-10 17:09:59 -080010 'str/cexpr': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070011 'util/cexec': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIf2ddf512022-09-20 15:36:44 -070012 'zstring': [stdplus_dep, gtest_main_dep],
William A. Kennington III61a81bc2022-09-19 17:46:49 -070013 'zstring_view': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070014}
William A. Kennington IIId7acddd2022-07-13 16:41:11 -070015
William A. Kennington III5a528022021-04-28 12:52:43 -070016if has_dl
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070017 gtests += {
18 'dl': [stdplus_dl_dep, gtest_main_dep],
19 }
William A. Kennington III5a528022021-04-28 12:52:43 -070020elif build_tests.enabled()
21 error('Not testing libdl feature')
22else
23 warning('Not testing libdl feature')
24endif
25
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070026if has_fd
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070027 gtests += {
28 'fd/dupable': [stdplus_fd_dep],
29 'fd/managed': [stdplus_fd_dep],
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070030 'fd/fmt': [stdplus_fd_dep, stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070031 'fd/intf': [stdplus_fd_dep],
32 'fd/impl': [stdplus_fd_dep],
33 'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
34 'fd/mmap': [stdplus_fd_dep, gtest_main_dep],
35 'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep],
36 'fd/ops': [stdplus_fd_dep, gtest_main_dep],
37 }
38 if has_gtest
39 gtests += {
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070040 'fd/atomic': [stdplus_fd_dep, stdplus_gtest_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070041 }
42 elif build_tests.enabled()
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070043 error('Not testing fd/atomic feature')
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070044 else
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070045 warning('Not testing fd/atomic feature')
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070046 endif
William A. Kennington III45754242021-04-28 12:48:31 -070047elif build_tests.enabled()
48 error('Not testing file descriptor feature')
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070049else
50 warning('Not testing file descriptor feature')
51endif
52
William A. Kennington III5c20da22021-06-18 16:44:55 -070053if has_io_uring
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070054 gtests += {
55 'io_uring': [stdplus_io_uring_dep, stdplus_dep, gmock_dep, gtest_main_dep],
56 }
William A. Kennington III5c20da22021-06-18 16:44:55 -070057elif build_tests.enabled()
58 error('Not testing io_uring feature')
59else
60 warning('Not testing io_uring feature')
61endif
62
William A. Kennington III953de362022-07-13 17:32:55 -070063if has_gtest
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070064 gtests += {
65 'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep],
66 }
William A. Kennington III953de362022-07-13 17:32:55 -070067elif build_tests.enabled()
68 error('Not testing gtest lib feature')
69else
70 warning('Not testing gtest lib feature')
71endif
72
William A. Kennington IIIb4674602022-08-24 14:54:37 -070073add_test_setup(
74 'stdplus',
75 exe_wrapper: run_with_tmp,
76 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
77 is_default: true)
78
79add_test_setup(
80 'valgrind',
81 exe_wrapper: [run_with_tmp, 'valgrind'],
82 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'})
83
William A. Kennington III953de362022-07-13 17:32:55 -070084if gtest_dep.found() and gmock_dep.found()
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070085 foreach t, deps : gtests
William A. Kennington III953de362022-07-13 17:32:55 -070086 test(
87 t,
William A. Kennington IIIb4674602022-08-24 14:54:37 -070088 executable(
William A. Kennington III953de362022-07-13 17:32:55 -070089 t.underscorify(), t + '.cpp',
90 build_by_default: false,
91 implicit_include_directories: false,
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070092 dependencies: deps))
William A. Kennington III83af3fa2021-01-31 15:22:54 -080093 endforeach
94endif