15 #ifndef INCG_IRIS_IUTEST_OPTION_MESSAGE_HPP_00EB9B17_0615_4678_9AD0_1F5B295B404F_
16 #define INCG_IRIS_IUTEST_OPTION_MESSAGE_HPP_00EB9B17_0615_4678_9AD0_1F5B295B404F_
36 static void ShowHelp();
40 static void ShowVersion();
44 static void ShowFeature();
48 static void ShowSpec();
51 inline void iuOptionMessage::ShowHelp()
53 detail::iuConsole::color_output(detail::iuConsole::cyan,
54 "--------------------------------------------------\n"
56 " iutest - iris unit test framework\n"
57 "--------------------------------------------------\n"
58 "Command Line Options\n"
60 " --help, -h : Generate help message.\n"
61 " --iutest_list_tests : List up tests.\n"
62 " --iutest_list_tests_with_where : List up tests with where.\n"
63 " --iutest_color=<yes|no|auto|ansi>: Console color enable.\n"
64 " --iutest_flagfile=<file> : Set the flag from the file.\n"
65 " --iutest_filter=<filter> : Select the test run.\n"
66 " --iutest_shuffle : Do shuffle test.\n"
67 " --iutest_random_seed=<seed> : Set random seed.\n"
68 " --iutest_also_run_disabled_tests : Run disabled tests.\n"
69 " --iutest_break_on_failure[=0|1] : When that failed to break.\n"
70 " --iutest_throw_on_failure[=0|1] : When that failed to throw.\n"
71 " --iutest_catch_exceptions=<0|1> : Catch exceptions enable.\n"
72 " --iutest_print_time=<0|1> : Setting the display of elapsed time.\n"
73 " --iutest_default_package_name=<name>\n"
74 " : Set default root package name.\n"
75 " --iutest_output=<xml|junit>[:path]\n"
76 " : Path of xml report.\n"
77 " --iutest_repeat=<count>\n"
78 " : Set the number of repetitions of the test.\n"
79 " use a negative count to repeat forever.\n"
81 " --iutest_stream_result_to=<host:port>\n"
82 " : Set stream test results server.\n"
84 " --iutest_file_location=<auto|vs|gcc>\n"
85 " : Format file location messages.\n"
86 " --verbose : Verbose option.\n"
87 " --feature : Show iutest feature.\n"
88 " --version, -v : Show iutest version.\n"
90 "--------------------------------------------------\n"
93 " Copyright (c) 2011-2018, Takazumi-Shirayanagi\n"
95 " This software is released under the new BSD License, see LICENSE\n"
100 inline void iuOptionMessage::ShowVersion()
102 detail::iuConsole::output(
"iutest version %x.%x.%x.%x\n"
107 #define IIUT_SHOW_MACRO(macro) IIUT_SHOW_MACRO_I(#macro, IUTEST_PP_TOSTRING(macro))
108 #define IIUT_SHOW_MACRO_I(name, value) detail::iuConsole::output("#define %s %s\n", name, value)
109 #define IIUT_SHOW_ENABLE_MACRO(macro) IUTEST_PP_IF(macro, IIUT_SHOW_MACRO_I(#macro, IUTEST_PP_TOSTRING(macro)), (void)(0))
110 #define IIUT_SHOW_DISABLE_MACRO(macro) IUTEST_PP_IF(macro, (void)(0), IIUT_SHOW_MACRO_I(#macro, IUTEST_PP_TOSTRING(macro)))
113 #define IIUT_SHOW_FEATURE_MACROS(m) \
114 m (IUTEST_HAS_ANY_PARAM_TEST); \
115 m (IUTEST_HAS_ASSERTION_NOEQUALTO_OBJECT); \
116 m (IUTEST_HAS_ASSERTION_RETURN); \
117 m (IUTEST_HAS_AUTOFIXTURE_PARAM_TEST); \
118 m (IUTEST_HAS_COMBINE); \
119 m (IUTEST_HAS_CONCAT); \
120 m (IUTEST_HAS_CSVPARAMS); \
121 m (IUTEST_HAS_EXCEPTIONS); \
122 m (IUTEST_HAS_GENRAND); \
123 m (IUTEST_HAS_IGNORE_TEST); \
124 m (IUTEST_HAS_LIB); \
125 m (IUTEST_HAS_MATCHERS); \
126 m (IUTEST_HAS_MATCHER_ALLOF_AND_ANYOF); \
127 m (IUTEST_HAS_MATCHER_EACH); \
128 m (IUTEST_HAS_MATCHER_ELEMENTSARE); \
129 m (IUTEST_HAS_MATCHER_FLOATINGPOINT_NEAR); \
130 m (IUTEST_HAS_MATCHER_OPTIONAL); \
131 m (IUTEST_HAS_MATCHER_POINTWISE); \
132 m (IUTEST_HAS_MATCHER_REGEX); \
133 m (IUTEST_HAS_MATCHER_VARIADIC); \
134 m (IUTEST_HAS_MINIDUMP); \
135 m (IUTEST_HAS_PACKAGE); \
136 m (IUTEST_HAS_PAIRWISE); \
137 m (IUTEST_HAS_PARAM_METHOD_TEST); \
138 m (IUTEST_HAS_PARAM_TEST); \
139 m (IUTEST_HAS_PARAM_TEST_PARAM_NAME_GENERATOR); \
140 m (IUTEST_HAS_PEEP); \
141 m (IUTEST_HAS_PEEP_CLASS); \
142 m (IUTEST_HAS_PEEP_FUNC); \
143 m (IUTEST_HAS_PEEP_STATIC_FUNC); \
144 m (IUTEST_HAS_PRINT_TO); \
145 m (IUTEST_HAS_RANDOMVALUES); \
146 m (IUTEST_HAS_REGEX); \
147 m (IUTEST_HAS_REPORT_SKIPPED); \
148 m (IUTEST_HAS_SOCKET); \
149 m (IUTEST_HAS_SPI_LAMBDA_SUPPORT); \
150 m (IUTEST_HAS_STATIC_ASSERT); \
151 m (IUTEST_HAS_STATIC_ASSERT_TYPEEQ); \
152 m (IUTEST_HAS_STREAM_BUFFER); \
153 m (IUTEST_HAS_STREAM_CAPTURE); \
154 m (IUTEST_HAS_STREAM_RESULT); \
155 m (IUTEST_HAS_TESTFIXTURE_ALIAS_BY_TUPLE); \
156 m (IUTEST_HAS_TESTNAME_ALIAS); \
157 m (IUTEST_HAS_TESTNAME_ALIAS_JP); \
158 m (IUTEST_HAS_TYPED_TEST); \
159 m (IUTEST_HAS_TYPED_TEST_APPEND_TYPENAME); \
160 m (IUTEST_HAS_TYPED_TEST_P); \
161 m (IUTEST_HAS_VALUESGEN); \
162 m (IUTEST_HAS_VARIADIC_COMBINE); \
163 m (IUTEST_HAS_VARIADIC_PAIRWISE); \
164 m (IUTEST_HAS_VARIADIC_VALUES)
166 inline void iuOptionMessage::ShowFeature()
169 IIUT_SHOW_FEATURE_MACROS(IIUT_SHOW_MACRO);
171 IIUT_SHOW_FEATURE_MACROS(IIUT_SHOW_ENABLE_MACRO);
172 IIUT_SHOW_FEATURE_MACROS(IIUT_SHOW_DISABLE_MACRO);
176 inline void iuOptionMessage::ShowSpec()
178 IIUT_SHOW_MACRO(IUTEST_PLATFORM);
181 IIUT_SHOW_MACRO(IUTEST_CPLUSPLUS);
182 IIUT_SHOW_MACRO(IUTEST_FORCE_COLORCONSOLE);
212 IIUT_SHOW_MACRO(IUTEST_HAS_CXX_HDR_TYPE_TARITS);
214 IIUT_SHOW_MACRO(IUTEST_HAS_CXX_HDR_VERSION);
217 IIUT_SHOW_MACRO(IUTEST_HAS_CXX1Z);
219 IIUT_SHOW_MACRO(IUTEST_HAS_CXX2A);
220 IIUT_SHOW_MACRO(IUTEST_HAS_CXX20);
221 IIUT_SHOW_MACRO(IUTEST_HAS_CXX2B);
225 IIUT_SHOW_MACRO(IUTEST_HAS_EXCEPTIONS);
246 IIUT_SHOW_MACRO(IUTEST_HAS_MOVE_ASSIGNMENT_DEFAULT_FUNCTION);
264 IIUT_SHOW_MACRO(IUTEST_HAS_VARIADIC_TEMPLATES);
266 IIUT_SHOW_MACRO(IUTEST_HAS_VARIADIC_TUPLES);
269 IIUT_SHOW_MACRO(IUTEST_UNICODE);
273 IIUT_SHOW_MACRO(IUTEST_WCHAR_UNSIGNED);
275 #ifdef IUTEST_LIBSTDCXX_VERSION
276 IIUT_SHOW_MACRO(IUTEST_LIBSTDCXX_VERSION);
280 IIUT_SHOW_MACRO(_MSC_FULL_VER);
283 IIUT_SHOW_MACRO(_MSVC_LANG);
286 IIUT_SHOW_MACRO(__GLIBCXX__);
289 IIUT_SHOW_MACRO(__GLIBCPP__);
291 #ifdef _GLIBCXX_USE_CXX11_ABI
292 IIUT_SHOW_MACRO(_GLIBCXX_USE_CXX11_ABI);
294 #ifdef _LIBCPP_VERSION
295 IIUT_SHOW_MACRO(_LIBCPP_VERSION);
297 #ifdef __POSIX_VISIBLE
298 IIUT_SHOW_MACRO(__POSIX_VISIBLE);
300 #ifdef __USE_MINGW_ANSI_STDIO
301 IIUT_SHOW_MACRO(__USE_MINGW_ANSI_STDIO);
303 #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
304 IIUT_SHOW_MACRO(__MAC_OS_X_VERSION_MIN_REQUIRED);
307 #undef IIUT_SHOW_MACRO
#define IUTEST_HAS_CHAR32_T_PRINTABLE
char32_t printable
Definition: iutest_config.hpp:608
#define IUTEST_HAS_CHAR16_T_PRINTABLE
char16_t printable
Definition: iutest_config.hpp:597
#define IUTEST_HAS_STREAM_RESULT
stream result が使用可能かどうか
Definition: iutest_config.hpp:729
#define IUTEST_USE_OWN_LIST
テストの所持を独自リストクラスで行う
Definition: iutest_config.hpp:697
#define IUTEST_CHECK_STRICT
テストのチェック機能の有無
Definition: iutest_config.hpp:628
#define IUTEST_USE_OWN_STRING_VIEW
独自 string_view クラスを使う
Definition: iutest_config.hpp:705
#define IUTEST_HAS_CATCH_SEH_EXCEPTION_ASSERTION
例外アサーションで SEH をキャッチ可能かどうか
Definition: iutest_config.hpp:355
#define IUTEST_HAS_LAMBDA_STATEMENTS
lambda を使った statements 展開が可能かどうか
Definition: iutest_config.hpp:341
#define IUTEST_USE_THROW_ON_ASSERTION_FAILURE
失敗時に例外を throw します。
Definition: iutest_config.hpp:324
#define IUTEST_HAS_CTIME
time 関数が使用可能かどうか
Definition: iutest_config.hpp:553
#define IUTEST_HAS_GETTIMEOFDAY
gettimeofday 関数が使用可能かどうか
Definition: iutest_config.hpp:565
#define IUTEST_HAS_CLOCK
clock 関数が使用可能かどうか
Definition: iutest_config.hpp:576
#define IUTEST_HAS_WANT_SECURE_LIB
partial template specialization
Definition: iutest_compiler.hpp:1198
#define IUTEST_LONG_DOUBLE_AS_IS_DOUBLE
long double as is double
Definition: iutest_compiler.hpp:1036
#define IUTEST_HAS_OVERRIDE_AND_FINAL
has override and final
Definition: iutest_compiler.hpp:739
#define IUTEST_HAS_ATTRIBUTE_DEPRECATED
has deprecated attribute
Definition: iutest_compiler.hpp:1379
#define IUTEST_HAS_CXX17
is c++17 compiler
Definition: iutest_compiler.hpp:138
#define IUTEST_HAS_LAMBDA
has lambda
Definition: iutest_compiler.hpp:670
#define IUTEST_HAS_STRONG_ENUMS
has enum class
Definition: iutest_compiler.hpp:873
#define IUTEST_HAS_CXX14
is c++14 compiler
Definition: iutest_compiler.hpp:159
#define IUTEST_HAS_CONSTEXPR_IF
constexpr if
Definition: iutest_compiler.hpp:218
#define IUTEST_HAS_DELETED_FUNCTIONS
has delete function
Definition: iutest_compiler.hpp:438
#define IUTEST_HAS_CXX11
is c++11 compiler
Definition: iutest_compiler.hpp:170
#define IUTEST_HAS_IF_EXISTS
has __if_exists
Definition: iutest_compiler.hpp:1230
#define IUTEST_HAS_ATTRIBUTE
has c++11 attribute [[]]
Definition: iutest_compiler.hpp:1314
#define IUTEST_HAS_RVALUE_REFS
has rvalue reference
Definition: iutest_compiler.hpp:413
#define IUTEST_HAS_DEFAULT_FUNCTIONS
has default function
Definition: iutest_compiler.hpp:484
#define IUTEST_HAS_LONG_DOUBLE
has long double
Definition: iutest_compiler.hpp:1049
#define IUTEST_HAS_EXTERN_TEMPLATE
has extern template
Definition: iutest_compiler.hpp:848
#define IUTEST_HAS_FLOAT128
hsa 128bit float type
Definition: iutest_compiler.hpp:1016
#define IUTEST_HAS_CHAR16_T
has char16_t
Definition: iutest_compiler.hpp:610
#define IUTEST_HAS_INITIALIZER_LIST
has initializer_list
Definition: iutest_compiler.hpp:523
#define IUTEST_HAS_CONSTEXPR
has constexpr
Definition: iutest_compiler.hpp:365
#define IUTEST_HAS_VARIADIC_TEMPLATE_TEMPLATES
has variadic template
Definition: iutest_compiler.hpp:583
#define IUTEST_HAS_ATTRIBUTE_LIKELY_UNLIKELY
has likely/unlikely attribute
Definition: iutest_compiler.hpp:1332
#define IUTEST_HAS_AUTO
auto
Definition: iutest_compiler.hpp:283
#define IUTEST_HAS_CHAR32_T
has char32_t
Definition: iutest_compiler.hpp:637
#define IUTEST_HAS_INLINE_VARIABLE
inline variable
Definition: iutest_compiler.hpp:203
#define IUTEST_HAS_NOEXCEPT
has noexcept
Definition: iutest_compiler.hpp:783
#define IUTEST_HAS_DECLTYPE
has decltype
Definition: iutest_compiler.hpp:310
#define IUTEST_HAS_CONCEPTS
has concepts
Definition: iutest_compiler.hpp:186
#define IUTEST_HAS_SEH
has exceptions
Definition: iutest_compiler.hpp:919
#define IUTEST_HAS_NULLPTR
has nullptr
Definition: iutest_compiler.hpp:250
#define IUTEST_HAS_EXPLICIT_CONVERSION
explicit conversion operator
Definition: iutest_compiler.hpp:705
#define IUTEST_HAS_RTTI
has RTTI
Definition: iutest_compiler.hpp:964
#define IUTEST_HAS_ANALYSIS_ASSUME
has __analysis_assume
Definition: iutest_compiler.hpp:1247
#define IUTEST_HAS_COUNTER_MACRO
has COUNTER
Definition: iutest_compiler.hpp:1105
#define IUTEST_HAS_INT128
has 128bit type
Definition: iutest_compiler.hpp:997
#define IUTEST_HAS_COLORCONSOLE
色つきターミナルが使用可能かどうか
Definition: iutest_console.hpp:38
#define IUTEST_HAS_STD_STR_TO_VALUE
::std::sto* が使用可能かどうか
Definition: iutest_stdlib_defs.hpp:579
#define IUTEST_HAS_CXX_HDR_FILESYSTEM
has filesystem
Definition: iutest_stdlib_defs.hpp:445
#define IUTEST_HAS_STD_FILESYSTEM
has filesystem
Definition: iutest_stdlib_defs.hpp:510
#define IUTEST_HAS_CXX_HDR_OPTIONAL
has optional header
Definition: iutest_stdlib_defs.hpp:449
#define IUTEST_HAS_CXX_HDR_VARIANT
has variant header
Definition: iutest_stdlib_defs.hpp:465
#define IUTEST_HAS_STD_TO_CHARS
has to_chars
Definition: iutest_stdlib_defs.hpp:522
#define IUTEST_HAS_STD_EMPLACE
has emplace
Definition: iutest_stdlib_defs.hpp:506
#define IUTEST_HAS_CXX_HDR_STRING_VIEW
has string_view header
Definition: iutest_stdlib_defs.hpp:461
#define IUTEST_HAS_CXX_HDR_REGEX
has regex header
Definition: iutest_stdlib_defs.hpp:457
#define IUTEST_HAS_FD_DUP
has fd dup/dup2
Definition: iutest_stdlib_defs.hpp:694
#define IUTEST_HAS_FILENO
has fileno
Definition: iutest_stdlib_defs.hpp:678
#define IUTEST_HAS_FOPEN
has fopen
Definition: iutest_stdlib_defs.hpp:656
#define IUTEST_HAS_IOMANIP
iomanip が使用可能かどうか
Definition: iutest_stdlib_defs.hpp:622
#define IUTEST_HAS_CXX_HDR_RANDOM
has random header
Definition: iutest_stdlib_defs.hpp:453
#define IUTEST_HAS_CXX_HDR_ANY
has any header
Definition: iutest_stdlib_defs.hpp:413
#define IUTEST_HAS_TUPLE
has tuple
Definition: iutest_stdlib_defs.hpp:550
#define IUTEST_HAS_CXX_HDR_CHARCONV
has charconv header
Definition: iutest_stdlib_defs.hpp:421
#define IUTEST_HAS_STD_DECLVAL
has ::std::declval
Definition: iutest_stdlib_defs.hpp:502
#define IUTEST_HAS_HDR_CXXABI
has cxxabi header
Definition: iutest_stdlib_defs.hpp:469
#define IUTEST_HAS_CXX_HDR_CUCHAR
has cuchar
Definition: iutest_stdlib_defs.hpp:441
#define IUTEST_HAS_CXX_HDR_CSTDINT
has cstdint header
Definition: iutest_stdlib_defs.hpp:437
#define IUTEST_HAS_LARGEFILE_API
has largefile api
Definition: iutest_stdlib_defs.hpp:649
#define IUTEST_HAS_MKSTEMP
has mkstemp
Definition: iutest_stdlib_defs.hpp:742
#define IUTEST_HAS_CXX_HDR_CODECVT
has codecvt header
Definition: iutest_stdlib_defs.hpp:433
#define IUTEST_HAS_HDR_SYSTIME
has sys/time.h header
Definition: iutest_stdlib_defs.hpp:590
#define IUTEST_HAS_STRINGSTREAM
::std::stringstream が使用可能かどうか
Definition: iutest_stdlib_defs.hpp:601
#define IUTEST_HAS_CXX_HDR_CHRONO
has chrono header
Definition: iutest_stdlib_defs.hpp:425
#define IUTEST_HAS_FILE_STAT
has file stat
Definition: iutest_stdlib_defs.hpp:663
#define IUTEST_HAS_STRSTREAM
::std::strstream が使用可能かどうか
Definition: iutest_stdlib_defs.hpp:616
#define IUTEST_HAS_STD_QUICK_EXIT
has quick_exit
Definition: iutest_stdlib_defs.hpp:518
#define IUTEST_HAS_CXX_HDR_ARRAY
has array header
Definition: iutest_stdlib_defs.hpp:417
#define IUTEST_HAS_STD_BEGIN_END
has ::std::begin,::std::end
Definition: iutest_stdlib_defs.hpp:498
#define IUTEST_MAJORVER
Major Version
Definition: iutest_ver.hpp:22
#define IUTEST_REVISION
Revision
Definition: iutest_ver.hpp:25
#define IUTEST_BUILD
Definition: iutest_ver.hpp:27
#define IUTEST_MINORVER
Minor Version
Definition: iutest_ver.hpp:23
iutest root namespace
Definition: iutest_charcode.hpp:33