iutest  1.17.99.14
iutest.hpp
[詳解]
1 //======================================================================
2 //-----------------------------------------------------------------------
15 //-----------------------------------------------------------------------
16 //======================================================================
17 #ifndef INCG_IRIS_IUTEST_HPP_
18 #define INCG_IRIS_IUTEST_HPP_
19 
20 //======================================================================
21 // include
22 // IWYU pragma: begin_exports
23 #include "iutest_ver.hpp"
25 
26 IUTEST_PRAGMA_IUTEST_WARN_DISABLE_BEGIN()
27 
28 #include "iutest_legacy.hpp"
29 #include "iutest_core.hpp"
30 #include "iutest_param_tests.hpp"
31 #include "iutest_typed_tests.hpp"
32 #include "iutest_prod.hpp"
34 #include "iutest_matcher.hpp"
36 #include "iutest_ignore.hpp"
41 
42 #if defined(__AFX_H__)
43 #include "internal/iutest_mfc.hpp"
44 #endif
45 // IWYU pragma: end_exports
46 
47 //======================================================================
48 // define
61 #define IUTEST_TEST(testsuite_, testname_) IUTEST_TEST_STRICT_(testsuite_, testname_ \
62  , ::iutest::Test, ::iutest::internal::GetTestTypeId())
63 
71 #define IUTEST(testsuite_, testname_) IUTEST_TEST(testsuite_, testname_)
72 
80 #define IUTEST_F(testfixture_, testname_) IUTEST_TEST_F_(testfixture_, testname_)
81 
82 #if IUTEST_HAS_PARAM_METHOD_TEST
91 #define IUTEST_PMZ(testsuite_, testname_, method_, ...) IIUT_TEST_PMZ_(testsuite_, testname_ \
92  , method_, ::iutest::Test \
93  , ::iutest::internal::GetTestTypeId(), __VA_ARGS__)
94 
103 #define IUTEST_PMZ_F(testfixture_, testname_, method_, ...) IIUT_TEST_PMZ_(testfixture_, testname_ \
104  , method_, testfixture_ \
105  , ::iutest::internal::GetTypeId< testfixture_ >(), __VA_ARGS__)
106 
107 #endif
108 
109 #if IUTEST_HAS_TESTNAME_ALIAS
110 
116 #define IUTEST_ALIAS_TESTNAME(testname_) IUTEST_ALIAS_TESTNAME_(testname_)
117 
124 #define IUTEST_ALIAS_TESTNAME_F(testsuitename_, testfixture_) IUTEST_ALIAS_TESTNAME_F_(testsuitename_, testfixture_)
125 
126 #if IUTEST_HAS_TESTNAME_ALIAS_JP
127 
133 #define IUTEST_JAPANESE_NAME(testname_) IUTEST_ALIAS_TESTNAME(testname_)
134 
141 #define IUTEST_JAPANESE_NAME_F(testsuitename_, testfixture_) IUTEST_ALIAS_TESTNAME_F(testsuitename_, testfixture_)
142 
143 #endif
144 
145 #endif
146 
153 #define IUTEST_INIT(argc_, argv_) ::iutest::InitIrisUnitTest(argc_, argv_)
154 
159 #define IUTEST_RUN_ALL_TESTS() ::iutest::UnitTestSource::GetInstance().Run()
160 
161 
172 #ifndef IUTEST_FLAG_GET
173 # define IUTEST_FLAG_GET(name) ::iutest::IUTEST_FLAG(name)
174 #endif
175 
182 #ifndef IUTEST_FLAG_SET
183 # define IUTEST_FLAG_SET(name, value) (void)(::iutest::IUTEST_FLAG(name) = value)
184 #endif
185 
191 #ifndef IUTEST_SCOPED_TRAC
192 # define IUTEST_SCOPED_TRACE(msg) IIUT_SCOPED_MESSAGE(msg)
193 #endif
194 
200 #ifndef IUTEST_SUCCEED
201 # define IUTEST_SUCCEED() IIUT_SUCCEED()
202 #endif
203 
209 #ifndef IUTEST_FAIL
210 # define IUTEST_FAIL() IIUT_FAIL()
211 #endif
212 
218 #ifndef IUTEST_ADD_FAILURE
219 # define IUTEST_ADD_FAILURE() IIUT_ADD_FAILURE()
220 #endif
221 
229 #ifndef IUTEST_ADD_FAILURE_AT
230 # define IUTEST_ADD_FAILURE_AT(file, line) IIUT_ADD_FAILURE_AT(file, line)
231 #endif
232 
238 #ifndef IUTEST_SKIP
239 # define IUTEST_SKIP() IUTEST_TEST_SKIP()
240 #endif
241 
266 #ifndef IUTEST_ASSERT
267 # ifndef IUTEST_NO_VARIADIC_MACROS
268 # define IUTEST_ASSERT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_ASSERT_FAILURE)
269 # else
270 # define IUTEST_ASSERT(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_ASSERT_FAILURE)
271 # endif
272 #endif
278 #ifndef IUTEST_ASSERT_NOT
279 # ifndef IUTEST_NO_VARIADIC_MACROS
280 # define IUTEST_ASSERT_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_ASSERT_FAILURE)
281 # else
282 # define IUTEST_ASSERT_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_ASSERT_FAILURE)
283 # endif
284 #endif
285 
286 #if IUTEST_HAS_MATCHERS
293 #ifndef IUTEST_ASSERT_THAT
294 # define IUTEST_ASSERT_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_ASSERT_FAILURE)
295 #endif
296 
297 #endif
298 
306 #ifndef IUTEST_ASSERT_EQ
307 # define IUTEST_ASSERT_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
308 #endif
317 #ifndef IUTEST_ASSERT_ALMOST_EQ
318 # define IUTEST_ASSERT_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
319 #endif
325 #ifndef IUTEST_ASSERT_NE
326 # define IUTEST_ASSERT_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_ASSERT_FAILURE)
327 #endif
333 #ifndef IUTEST_ASSERT_LE
334 # define IUTEST_ASSERT_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_ASSERT_FAILURE)
335 #endif
341 #ifndef IUTEST_ASSERT_LT
342 # define IUTEST_ASSERT_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_ASSERT_FAILURE)
343 #endif
349 #ifndef IUTEST_ASSERT_GE
350 # define IUTEST_ASSERT_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_ASSERT_FAILURE)
351 #endif
357 #ifndef IUTEST_ASSERT_GT
358 # define IUTEST_ASSERT_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_ASSERT_FAILURE)
359 #endif
360 
366 #ifndef IUTEST_ASSERT_TRUE
367 # ifndef IUTEST_NO_VARIADIC_MACROS
368 # define IUTEST_ASSERT_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSERT_FAILURE)
369 # else
370 # define IUTEST_ASSERT_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_ASSERT_FAILURE)
371 # endif
372 #endif
378 #ifndef IUTEST_ASSERT_FALSE
379 # ifndef IUTEST_NO_VARIADIC_MACROS
380 # define IUTEST_ASSERT_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSERT_FAILURE)
381 # else
382 # define IUTEST_ASSERT_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_ASSERT_FAILURE)
383 # endif
384 #endif
385 
391 #ifndef IUTEST_ASSERT_NULL
392 # ifndef IUTEST_NO_VARIADIC_MACROS
393 # define IUTEST_ASSERT_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
394 # else
395 # define IUTEST_ASSERT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSERT_FAILURE)
396 # endif
397 #endif
403 #ifndef IUTEST_ASSERT_NOTNULL
404 # ifndef IUTEST_NO_VARIADIC_MACROS
405 # define IUTEST_ASSERT_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
406 # else
407 # define IUTEST_ASSERT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSERT_FAILURE)
408 # endif
409 #endif
410 
416 #ifndef IUTEST_ASSERT_SAME
417 # define IUTEST_ASSERT_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_ASSERT_FAILURE)
418 #endif
419 
426 #ifndef IUTEST_ASSERT_FLOAT_EQ
427 # define IUTEST_ASSERT_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
428 #endif
435 #ifndef IUTEST_ASSERT_DOUBLE_EQ
436 # define IUTEST_ASSERT_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
437 #endif
438 
439 #if IUTEST_HAS_LONG_DOUBLE
446 #ifndef IUTEST_ASSERT_LONG_DOUBLE_EQ
447 # define IUTEST_ASSERT_LONG_DOUBLE_EQ(expected, actual) \
448  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
449 #endif
450 #endif
451 
458 #ifndef IUTEST_ASSERT_COMPLEX_EQ
459 # define IUTEST_ASSERT_COMPLEX_EQ(expected, actual) \
460  IUTEST_TEST_COMPLEX_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
461 #endif
462 
470 #ifndef IUTEST_ASSERT_NEAR
471 # define IUTEST_ASSERT_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_ASSERT_FAILURE)
472 #endif
473 
480 #ifndef IUTEST_ASSERT_STREQ
481 # define IUTEST_ASSERT_STREQ(expected_str, actual_str) \
482  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_ASSERT_FAILURE)
483 #endif
489 #ifndef IUTEST_ASSERT_STRNE
490 # define IUTEST_ASSERT_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_ASSERT_FAILURE)
491 #endif
492 
499 #ifndef IUTEST_ASSERT_STRCASEEQ
500 # define IUTEST_ASSERT_STRCASEEQ(expected_str, actual_str) \
501  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_ASSERT_FAILURE)
502 #endif
508 #ifndef IUTEST_ASSERT_STRCASENE
509 # define IUTEST_ASSERT_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_ASSERT_FAILURE)
510 #endif
511 
512 #if defined(IUTEST_OS_WINDOWS)
513 
519 #ifndef IUTEST_ASSERT_HRESULT_SUCCEEDED
520 # ifndef IUTEST_NO_VARIADIC_MACROS
521 # define IUTEST_ASSERT_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
522 # else
523 # define IUTEST_ASSERT_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_ASSERT_FAILURE)
524 # endif
525 #endif
531 #ifndef IUTEST_ASSERT_HRESULT_FAILED
532 # ifndef IUTEST_NO_VARIADIC_MACROS
533 # define IUTEST_ASSERT_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
534 # else
535 # define IUTEST_ASSERT_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_ASSERT_FAILURE)
536 # endif
537 #endif
538 
539 #endif
540 
541 #if IUTEST_HAS_EXCEPTIONS
542 
550 #ifndef IUTEST_ASSERT_THROW
551 # define IUTEST_ASSERT_THROW(statement, expected_exception) \
552  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_ASSERT_FAILURE)
553 #endif
554 
563 #ifndef IUTEST_ASSERT_THROW_VALUE_EQ
564 # define IUTEST_ASSERT_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
565  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_ASSERT_FAILURE)
566 #endif
567 
576 #ifndef IUTEST_ASSERT_THROW_VALUE_NE
577 # define IUTEST_ASSERT_THROW_VALUE_NE(statement, expected_exception, v) \
578  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_ASSERT_FAILURE)
579 #endif
580 
589 #ifndef IUTEST_ASSERT_THROW_VALUE_STREQ
590 # define IUTEST_ASSERT_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
591  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_ASSERT_FAILURE)
592 #endif
593 
602 #ifndef IUTEST_ASSERT_THROW_VALUE_STRCASEEQ
603 # define IUTEST_ASSERT_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
604  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_ASSERT_FAILURE)
605 #endif
606 
613 #ifndef IUTEST_ASSERT_ANY_THROW
614 # define IUTEST_ASSERT_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_ASSERT_FAILURE)
615 #endif
616 
623 #ifndef IUTEST_ASSERT_NO_THROW
624 # define IUTEST_ASSERT_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_ASSERT_FAILURE)
625 #endif
626 
627 #endif
628 
635 #ifndef IUTEST_ASSERT_NO_FAILURE
636 # define IUTEST_ASSERT_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_ASSERT_FAILURE)
637 #endif
638 
645 #ifndef IUTEST_ASSERT_NO_FATAL_FAILURE
646 # define IUTEST_ASSERT_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_ASSERT_FAILURE)
647 #endif
648 
654 #ifndef IUTEST_ASSERT_FAIL
655 # define IUTEST_ASSERT_FAIL() IIUT_FAIL()
656 #endif
657 
678 #ifndef IUTEST_EXPECT
679 # ifndef IUTEST_NO_VARIADIC_MACROS
680 # define IUTEST_EXPECT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_EXPECT_FAILURE)
681 # else
682 # define IUTEST_EXPECT(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_EXPECT_FAILURE)
683 # endif
684 #endif
690 #ifndef IUTEST_EXPECT_NOT
691 # ifndef IUTEST_NO_VARIADIC_MACROS
692 # define IUTEST_EXPECT_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_EXPECT_FAILURE)
693 # else
694 # define IUTEST_EXPECT_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_EXPECT_FAILURE)
695 # endif
696 #endif
697 
698 #if IUTEST_HAS_MATCHERS
705 #ifndef IUTEST_EXPECT_THAT
706 # define IUTEST_EXPECT_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_EXPECT_FAILURE)
707 #endif
708 
709 #endif
710 
717 #ifndef IUTEST_EXPECT_EQ
718 # define IUTEST_EXPECT_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
719 #endif
728 #ifndef IUTEST_EXPECT_ALMOST_EQ
729 # define IUTEST_EXPECT_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
730 #endif
736 #ifndef IUTEST_EXPECT_NE
737 # define IUTEST_EXPECT_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_EXPECT_FAILURE)
738 #endif
744 #ifndef IUTEST_EXPECT_LE
745 # define IUTEST_EXPECT_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_EXPECT_FAILURE)
746 #endif
752 #ifndef IUTEST_EXPECT_LT
753 # define IUTEST_EXPECT_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_EXPECT_FAILURE)
754 #endif
760 #ifndef IUTEST_EXPECT_GE
761 # define IUTEST_EXPECT_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_EXPECT_FAILURE)
762 #endif
768 #ifndef IUTEST_EXPECT_GT
769 # define IUTEST_EXPECT_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_EXPECT_FAILURE)
770 #endif
771 
777 #ifndef IUTEST_EXPECT_TRUE
778 # ifndef IUTEST_NO_VARIADIC_MACROS
779 # define IUTEST_EXPECT_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_EXPECT_FAILURE)
780 # else
781 # define IUTEST_EXPECT_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_EXPECT_FAILURE)
782 # endif
783 #endif
789 #ifndef IUTEST_EXPECT_FALSE
790 # ifndef IUTEST_NO_VARIADIC_MACROS
791 # define IUTEST_EXPECT_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_EXPECT_FAILURE)
792 # else
793 # define IUTEST_EXPECT_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_EXPECT_FAILURE)
794 # endif
795 #endif
796 
802 #ifndef IUTEST_EXPECT_NULL
803 # ifndef IUTEST_NO_VARIADIC_MACROS
804 # define IUTEST_EXPECT_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
805 # else
806 # define IUTEST_EXPECT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_EXPECT_FAILURE)
807 # endif
808 #endif
814 #ifndef IUTEST_EXPECT_NOTNULL
815 # ifndef IUTEST_NO_VARIADIC_MACROS
816 # define IUTEST_EXPECT_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
817 # else
818 # define IUTEST_EXPECT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_EXPECT_FAILURE)
819 # endif
820 #endif
821 
827 #ifndef IUTEST_EXPECT_SAME
828 # define IUTEST_EXPECT_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_EXPECT_FAILURE)
829 #endif
830 
837 #ifndef IUTEST_EXPECT_FLOAT_EQ
838 # define IUTEST_EXPECT_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
839 #endif
846 #ifndef IUTEST_EXPECT_DOUBLE_EQ
847 # define IUTEST_EXPECT_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
848 #endif
849 
850 #if IUTEST_HAS_LONG_DOUBLE
857 #ifndef IUTEST_EXPECT_LONG_DOUBLE_EQ
858 # define IUTEST_EXPECT_LONG_DOUBLE_EQ(expected, actual) \
859  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
860 #endif
861 #endif
862 
869 #ifndef IUTEST_EXPECT_COMPLEX_EQ
870 # define IUTEST_EXPECT_COMPLEX_EQ(expected, actual) \
871  IUTEST_TEST_COMPLEX_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
872 #endif
873 
881 #ifndef IUTEST_EXPECT_NEAR
882 # define IUTEST_EXPECT_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_EXPECT_FAILURE)
883 #endif
884 
891 #ifndef IUTEST_EXPECT_STREQ
892 # define IUTEST_EXPECT_STREQ(expected_str, actual_str) \
893  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_EXPECT_FAILURE)
894 #endif
900 #ifndef IUTEST_EXPECT_STRNE
901 # define IUTEST_EXPECT_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_EXPECT_FAILURE)
902 #endif
903 
910 #ifndef IUTEST_EXPECT_STRCASEEQ
911 # define IUTEST_EXPECT_STRCASEEQ(expected_str, actual_str) \
912  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_EXPECT_FAILURE)
913 #endif
919 #ifndef IUTEST_EXPECT_STRCASENE
920 # define IUTEST_EXPECT_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_EXPECT_FAILURE)
921 #endif
922 
923 #if defined(IUTEST_OS_WINDOWS)
924 
930 #ifndef IUTEST_EXPECT_HRESULT_SUCCEEDED
931 # ifndef IUTEST_NO_VARIADIC_MACROS
932 # define IUTEST_EXPECT_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
933 # else
934 # define IUTEST_EXPECT_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_EXPECT_FAILURE)
935 # endif
936 #endif
942 #ifndef IUTEST_EXPECT_HRESULT_FAILED
943 # ifndef IUTEST_NO_VARIADIC_MACROS
944 # define IUTEST_EXPECT_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
945 # else
946 # define IUTEST_EXPECT_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_EXPECT_FAILURE)
947 # endif
948 #endif
949 
950 #endif
951 
952 #if IUTEST_HAS_EXCEPTIONS
953 
961 #ifndef IUTEST_EXPECT_THROW
962 # define IUTEST_EXPECT_THROW(statement, expected_exception) \
963  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_EXPECT_FAILURE)
964 #endif
965 
974 #ifndef IUTEST_EXPECT_THROW_VALUE_EQ
975 # define IUTEST_EXPECT_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
976  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_EXPECT_FAILURE)
977 #endif
978 
987 #ifndef IUTEST_EXPECT_THROW_VALUE_NE
988 # define IUTEST_EXPECT_THROW_VALUE_NE(statement, expected_exception, v) \
989  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_EXPECT_FAILURE)
990 #endif
991 
1000 #ifndef IUTEST_EXPECT_THROW_VALUE_STREQ
1001 # define IUTEST_EXPECT_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
1002  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_EXPECT_FAILURE)
1003 #endif
1004 
1013 #ifndef IUTEST_EXPECT_THROW_VALUE_STRCASEEQ
1014 # define IUTEST_EXPECT_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
1015  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_EXPECT_FAILURE)
1016 #endif
1017 
1024 #ifndef IUTEST_EXPECT_ANY_THROW
1025 # define IUTEST_EXPECT_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_EXPECT_FAILURE)
1026 #endif
1027 
1034 #ifndef IUTEST_EXPECT_NO_THROW
1035 # define IUTEST_EXPECT_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_EXPECT_FAILURE)
1036 #endif
1037 
1038 #endif
1039 
1046 #ifndef IUTEST_EXPECT_NO_FAILURE
1047 # define IUTEST_EXPECT_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_EXPECT_FAILURE)
1048 #endif
1049 
1056 #ifndef IUTEST_EXPECT_NO_FATAL_FAILURE
1057 # define IUTEST_EXPECT_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_EXPECT_FAILURE)
1058 #endif
1059 
1065 #ifndef IUTEST_EXPECT_FAIL
1066 # define IUTEST_EXPECT_FAIL() IIUT_ADD_FAILURE()
1067 #endif
1068 
1074 #ifndef IUTEST_EXPECT_FAIL_AT
1075 # define IUTEST_EXPECT_FAIL_AT(file, line) IIUT_ADD_FAILURE_AT(file, line)
1076 #endif
1077 
1078 
1099 #ifndef IUTEST_INFORM
1100 # ifndef IUTEST_NO_VARIADIC_MACROS
1101 # define IUTEST_INFORM(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_INFORM_FAILURE)
1102 # else
1103 # define IUTEST_INFORM(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_INFORM_FAILURE)
1104 # endif
1105 #endif
1111 #ifndef IUTEST_INFORM_NOT
1112 # ifndef IUTEST_NO_VARIADIC_MACROS
1113 # define IUTEST_INFORM_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_INFORM_FAILURE)
1114 # else
1115 # define IUTEST_INFORM_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_INFORM_FAILURE)
1116 # endif
1117 #endif
1118 
1119 #if IUTEST_HAS_MATCHERS
1126 #ifndef IUTEST_INFORM_THAT
1127 # define IUTEST_INFORM_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_INFORM_FAILURE)
1128 #endif
1129 
1130 #endif
1131 
1138 #ifndef IUTEST_INFORM_EQ
1139 # define IUTEST_INFORM_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1140 #endif
1149 #ifndef IUTEST_INFORM_ALMOST_EQ
1150 # define IUTEST_INFORM_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1151 #endif
1157 #ifndef IUTEST_INFORM_NE
1158 # define IUTEST_INFORM_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_INFORM_FAILURE)
1159 #endif
1165 #ifndef IUTEST_INFORM_LE
1166 # define IUTEST_INFORM_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_INFORM_FAILURE)
1167 #endif
1173 #ifndef IUTEST_INFORM_LT
1174 # define IUTEST_INFORM_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_INFORM_FAILURE)
1175 #endif
1181 #ifndef IUTEST_INFORM_GE
1182 # define IUTEST_INFORM_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_INFORM_FAILURE)
1183 #endif
1189 #ifndef IUTEST_INFORM_GT
1190 # define IUTEST_INFORM_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_INFORM_FAILURE)
1191 #endif
1192 
1198 #ifndef IUTEST_INFORM_TRUE
1199 # ifndef IUTEST_NO_VARIADIC_MACROS
1200 # define IUTEST_INFORM_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_INFORM_FAILURE)
1201 # else
1202 # define IUTEST_INFORM_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_INFORM_FAILURE)
1203 # endif
1204 #endif
1210 #ifndef IUTEST_INFORM_FALSE
1211 # ifndef IUTEST_NO_VARIADIC_MACROS
1212 # define IUTEST_INFORM_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_INFORM_FAILURE)
1213 # else
1214 # define IUTEST_INFORM_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_INFORM_FAILURE)
1215 # endif
1216 #endif
1217 
1223 #ifndef IUTEST_INFORM_NULL
1224 # ifndef IUTEST_NO_VARIADIC_MACROS
1225 # define IUTEST_INFORM_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1226 # else
1227 # define IUTEST_INFORM_NULL(v) IUTEST_TEST_NULL(v, IUTEST_INFORM_FAILURE)
1228 # endif
1229 #endif
1235 #ifndef IUTEST_INFORM_NOTNULL
1236 # ifndef IUTEST_NO_VARIADIC_MACROS
1237 # define IUTEST_INFORM_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1238 # else
1239 # define IUTEST_INFORM_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_INFORM_FAILURE)
1240 # endif
1241 #endif
1242 
1248 #ifndef IUTEST_INFORM_SAME
1249 # define IUTEST_INFORM_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_INFORM_FAILURE)
1250 #endif
1251 
1258 #ifndef IUTEST_INFORM_FLOAT_EQ
1259 # define IUTEST_INFORM_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1260 #endif
1267 #ifndef IUTEST_INFORM_DOUBLE_EQ
1268 # define IUTEST_INFORM_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1269 #endif
1270 
1271 #if IUTEST_HAS_LONG_DOUBLE
1278 #ifndef IUTEST_INFORM_LONG_DOUBLE_EQ
1279 # define IUTEST_INFORM_LONG_DOUBLE_EQ(expected, actual) \
1280  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1281 #endif
1282 #endif
1289 #ifndef IUTEST_INFORM_COMPLEX_EQ
1290 # define IUTEST_INFORM_COMPLEX_EQ(expected, actual) \
1291  IUTEST_TEST_COMPLEX_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1292 #endif
1293 
1301 #ifndef IUTEST_INFORM_NEAR
1302 # define IUTEST_INFORM_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_INFORM_FAILURE)
1303 #endif
1304 
1311 #ifndef IUTEST_INFORM_STREQ
1312 # define IUTEST_INFORM_STREQ(expected_str, actual_str) \
1313  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_INFORM_FAILURE)
1314 #endif
1320 #ifndef IUTEST_INFORM_STRNE
1321 # define IUTEST_INFORM_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_INFORM_FAILURE)
1322 #endif
1323 
1330 #ifndef IUTEST_INFORM_STRCASEEQ
1331 # define IUTEST_INFORM_STRCASEEQ(expected_str, actual_str) \
1332  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_INFORM_FAILURE)
1333 #endif
1339 #ifndef IUTEST_INFORM_STRCASENE
1340 # define IUTEST_INFORM_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_INFORM_FAILURE)
1341 #endif
1342 
1343 #if defined(IUTEST_OS_WINDOWS)
1344 
1350 #ifndef IUTEST_INFORM_HRESULT_SUCCEEDED
1351 # ifndef IUTEST_NO_VARIADIC_MACROS
1352 # define IUTEST_INFORM_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1353 # else
1354 # define IUTEST_INFORM_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_INFORM_FAILURE)
1355 # endif
1356 #endif
1362 #ifndef IUTEST_INFORM_HRESULT_FAILED
1363 # ifndef IUTEST_NO_VARIADIC_MACROS
1364 # define IUTEST_INFORM_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1365 # else
1366 # define IUTEST_INFORM_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_INFORM_FAILURE)
1367 # endif
1368 #endif
1369 
1370 #endif
1371 
1372 #if IUTEST_HAS_EXCEPTIONS
1373 
1381 #ifndef IUTEST_INFORM_THROW
1382 # define IUTEST_INFORM_THROW(statement, expected_exception) \
1383  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_INFORM_FAILURE)
1384 #endif
1385 
1394 #ifndef IUTEST_INFORM_THROW_VALUE_EQ
1395 # define IUTEST_INFORM_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
1396  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_INFORM_FAILURE)
1397 #endif
1398 
1407 #ifndef IUTEST_INFORM_THROW_VALUE_NE
1408 # define IUTEST_INFORM_THROW_VALUE_NE(statement, expected_exception, v) \
1409  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_INFORM_FAILURE)
1410 #endif
1411 
1420 #ifndef IUTEST_INFORM_THROW_VALUE_STREQ
1421 # define IUTEST_INFORM_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
1422  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_INFORM_FAILURE)
1423 #endif
1424 
1433 #ifndef IUTEST_INFORM_THROW_VALUE_STRCASEEQ
1434 # define IUTEST_INFORM_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
1435  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_INFORM_FAILURE)
1436 #endif
1437 
1444 #ifndef IUTEST_INFORM_ANY_THROW
1445 # define IUTEST_INFORM_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_INFORM_FAILURE)
1446 #endif
1447 
1454 #ifndef IUTEST_INFORM_NO_THROW
1455 # define IUTEST_INFORM_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_INFORM_FAILURE)
1456 #endif
1457 
1458 #endif
1459 
1466 #ifndef IUTEST_INFORM_NO_FAILURE
1467 # define IUTEST_INFORM_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_INFORM_FAILURE)
1468 #endif
1469 
1476 #ifndef IUTEST_INFORM_NO_FATAL_FAILURE
1477 # define IUTEST_INFORM_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_INFORM_FAILURE)
1478 #endif
1479 
1500 #ifndef IUTEST_ASSUME
1501 # ifndef IUTEST_NO_VARIADIC_MACROS
1502 # define IUTEST_ASSUME(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_ASSUME_FAILURE)
1503 # else
1504 # define IUTEST_ASSUME(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_ASSUME_FAILURE)
1505 # endif
1506 #endif
1512 #ifndef IUTEST_ASSUME_NOT
1513 # ifndef IUTEST_NO_VARIADIC_MACROS
1514 # define IUTEST_ASSUME_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_ASSUME_FAILURE)
1515 # else
1516 # define IUTEST_ASSUME_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_ASSUME_FAILURE)
1517 # endif
1518 #endif
1519 
1520 #if IUTEST_HAS_MATCHERS
1521 
1528 #ifndef IUTEST_ASSUME_THAT
1529 # define IUTEST_ASSUME_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_ASSUME_FAILURE)
1530 #endif
1531 
1532 #endif
1533 
1540 #ifndef IUTEST_ASSUME_EQ
1541 # define IUTEST_ASSUME_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1542 #endif
1551 #ifndef IUTEST_ASSUME_ALMOST_EQ
1552 # define IUTEST_ASSUME_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1553 #endif
1559 #ifndef IUTEST_ASSUME_NE
1560 # define IUTEST_ASSUME_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_ASSUME_FAILURE)
1561 #endif
1567 #ifndef IUTEST_ASSUME_LE
1568 # define IUTEST_ASSUME_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_ASSUME_FAILURE)
1569 #endif
1575 #ifndef IUTEST_ASSUME_LT
1576 # define IUTEST_ASSUME_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_ASSUME_FAILURE)
1577 #endif
1583 #ifndef IUTEST_ASSUME_GE
1584 # define IUTEST_ASSUME_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_ASSUME_FAILURE)
1585 #endif
1591 #ifndef IUTEST_ASSUME_GT
1592 # define IUTEST_ASSUME_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_ASSUME_FAILURE)
1593 #endif
1594 
1600 #ifndef IUTEST_ASSUME_TRUE
1601 # ifndef IUTEST_NO_VARIADIC_MACROS
1602 # define IUTEST_ASSUME_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSUME_FAILURE)
1603 # else
1604 # define IUTEST_ASSUME_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_ASSUME_FAILURE)
1605 # endif
1606 #endif
1612 #ifndef IUTEST_ASSUME_FALSE
1613 # ifndef IUTEST_NO_VARIADIC_MACROS
1614 # define IUTEST_ASSUME_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSUME_FAILURE)
1615 # else
1616 # define IUTEST_ASSUME_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_ASSUME_FAILURE)
1617 # endif
1618 #endif
1619 
1625 #ifndef IUTEST_ASSUME_NULL
1626 # ifndef IUTEST_NO_VARIADIC_MACROS
1627 # define IUTEST_ASSUME_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1628 # else
1629 # define IUTEST_ASSUME_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSUME_FAILURE)
1630 # endif
1631 #endif
1637 #ifndef IUTEST_ASSUME_NOTNULL
1638 # ifndef IUTEST_NO_VARIADIC_MACROS
1639 # define IUTEST_ASSUME_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1640 # else
1641 # define IUTEST_ASSUME_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSUME_FAILURE)
1642 # endif
1643 #endif
1644 
1650 #ifndef IUTEST_ASSUME_SAME
1651 # define IUTEST_ASSUME_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_ASSUME_FAILURE)
1652 #endif
1653 
1660 #ifndef IUTEST_ASSUME_FLOAT_EQ
1661 # define IUTEST_ASSUME_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1662 #endif
1669 #ifndef IUTEST_ASSUME_DOUBLE_EQ
1670 # define IUTEST_ASSUME_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1671 #endif
1672 
1673 #if IUTEST_HAS_LONG_DOUBLE
1680 #ifndef IUTEST_ASSUME_LONG_DOUBLE_EQ
1681 # define IUTEST_ASSUME_LONG_DOUBLE_EQ(expected, actual) \
1682  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1683 #endif
1684 #endif
1685 
1692 #ifndef IUTEST_ASSUME_COMPLEX_EQ
1693 # define IUTEST_ASSUME_COMPLEX_EQ(expected, actual) \
1694  IUTEST_TEST_COMPLEX_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1695 #endif
1696 
1704 #ifndef IUTEST_ASSUME_NEAR
1705 # define IUTEST_ASSUME_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_ASSUME_FAILURE)
1706 #endif
1707 
1714 #ifndef IUTEST_ASSUME_STREQ
1715 # define IUTEST_ASSUME_STREQ(expected_str, actual_str) \
1716  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_ASSUME_FAILURE)
1717 #endif
1723 #ifndef IUTEST_ASSUME_STRNE
1724 # define IUTEST_ASSUME_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_ASSUME_FAILURE)
1725 #endif
1726 
1733 #ifndef IUTEST_ASSUME_STRCASEEQ
1734 # define IUTEST_ASSUME_STRCASEEQ(expected_str, actual_str) \
1735  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_ASSUME_FAILURE)
1736 #endif
1742 #ifndef IUTEST_ASSUME_STRCASENE
1743 # define IUTEST_ASSUME_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_ASSUME_FAILURE)
1744 #endif
1745 
1746 #if defined(IUTEST_OS_WINDOWS)
1747 
1753 #ifndef IUTEST_ASSUME_HRESULT_SUCCEEDED
1754 # ifndef IUTEST_NO_VARIADIC_MACROS
1755 # define IUTEST_ASSUME_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1756 # else
1757 # define IUTEST_ASSUME_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_ASSUME_FAILURE)
1758 # endif
1759 #endif
1765 #ifndef IUTEST_ASSUME_HRESULT_FAILED
1766 # ifndef IUTEST_NO_VARIADIC_MACROS
1767 # define IUTEST_ASSUME_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1768 # else
1769 # define IUTEST_ASSUME_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_ASSUME_FAILURE)
1770 # endif
1771 #endif
1772 
1773 #endif
1774 
1775 #if IUTEST_HAS_EXCEPTIONS
1776 
1784 #ifndef IUTEST_ASSUME_THROW
1785 # define IUTEST_ASSUME_THROW(statement, expected_exception) \
1786  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_ASSUME_FAILURE)
1787 #endif
1788 
1797 #ifndef IUTEST_ASSUME_THROW_VALUE_EQ
1798 # define IUTEST_ASSUME_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
1799  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_ASSUME_FAILURE)
1800 #endif
1801 
1810 #ifndef IUTEST_ASSUME_THROW_VALUE_NE
1811 # define IUTEST_ASSUME_THROW_VALUE_NE(statement, expected_exception, v) \
1812  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_ASSUME_FAILURE)
1813 #endif
1814 
1823 #ifndef IUTEST_ASSUME_THROW_VALUE_STREQ
1824 # define IUTEST_ASSUME_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
1825  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_ASSUME_FAILURE)
1826 #endif
1827 
1836 #ifndef IUTEST_ASSUME_THROW_VALUE_STRCASEEQ
1837 # define IUTEST_ASSUME_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
1838  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_ASSUME_FAILURE)
1839 #endif
1840 
1847 #ifndef IUTEST_ASSUME_ANY_THROW
1848 # define IUTEST_ASSUME_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_ASSUME_FAILURE)
1849 #endif
1850 
1857 #ifndef IUTEST_ASSUME_NO_THROW
1858 # define IUTEST_ASSUME_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_ASSUME_FAILURE)
1859 #endif
1860 
1861 #endif
1862 
1869 #ifndef IUTEST_ASSUME_NO_FAILURE
1870 # define IUTEST_ASSUME_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_ASSUME_FAILURE)
1871 #endif
1872 
1879 #ifndef IUTEST_ASSUME_NO_FATAL_FAILURE
1880 # define IUTEST_ASSUME_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_ASSUME_FAILURE)
1881 #endif
1882 
1886 namespace iutest
1887 {
1888 
1889 //======================================================================
1890 // class
1894 class UnitTestSource
1896 public:
1898  static UnitTestSource& GetInstance() { static UnitTestSource inst; return inst; }
1899 
1900 private:
1901  UnitTestSource()
1902  {
1903 #if defined(_IUTEST_DEBUG)
1904  detail::iuDebugInitialize();
1905 #else
1906  IUTEST_UNUSED_VAR(&detail::iuDebugInitialize);
1907  IUTEST_UNUSED_VAR(&detail::iuDebugBreakAlloc);
1908 #endif
1909  TestEnv::event_listeners().set_default_result_printer(new DefaultResultPrintListener());
1910  }
1911 
1912 public:
1914  ~UnitTestSource()
1915  {
1916  TestEnv::event_listeners().set_default_result_printer(NULL);
1917  TestEnv::event_listeners().set_default_xml_generator(NULL);
1918  }
1919 
1920 public:
1924  void Initialize()
1925  {
1926  UnitTest::instance().Initialize();
1927  }
1928 
1932  int Run()
1933  {
1934  SetUpDefaultListener();
1935  return UnitTest::instance().Run();
1936  }
1937 
1938 public:
1939  void SetUpDefaultXmlListener()
1940  {
1941  if( TestEnv::is_output_option_dirty() )
1942  {
1943  if( TestEnv::has_output_option() )
1944  {
1945  TestEnv::flush_output_option();
1946 
1947  do
1948  {
1949 #if defined(__WANDBOX__)
1950  if( StderrXmlGeneratorListener::SetUp() )
1951  {
1952  break;
1953  }
1954  if( StderrJunitXmlGeneratorListener::SetUp() )
1955  {
1956  break;
1957  }
1958 #else
1959  if( DefaultXmlGeneratorListener::SetUp() )
1960  {
1961  break;
1962  }
1963  if( JunitXmlGeneratorListener::SetUp() )
1964  {
1965  break;
1966  }
1967 #endif
1968  IUTEST_LOG_(WARNING) << "unrecognized output format \"" << TestEnv::get_output_option() << "\" ignored.";
1969  } while( detail::AlwaysFalse() );
1970  }
1971  else
1972  {
1973  TestEnv::event_listeners().Release(TestEnv::event_listeners().default_xml_generator());
1974  }
1975  }
1976  }
1977 
1978 private:
1979  void SetUpDefaultListener()
1980  {
1981  SetUpDefaultXmlListener();
1982 #if IUTEST_HAS_STREAM_RESULT
1983  StreamResultListener::SetUp();
1984 #endif
1985  }
1986 };
1987 
1988 //======================================================================
1989 // function
1990 namespace detail
1991 {
1992 
1993 template<typename T>
1994 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, T argv)
1995 {
1996  UnitTestSource::GetInstance().Initialize();
1997  TestEnv::ParseCommandLine(pargc, argv);
1999  UnitTestSource::GetInstance().SetUpDefaultXmlListener();
2000 }
2001 
2002 } // end of namespace detail
2003 
2009 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, char** argv) { detail::InitIrisUnitTest(pargc, argv); }
2010 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, wchar_t** argv) { detail::InitIrisUnitTest(pargc, argv); }
2011 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, const char** argv) { detail::InitIrisUnitTest(pargc, argv); }
2012 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, const wchar_t** argv) { detail::InitIrisUnitTest(pargc, argv); }
2013 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest() { detail::InitIrisUnitTest<char**>(NULL, NULL); }
2015 #if IUTEST_HAS_NULLPTR
2016 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, ::std::nullptr_t) { detail::InitIrisUnitTest<char**>(pargc, NULL); }
2017 #endif
2018 
2020 template<typename CharType>
2021 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(::std::vector< ::std::basic_string<CharType> >& argv)
2023  UnitTestSource::GetInstance().Initialize();
2024  TestEnv::ParseCommandLine(argv);
2026  UnitTestSource::GetInstance().SetUpDefaultXmlListener();
2027 }
2028 
2035 inline Environment* IUTEST_ATTRIBUTE_UNUSED_ AddGlobalTestEnvironment(Environment* env)
2038 }
2039 
2040 } // end of namespace iutest
2041 
2042 #if defined(IUTEST_USE_GTEST)
2043 # include "gtest/iutest_switch.hpp"
2044 #endif
2045 
2046 #include "iutest_util.hpp" // IWYU pragma: export
2047 
2048 #if defined(IUTEST_USE_MAIN)
2050 #endif
2051 
2052 IUTEST_PRAGMA_IUTEST_WARN_DISABLE_END()
2053 
2054 #endif // INCG_IRIS_IUTEST_HPP_
デフォルト出力イベントリスナー
Definition: iutest_default_printer.hpp:28
static const StateVariable< ::std::string > & get_output_option()
出力オプション
Definition: iutest_env.hpp:358
static Environment * AddGlobalTestEnvironment(Environment *env)
グローバル環境セットクラスの追加
Definition: iutest_env.hpp:635
static bool LoadFlagFile()
フラグファイルをロード
単体テスト起点
Definition: iutest.hpp:1896
int Run()
テストの実行
Definition: iutest.hpp:1933
void Initialize()
初期化
Definition: iutest.hpp:1925
iris unit test compiler 依存の吸収 ファイル
iris unit test core
iris unit test default main
iris unit test デフォルト出力イベントリスナー ファイル
iris unit test 式アサーション 定義 ファイル
iris unit test ignore test ファイル
iris unit test matcher 定義 ファイル
MFC support
iris unit test parameter 定義 ファイル
#define IUTEST_LOG_(level)
ログメッセージストリーム
Definition: iutest_port.hpp:56
iris unit test production code 対応用 ファイル
iris unit test static assertion 定義 ファイル
output stderr (junit) xml event listener
iris unit test stream capture
iris unit test stream result
iris unit test typed test
iris unit test utility
iris unit test version
iutest root namespace
Definition: iutest_charcode.hpp:33
void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int *pargc, char **argv)
初期化
Definition: iutest.hpp:2010
Environment *IUTEST_ATTRIBUTE_UNUSED_ AddGlobalTestEnvironment(Environment *env)
グローバル環境セットクラスの追加
Definition: iutest.hpp:2036
void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(::std::vector< ::std::basic_string< CharType > > &argv)
Definition: iutest.hpp:2022