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