blob: e55b18ca6e660a1309875ca42fcb6d2bf032b8ce [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 III403cda22022-12-12 15:52:35 -08006 'hash': [stdplus_dep, gtest_main_dep],
William A. Kennington III85149ee2023-01-03 18:15:47 -08007 'hash/array': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIb07a2eb2023-01-03 18:14:40 -08008 'hash/tuple': [stdplus_dep, gtest_main_dep],
William A. Kennington III9330c872023-01-04 15:41:53 -08009 'net/addr/ip': [stdplus_dep, gtest_main_dep],
William A. Kennington III8c5f28c2022-12-07 01:21:36 -080010 'numeric/endian': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIcb9ddb62022-11-18 19:50:10 -080011 'pinned': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070012 'raw': [stdplus_dep, gmock_dep, gtest_main_dep],
13 'signal': [stdplus_dep, gtest_main_dep],
William A. Kennington III60479702022-12-07 02:55:24 -080014 'str/cat': [stdplus_dep, gtest_main_dep],
William A. Kennington III48a470a2022-12-10 17:09:59 -080015 'str/cexpr': [stdplus_dep, gtest_main_dep],
William A. Kennington III521475e2022-12-12 16:51:44 -080016 'str/maps': [stdplus_dep, gmock_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070017 'util/cexec': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIf2ddf512022-09-20 15:36:44 -070018 'zstring': [stdplus_dep, gtest_main_dep],
William A. Kennington III61a81bc2022-09-19 17:46:49 -070019 'zstring_view': [stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070020}
William A. Kennington IIId7acddd2022-07-13 16:41:11 -070021
William A. Kennington III5a528022021-04-28 12:52:43 -070022if has_dl
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070023 gtests += {
24 'dl': [stdplus_dl_dep, gtest_main_dep],
25 }
William A. Kennington III5a528022021-04-28 12:52:43 -070026elif build_tests.enabled()
27 error('Not testing libdl feature')
28else
29 warning('Not testing libdl feature')
30endif
31
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070032if has_fd
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070033 gtests += {
34 'fd/dupable': [stdplus_fd_dep],
35 'fd/managed': [stdplus_fd_dep],
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070036 'fd/fmt': [stdplus_fd_dep, stdplus_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070037 'fd/intf': [stdplus_fd_dep],
38 'fd/impl': [stdplus_fd_dep],
39 'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
40 'fd/mmap': [stdplus_fd_dep, gtest_main_dep],
41 'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep],
42 'fd/ops': [stdplus_fd_dep, gtest_main_dep],
43 }
44 if has_gtest
45 gtests += {
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070046 'fd/atomic': [stdplus_fd_dep, stdplus_gtest_dep, gtest_main_dep],
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070047 }
48 elif build_tests.enabled()
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070049 error('Not testing fd/atomic feature')
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070050 else
William A. Kennington IIIaa4fcfc2022-08-23 16:35:10 -070051 warning('Not testing fd/atomic feature')
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070052 endif
William A. Kennington III45754242021-04-28 12:48:31 -070053elif build_tests.enabled()
54 error('Not testing file descriptor feature')
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070055else
56 warning('Not testing file descriptor feature')
57endif
58
William A. Kennington III5c20da22021-06-18 16:44:55 -070059if has_io_uring
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070060 gtests += {
61 'io_uring': [stdplus_io_uring_dep, stdplus_dep, gmock_dep, gtest_main_dep],
62 }
William A. Kennington III5c20da22021-06-18 16:44:55 -070063elif build_tests.enabled()
64 error('Not testing io_uring feature')
65else
66 warning('Not testing io_uring feature')
67endif
68
William A. Kennington III953de362022-07-13 17:32:55 -070069if has_gtest
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070070 gtests += {
71 'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep],
72 }
William A. Kennington III953de362022-07-13 17:32:55 -070073elif build_tests.enabled()
74 error('Not testing gtest lib feature')
75else
76 warning('Not testing gtest lib feature')
77endif
78
William A. Kennington IIIb4674602022-08-24 14:54:37 -070079add_test_setup(
80 'stdplus',
81 exe_wrapper: run_with_tmp,
82 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
83 is_default: true)
84
85add_test_setup(
86 'valgrind',
87 exe_wrapper: [run_with_tmp, 'valgrind'],
88 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'})
89
William A. Kennington III953de362022-07-13 17:32:55 -070090if gtest_dep.found() and gmock_dep.found()
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070091 foreach t, deps : gtests
William A. Kennington III953de362022-07-13 17:32:55 -070092 test(
93 t,
William A. Kennington IIIb4674602022-08-24 14:54:37 -070094 executable(
William A. Kennington III953de362022-07-13 17:32:55 -070095 t.underscorify(), t + '.cpp',
96 build_by_default: false,
97 implicit_include_directories: false,
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070098 dependencies: deps))
William A. Kennington III83af3fa2021-01-31 15:22:54 -080099 endforeach
100endif