blob: 7aada4aff48715b7be690a6bbe3df78de46dcccf [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],
10}
William A. Kennington IIId7acddd2022-07-13 16:41:11 -070011
William A. Kennington III5a528022021-04-28 12:52:43 -070012if has_dl
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070013 gtests += {
14 'dl': [stdplus_dl_dep, gtest_main_dep],
15 }
William A. Kennington III5a528022021-04-28 12:52:43 -070016elif build_tests.enabled()
17 error('Not testing libdl feature')
18else
19 warning('Not testing libdl feature')
20endif
21
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070022if has_fd
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070023 gtests += {
24 'fd/dupable': [stdplus_fd_dep],
25 'fd/managed': [stdplus_fd_dep],
26 'fd/intf': [stdplus_fd_dep],
27 'fd/impl': [stdplus_fd_dep],
28 'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
29 'fd/mmap': [stdplus_fd_dep, gtest_main_dep],
30 'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep],
31 'fd/ops': [stdplus_fd_dep, gtest_main_dep],
32 }
33 if has_gtest
34 gtests += {
35 'fd/fmt': [stdplus_fd_dep, stdplus_gtest_dep, stdplus_dep, gtest_main_dep],
36 }
37 elif build_tests.enabled()
38 error('Not testing fd/fmt feature')
39 else
40 warning('Not testing fd/fmt feature')
41 endif
William A. Kennington III45754242021-04-28 12:48:31 -070042elif build_tests.enabled()
43 error('Not testing file descriptor feature')
William A. Kennington IIIeac9d472020-08-03 13:57:14 -070044else
45 warning('Not testing file descriptor feature')
46endif
47
William A. Kennington III5c20da22021-06-18 16:44:55 -070048if has_io_uring
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070049 gtests += {
50 'io_uring': [stdplus_io_uring_dep, stdplus_dep, gmock_dep, gtest_main_dep],
51 }
William A. Kennington III5c20da22021-06-18 16:44:55 -070052elif build_tests.enabled()
53 error('Not testing io_uring feature')
54else
55 warning('Not testing io_uring feature')
56endif
57
William A. Kennington III953de362022-07-13 17:32:55 -070058if has_gtest
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070059 gtests += {
60 'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep],
61 }
William A. Kennington III953de362022-07-13 17:32:55 -070062elif build_tests.enabled()
63 error('Not testing gtest lib feature')
64else
65 warning('Not testing gtest lib feature')
66endif
67
William A. Kennington IIIb4674602022-08-24 14:54:37 -070068add_test_setup(
69 'stdplus',
70 exe_wrapper: run_with_tmp,
71 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
72 is_default: true)
73
74add_test_setup(
75 'valgrind',
76 exe_wrapper: [run_with_tmp, 'valgrind'],
77 env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'})
78
William A. Kennington III953de362022-07-13 17:32:55 -070079if gtest_dep.found() and gmock_dep.found()
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070080 foreach t, deps : gtests
William A. Kennington III953de362022-07-13 17:32:55 -070081 test(
82 t,
William A. Kennington IIIb4674602022-08-24 14:54:37 -070083 executable(
William A. Kennington III953de362022-07-13 17:32:55 -070084 t.underscorify(), t + '.cpp',
85 build_by_default: false,
86 implicit_include_directories: false,
William A. Kennington IIIef2c0b72022-08-24 15:12:53 -070087 dependencies: deps))
William A. Kennington III83af3fa2021-01-31 15:22:54 -080088 endforeach
89endif