| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 1 | gtests = { | 
|  | 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 III | 403cda2 | 2022-12-12 15:52:35 -0800 | [diff] [blame] | 6 | 'hash': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 85149ee | 2023-01-03 18:15:47 -0800 | [diff] [blame] | 7 | 'hash/array': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | b07a2eb | 2023-01-03 18:14:40 -0800 | [diff] [blame] | 8 | 'hash/tuple': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | b25086a | 2023-01-09 18:53:29 -0800 | [diff] [blame] | 9 | 'net/addr/ether': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 9330c87 | 2023-01-04 15:41:53 -0800 | [diff] [blame] | 10 | 'net/addr/ip': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 14dd4eb | 2023-01-12 10:51:12 -0800 | [diff] [blame] | 11 | 'net/addr/subnet': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 8c5f28c | 2022-12-07 01:21:36 -0800 | [diff] [blame] | 12 | 'numeric/endian': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | cda3c1e | 2022-12-03 16:56:19 -0800 | [diff] [blame] | 13 | 'numeric/str': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | cb9ddb6 | 2022-11-18 19:50:10 -0800 | [diff] [blame] | 14 | 'pinned': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 15 | 'raw': [stdplus_dep, gmock_dep, gtest_main_dep], | 
|  | 16 | 'signal': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 3c7107f | 2023-06-13 15:13:50 -0700 | [diff] [blame] | 17 | 'str/buf': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 6047970 | 2022-12-07 02:55:24 -0800 | [diff] [blame] | 18 | 'str/cat': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 385cd7d | 2023-06-07 13:39:53 -0700 | [diff] [blame] | 19 | 'str/cexpr': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 0e844d5 | 2022-12-06 23:57:32 -0800 | [diff] [blame] | 20 | 'str/conv': [stdplus_dep, gmock_dep, gtest_main_dep], | 
| William A. Kennington III | 521475e | 2022-12-12 16:51:44 -0800 | [diff] [blame] | 21 | 'str/maps': [stdplus_dep, gmock_dep, gtest_main_dep], | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 22 | 'util/cexec': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | db1bdbc | 2023-01-09 16:02:13 -0800 | [diff] [blame] | 23 | 'variant': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | f2ddf51 | 2022-09-20 15:36:44 -0700 | [diff] [blame] | 24 | 'zstring': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | 61a81bc | 2022-09-19 17:46:49 -0700 | [diff] [blame] | 25 | 'zstring_view': [stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 26 | } | 
| William A. Kennington III | d7acddd | 2022-07-13 16:41:11 -0700 | [diff] [blame] | 27 |  | 
| William A. Kennington III | 5a52802 | 2021-04-28 12:52:43 -0700 | [diff] [blame] | 28 | if has_dl | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 29 | gtests += { | 
|  | 30 | 'dl': [stdplus_dl_dep, gtest_main_dep], | 
|  | 31 | } | 
| William A. Kennington III | 5a52802 | 2021-04-28 12:52:43 -0700 | [diff] [blame] | 32 | elif build_tests.enabled() | 
|  | 33 | error('Not testing libdl feature') | 
|  | 34 | else | 
|  | 35 | warning('Not testing libdl feature') | 
|  | 36 | endif | 
|  | 37 |  | 
| William A. Kennington III | eac9d47 | 2020-08-03 13:57:14 -0700 | [diff] [blame] | 38 | if has_fd | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 39 | gtests += { | 
|  | 40 | 'fd/dupable': [stdplus_fd_dep], | 
|  | 41 | 'fd/managed': [stdplus_fd_dep], | 
| William A. Kennington III | aa4fcfc | 2022-08-23 16:35:10 -0700 | [diff] [blame] | 42 | 'fd/fmt': [stdplus_fd_dep, stdplus_dep, gtest_main_dep], | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 43 | 'fd/intf': [stdplus_fd_dep], | 
|  | 44 | 'fd/impl': [stdplus_fd_dep], | 
|  | 45 | 'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep], | 
|  | 46 | 'fd/mmap': [stdplus_fd_dep, gtest_main_dep], | 
|  | 47 | 'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep], | 
|  | 48 | 'fd/ops': [stdplus_fd_dep, gtest_main_dep], | 
|  | 49 | } | 
|  | 50 | if has_gtest | 
|  | 51 | gtests += { | 
| William A. Kennington III | aa4fcfc | 2022-08-23 16:35:10 -0700 | [diff] [blame] | 52 | 'fd/atomic': [stdplus_fd_dep, stdplus_gtest_dep, gtest_main_dep], | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 53 | } | 
|  | 54 | elif build_tests.enabled() | 
| William A. Kennington III | aa4fcfc | 2022-08-23 16:35:10 -0700 | [diff] [blame] | 55 | error('Not testing fd/atomic feature') | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 56 | else | 
| William A. Kennington III | aa4fcfc | 2022-08-23 16:35:10 -0700 | [diff] [blame] | 57 | warning('Not testing fd/atomic feature') | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 58 | endif | 
| William A. Kennington III | 4575424 | 2021-04-28 12:48:31 -0700 | [diff] [blame] | 59 | elif build_tests.enabled() | 
|  | 60 | error('Not testing file descriptor feature') | 
| William A. Kennington III | eac9d47 | 2020-08-03 13:57:14 -0700 | [diff] [blame] | 61 | else | 
|  | 62 | warning('Not testing file descriptor feature') | 
|  | 63 | endif | 
|  | 64 |  | 
| William A. Kennington III | 5c20da2 | 2021-06-18 16:44:55 -0700 | [diff] [blame] | 65 | if has_io_uring | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 66 | gtests += { | 
|  | 67 | 'io_uring': [stdplus_io_uring_dep, stdplus_dep, gmock_dep, gtest_main_dep], | 
|  | 68 | } | 
| William A. Kennington III | 5c20da2 | 2021-06-18 16:44:55 -0700 | [diff] [blame] | 69 | elif build_tests.enabled() | 
|  | 70 | error('Not testing io_uring feature') | 
|  | 71 | else | 
|  | 72 | warning('Not testing io_uring feature') | 
|  | 73 | endif | 
|  | 74 |  | 
| William A. Kennington III | 953de36 | 2022-07-13 17:32:55 -0700 | [diff] [blame] | 75 | if has_gtest | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 76 | gtests += { | 
|  | 77 | 'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep], | 
|  | 78 | } | 
| William A. Kennington III | 953de36 | 2022-07-13 17:32:55 -0700 | [diff] [blame] | 79 | elif build_tests.enabled() | 
|  | 80 | error('Not testing gtest lib feature') | 
|  | 81 | else | 
|  | 82 | warning('Not testing gtest lib feature') | 
|  | 83 | endif | 
|  | 84 |  | 
| William A. Kennington III | b467460 | 2022-08-24 14:54:37 -0700 | [diff] [blame] | 85 | add_test_setup( | 
|  | 86 | 'stdplus', | 
|  | 87 | exe_wrapper: run_with_tmp, | 
|  | 88 | env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'}, | 
|  | 89 | is_default: true) | 
|  | 90 |  | 
|  | 91 | add_test_setup( | 
|  | 92 | 'valgrind', | 
|  | 93 | exe_wrapper: [run_with_tmp, 'valgrind'], | 
|  | 94 | env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'}) | 
|  | 95 |  | 
| William A. Kennington III | 953de36 | 2022-07-13 17:32:55 -0700 | [diff] [blame] | 96 | if gtest_dep.found() and gmock_dep.found() | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 97 | foreach t, deps : gtests | 
| William A. Kennington III | 953de36 | 2022-07-13 17:32:55 -0700 | [diff] [blame] | 98 | test( | 
|  | 99 | t, | 
| William A. Kennington III | b467460 | 2022-08-24 14:54:37 -0700 | [diff] [blame] | 100 | executable( | 
| William A. Kennington III | 953de36 | 2022-07-13 17:32:55 -0700 | [diff] [blame] | 101 | t.underscorify(), t + '.cpp', | 
|  | 102 | build_by_default: false, | 
|  | 103 | implicit_include_directories: false, | 
| William A. Kennington III | 1cad7d7 | 2023-06-06 13:50:01 -0700 | [diff] [blame] | 104 | cpp_args: '-Wno-missing-braces', | 
| William A. Kennington III | ef2c0b7 | 2022-08-24 15:12:53 -0700 | [diff] [blame] | 105 | dependencies: deps)) | 
| William A. Kennington III | 83af3fa | 2021-01-31 15:22:54 -0800 | [diff] [blame] | 106 | endforeach | 
|  | 107 | endif |