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