iutest  1.17.1.0
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"
24 #include "iutest_core.hpp"
25 #include "iutest_param_tests.hpp"
26 #include "iutest_typed_tests.hpp"
27 #include "iutest_prod.hpp"
29 #include "iutest_matcher.hpp"
31 #include "iutest_ignore.hpp"
35 
36 #if defined(__AFX_H__)
37 #include "internal/iutest_mfc.hpp"
38 #endif
39 // IWYU pragma: end_exports
40 
41 //======================================================================
42 // define
55 #define IUTEST_TEST(testcase_, testname_) IUTEST_TEST_STRICT_(testcase_, testname_ \
56  , ::iutest::Test, ::iutest::internal::GetTestTypeId())
57 
65 #define IUTEST(testcase_, testname_) IUTEST_TEST(testcase_, testname_)
66 
74 #define IUTEST_F(testfixture_, testname_) IUTEST_TEST_F_(testfixture_, testname_)
75 
76 #if IUTEST_HAS_PARAM_METHOD_TEST
77 
85 #define IUTEST_PMZ(testcase_, testname_, method_, ...) IIUT_TEST_PMZ_(testcase_, testname_ \
86  , method_, ::iutest::Test \
87  , ::iutest::internal::GetTestTypeId(), __VA_ARGS__)
88 
97 #define IUTEST_PMZ_F(testfixture_, testname_, method_, ...) IIUT_TEST_PMZ_(testfixture_, testname_ \
98  , method_, testfixture_ \
99  , ::iutest::internal::GetTypeId< testfixture_ >(), __VA_ARGS__)
100 
101 #endif
102 
103 #if IUTEST_HAS_TESTNAME_ALIAS
104 
110 #define IUTEST_ALIAS_TESTNAME(testname_) IUTEST_ALIAS_TESTNAME_(testname_)
111 
118 #define IUTEST_ALIAS_TESTNAME_F(testcasename_, testfixture_) IUTEST_ALIAS_TESTNAME_F_(testcasename_, testfixture_)
119 
120 #if IUTEST_HAS_TESTNAME_ALIAS_JP
121 
127 #define IUTEST_JAPANESE_NAME(testname_) IUTEST_ALIAS_TESTNAME(testname_)
128 
135 #define IUTEST_JAPANESE_NAME_F(testcasename_, testfixture_) IUTEST_ALIAS_TESTNAME_F(testcasename_, testfixture_)
136 
137 #endif
138 
139 #endif
140 
147 #define IUTEST_INIT(argc_, argv_) ::iutest::InitIrisUnitTest(argc_, argv_)
148 
153 #define IUTEST_RUN_ALL_TESTS() ::iutest::UnitTestSource::GetInstance().Run()
154 
155 
166 #define IUTEST_SCOPED_TRACE(msg) IIUT_SCOPED_MESSAGE(msg)
167 
173 #ifndef IUTEST_SUCCEED
174 # define IUTEST_SUCCEED() IIUT_SUCCEED()
175 #endif
176 
182 #ifndef IUTEST_FAIL
183 # define IUTEST_FAIL() IIUT_FAIL()
184 #endif
185 
191 #ifndef IUTEST_ADD_FAILURE
192 # define IUTEST_ADD_FAILURE() IIUT_ADD_FAILURE()
193 #endif
194 
202 #ifndef IUTEST_ADD_FAILURE_AT
203 # define IUTEST_ADD_FAILURE_AT(file, line) IIUT_ADD_FAILURE_AT(file, line)
204 #endif
205 
211 #ifndef IUTEST_SKIP
212 # define IUTEST_SKIP() IUTEST_TEST_SKIP()
213 #endif
214 
239 #ifndef IUTEST_ASSERT
240 # ifndef IUTEST_NO_VARIADIC_MACROS
241 # define IUTEST_ASSERT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_ASSERT_FAILURE)
242 # else
243 # define IUTEST_ASSERT(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_ASSERT_FAILURE)
244 # endif
245 #endif
246 
251 #ifndef IUTEST_ASSERT_NOT
252 # ifndef IUTEST_NO_VARIADIC_MACROS
253 # define IUTEST_ASSERT_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_ASSERT_FAILURE)
254 # else
255 # define IUTEST_ASSERT_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_ASSERT_FAILURE)
256 # endif
257 #endif
258 
259 #if IUTEST_HAS_MATCHERS
260 
266 #ifndef IUTEST_ASSERT_THAT
267 # define IUTEST_ASSERT_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_ASSERT_FAILURE)
268 #endif
269 
270 #endif
271 
279 #ifndef IUTEST_ASSERT_EQ
280 # define IUTEST_ASSERT_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
281 #endif
282 
290 #ifndef IUTEST_ASSERT_ALMOST_EQ
291 # define IUTEST_ASSERT_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
292 #endif
293 
298 #ifndef IUTEST_ASSERT_NE
299 # define IUTEST_ASSERT_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_ASSERT_FAILURE)
300 #endif
301 
306 #ifndef IUTEST_ASSERT_LE
307 # define IUTEST_ASSERT_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_ASSERT_FAILURE)
308 #endif
309 
314 #ifndef IUTEST_ASSERT_LT
315 # define IUTEST_ASSERT_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_ASSERT_FAILURE)
316 #endif
317 
322 #ifndef IUTEST_ASSERT_GE
323 # define IUTEST_ASSERT_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_ASSERT_FAILURE)
324 #endif
325 
330 #ifndef IUTEST_ASSERT_GT
331 # define IUTEST_ASSERT_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_ASSERT_FAILURE)
332 #endif
333 
339 #ifndef IUTEST_ASSERT_TRUE
340 # ifndef IUTEST_NO_VARIADIC_MACROS
341 # define IUTEST_ASSERT_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSERT_FAILURE)
342 # else
343 # define IUTEST_ASSERT_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_ASSERT_FAILURE)
344 # endif
345 #endif
346 
351 #ifndef IUTEST_ASSERT_FALSE
352 # ifndef IUTEST_NO_VARIADIC_MACROS
353 # define IUTEST_ASSERT_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSERT_FAILURE)
354 # else
355 # define IUTEST_ASSERT_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_ASSERT_FAILURE)
356 # endif
357 #endif
358 
364 #ifndef IUTEST_ASSERT_NULL
365 # ifndef IUTEST_NO_VARIADIC_MACROS
366 # define IUTEST_ASSERT_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
367 # else
368 # define IUTEST_ASSERT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSERT_FAILURE)
369 # endif
370 #endif
371 
376 #ifndef IUTEST_ASSERT_NOTNULL
377 # ifndef IUTEST_NO_VARIADIC_MACROS
378 # define IUTEST_ASSERT_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
379 # else
380 # define IUTEST_ASSERT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSERT_FAILURE)
381 # endif
382 #endif
383 
389 #ifndef IUTEST_ASSERT_SAME
390 # define IUTEST_ASSERT_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_ASSERT_FAILURE)
391 #endif
392 
399 #ifndef IUTEST_ASSERT_FLOAT_EQ
400 # define IUTEST_ASSERT_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
401 #endif
402 
408 #ifndef IUTEST_ASSERT_DOUBLE_EQ
409 # define IUTEST_ASSERT_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
410 #endif
411 
412 #if IUTEST_HAS_LONG_DOUBLE
413 
419 #ifndef IUTEST_ASSERT_LONG_DOUBLE_EQ
420 # define IUTEST_ASSERT_LONG_DOUBLE_EQ(expected, actual) \
421  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_ASSERT_FAILURE)
422 #endif
423 #endif
424 
432 #ifndef IUTEST_ASSERT_NEAR
433 # define IUTEST_ASSERT_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_ASSERT_FAILURE)
434 #endif
435 
442 #ifndef IUTEST_ASSERT_STREQ
443 # define IUTEST_ASSERT_STREQ(expected_str, actual_str) \
444  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_ASSERT_FAILURE)
445 #endif
446 
451 #ifndef IUTEST_ASSERT_STRNE
452 # define IUTEST_ASSERT_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_ASSERT_FAILURE)
453 #endif
454 
461 #ifndef IUTEST_ASSERT_STRCASEEQ
462 # define IUTEST_ASSERT_STRCASEEQ(expected_str, actual_str) \
463  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_ASSERT_FAILURE)
464 #endif
465 
470 #ifndef IUTEST_ASSERT_STRCASENE
471 # define IUTEST_ASSERT_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_ASSERT_FAILURE)
472 #endif
473 
474 #if defined(IUTEST_OS_WINDOWS)
475 
481 #ifndef IUTEST_ASSERT_HRESULT_SUCCEEDED
482 # ifndef IUTEST_NO_VARIADIC_MACROS
483 # define IUTEST_ASSERT_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
484 # else
485 # define IUTEST_ASSERT_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_ASSERT_FAILURE)
486 # endif
487 #endif
488 
493 #ifndef IUTEST_ASSERT_HRESULT_FAILED
494 # ifndef IUTEST_NO_VARIADIC_MACROS
495 # define IUTEST_ASSERT_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
496 # else
497 # define IUTEST_ASSERT_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_ASSERT_FAILURE)
498 # endif
499 #endif
500 
501 #endif
502 
503 #if IUTEST_HAS_EXCEPTIONS
504 
512 #ifndef IUTEST_ASSERT_THROW
513 # define IUTEST_ASSERT_THROW(statement, expected_exception) \
514  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_ASSERT_FAILURE)
515 #endif
516 
525 #ifndef IUTEST_ASSERT_THROW_VALUE_EQ
526 # define IUTEST_ASSERT_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
527  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_ASSERT_FAILURE)
528 #endif
529 
538 #ifndef IUTEST_ASSERT_THROW_VALUE_NE
539 # define IUTEST_ASSERT_THROW_VALUE_NE(statement, expected_exception, v) \
540  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_ASSERT_FAILURE)
541 #endif
542 
551 #ifndef IUTEST_ASSERT_THROW_VALUE_STREQ
552 # define IUTEST_ASSERT_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
553  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_ASSERT_FAILURE)
554 #endif
555 
564 #ifndef IUTEST_ASSERT_THROW_VALUE_STRCASEEQ
565 # define IUTEST_ASSERT_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
566  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_ASSERT_FAILURE)
567 #endif
568 
575 #ifndef IUTEST_ASSERT_ANY_THROW
576 # define IUTEST_ASSERT_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_ASSERT_FAILURE)
577 #endif
578 
585 #ifndef IUTEST_ASSERT_NO_THROW
586 # define IUTEST_ASSERT_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_ASSERT_FAILURE)
587 #endif
588 
589 #endif
590 
597 #ifndef IUTEST_ASSERT_NO_FAILURE
598 # define IUTEST_ASSERT_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_ASSERT_FAILURE)
599 #endif
600 
607 #ifndef IUTEST_ASSERT_NO_FATAL_FAILURE
608 # define IUTEST_ASSERT_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_ASSERT_FAILURE)
609 #endif
610 
616 #ifndef IUTEST_ASSERT_FAIL
617 # define IUTEST_ASSERT_FAIL() IIUT_FAIL()
618 #endif
619 
640 #ifndef IUTEST_EXPECT
641 # ifndef IUTEST_NO_VARIADIC_MACROS
642 # define IUTEST_EXPECT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_EXPECT_FAILURE)
643 # else
644 # define IUTEST_EXPECT(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_EXPECT_FAILURE)
645 # endif
646 #endif
647 
652 #ifndef IUTEST_EXPECT_NOT
653 # ifndef IUTEST_NO_VARIADIC_MACROS
654 # define IUTEST_EXPECT_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_EXPECT_FAILURE)
655 # else
656 # define IUTEST_EXPECT_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_EXPECT_FAILURE)
657 # endif
658 #endif
659 
660 #if IUTEST_HAS_MATCHERS
661 
667 #ifndef IUTEST_EXPECT_THAT
668 # define IUTEST_EXPECT_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_EXPECT_FAILURE)
669 #endif
670 
671 #endif
672 
679 #ifndef IUTEST_EXPECT_EQ
680 # define IUTEST_EXPECT_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
681 #endif
682 
690 #ifndef IUTEST_EXPECT_ALMOST_EQ
691 # define IUTEST_EXPECT_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
692 #endif
693 
698 #ifndef IUTEST_EXPECT_NE
699 # define IUTEST_EXPECT_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_EXPECT_FAILURE)
700 #endif
701 
706 #ifndef IUTEST_EXPECT_LE
707 # define IUTEST_EXPECT_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_EXPECT_FAILURE)
708 #endif
709 
714 #ifndef IUTEST_EXPECT_LT
715 # define IUTEST_EXPECT_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_EXPECT_FAILURE)
716 #endif
717 
722 #ifndef IUTEST_EXPECT_GE
723 # define IUTEST_EXPECT_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_EXPECT_FAILURE)
724 #endif
725 
730 #ifndef IUTEST_EXPECT_GT
731 # define IUTEST_EXPECT_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_EXPECT_FAILURE)
732 #endif
733 
739 #ifndef IUTEST_EXPECT_TRUE
740 # ifndef IUTEST_NO_VARIADIC_MACROS
741 # define IUTEST_EXPECT_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_EXPECT_FAILURE)
742 # else
743 # define IUTEST_EXPECT_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_EXPECT_FAILURE)
744 # endif
745 #endif
746 
751 #ifndef IUTEST_EXPECT_FALSE
752 # ifndef IUTEST_NO_VARIADIC_MACROS
753 # define IUTEST_EXPECT_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_EXPECT_FAILURE)
754 # else
755 # define IUTEST_EXPECT_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_EXPECT_FAILURE)
756 # endif
757 #endif
758 
764 #ifndef IUTEST_EXPECT_NULL
765 # ifndef IUTEST_NO_VARIADIC_MACROS
766 # define IUTEST_EXPECT_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
767 # else
768 # define IUTEST_EXPECT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_EXPECT_FAILURE)
769 # endif
770 #endif
771 
776 #ifndef IUTEST_EXPECT_NOTNULL
777 # ifndef IUTEST_NO_VARIADIC_MACROS
778 # define IUTEST_EXPECT_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
779 # else
780 # define IUTEST_EXPECT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_EXPECT_FAILURE)
781 # endif
782 #endif
783 
789 #ifndef IUTEST_EXPECT_SAME
790 # define IUTEST_EXPECT_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_EXPECT_FAILURE)
791 #endif
792 
799 #ifndef IUTEST_EXPECT_FLOAT_EQ
800 # define IUTEST_EXPECT_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
801 #endif
802 
808 #ifndef IUTEST_EXPECT_DOUBLE_EQ
809 # define IUTEST_EXPECT_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
810 #endif
811 
812 #if IUTEST_HAS_LONG_DOUBLE
813 
819 #ifndef IUTEST_EXPECT_LONG_DOUBLE_EQ
820 # define IUTEST_EXPECT_LONG_DOUBLE_EQ(expected, actual) \
821  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_EXPECT_FAILURE)
822 #endif
823 #endif
824 
832 #ifndef IUTEST_EXPECT_NEAR
833 # define IUTEST_EXPECT_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_EXPECT_FAILURE)
834 #endif
835 
842 #ifndef IUTEST_EXPECT_STREQ
843 # define IUTEST_EXPECT_STREQ(expected_str, actual_str) \
844  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_EXPECT_FAILURE)
845 #endif
846 
851 #ifndef IUTEST_EXPECT_STRNE
852 # define IUTEST_EXPECT_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_EXPECT_FAILURE)
853 #endif
854 
861 #ifndef IUTEST_EXPECT_STRCASEEQ
862 # define IUTEST_EXPECT_STRCASEEQ(expected_str, actual_str) \
863  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_EXPECT_FAILURE)
864 #endif
865 
870 #ifndef IUTEST_EXPECT_STRCASENE
871 # define IUTEST_EXPECT_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_EXPECT_FAILURE)
872 #endif
873 
874 #if defined(IUTEST_OS_WINDOWS)
875 
881 #ifndef IUTEST_EXPECT_HRESULT_SUCCEEDED
882 # ifndef IUTEST_NO_VARIADIC_MACROS
883 # define IUTEST_EXPECT_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
884 # else
885 # define IUTEST_EXPECT_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_EXPECT_FAILURE)
886 # endif
887 #endif
888 
893 #ifndef IUTEST_EXPECT_HRESULT_FAILED
894 # ifndef IUTEST_NO_VARIADIC_MACROS
895 # define IUTEST_EXPECT_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
896 # else
897 # define IUTEST_EXPECT_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_EXPECT_FAILURE)
898 # endif
899 #endif
900 
901 #endif
902 
903 #if IUTEST_HAS_EXCEPTIONS
904 
912 #ifndef IUTEST_EXPECT_THROW
913 # define IUTEST_EXPECT_THROW(statement, expected_exception) \
914  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_EXPECT_FAILURE)
915 #endif
916 
925 #ifndef IUTEST_EXPECT_THROW_VALUE_EQ
926 # define IUTEST_EXPECT_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
927  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_EXPECT_FAILURE)
928 #endif
929 
938 #ifndef IUTEST_EXPECT_THROW_VALUE_NE
939 # define IUTEST_EXPECT_THROW_VALUE_NE(statement, expected_exception, v) \
940  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_EXPECT_FAILURE)
941 #endif
942 
951 #ifndef IUTEST_EXPECT_THROW_VALUE_STREQ
952 # define IUTEST_EXPECT_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
953  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_EXPECT_FAILURE)
954 #endif
955 
964 #ifndef IUTEST_EXPECT_THROW_VALUE_STRCASEEQ
965 # define IUTEST_EXPECT_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
966  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_EXPECT_FAILURE)
967 #endif
968 
975 #ifndef IUTEST_EXPECT_ANY_THROW
976 # define IUTEST_EXPECT_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_EXPECT_FAILURE)
977 #endif
978 
985 #ifndef IUTEST_EXPECT_NO_THROW
986 # define IUTEST_EXPECT_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_EXPECT_FAILURE)
987 #endif
988 
989 #endif
990 
997 #ifndef IUTEST_EXPECT_NO_FAILURE
998 # define IUTEST_EXPECT_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_EXPECT_FAILURE)
999 #endif
1000 
1007 #ifndef IUTEST_EXPECT_NO_FATAL_FAILURE
1008 # define IUTEST_EXPECT_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_EXPECT_FAILURE)
1009 #endif
1010 
1016 #ifndef IUTEST_EXPECT_FAIL
1017 # define IUTEST_EXPECT_FAIL() IIUT_ADD_FAILURE()
1018 #endif
1019 
1025 #ifndef IUTEST_EXPECT_FAIL_AT
1026 # define IUTEST_EXPECT_FAIL_AT(file, line) IIUT_ADD_FAILURE_AT(file, line)
1027 #endif
1028 
1029 
1050 #ifndef IUTEST_INFORM
1051 # ifndef IUTEST_NO_VARIADIC_MACROS
1052 # define IUTEST_INFORM(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_INFORM_FAILURE)
1053 # else
1054 # define IUTEST_INFORM(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_INFORM_FAILURE)
1055 # endif
1056 #endif
1057 
1062 #ifndef IUTEST_INFORM_NOT
1063 # ifndef IUTEST_NO_VARIADIC_MACROS
1064 # define IUTEST_INFORM_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_INFORM_FAILURE)
1065 # else
1066 # define IUTEST_INFORM_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_INFORM_FAILURE)
1067 # endif
1068 #endif
1069 
1070 #if IUTEST_HAS_MATCHERS
1071 
1077 #ifndef IUTEST_INFORM_THAT
1078 # define IUTEST_INFORM_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_INFORM_FAILURE)
1079 #endif
1080 
1081 #endif
1082 
1089 #ifndef IUTEST_INFORM_EQ
1090 # define IUTEST_INFORM_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1091 #endif
1092 
1100 #ifndef IUTEST_INFORM_ALMOST_EQ
1101 # define IUTEST_INFORM_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1102 #endif
1103 
1108 #ifndef IUTEST_INFORM_NE
1109 # define IUTEST_INFORM_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_INFORM_FAILURE)
1110 #endif
1111 
1116 #ifndef IUTEST_INFORM_LE
1117 # define IUTEST_INFORM_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_INFORM_FAILURE)
1118 #endif
1119 
1124 #ifndef IUTEST_INFORM_LT
1125 # define IUTEST_INFORM_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_INFORM_FAILURE)
1126 #endif
1127 
1132 #ifndef IUTEST_INFORM_GE
1133 # define IUTEST_INFORM_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_INFORM_FAILURE)
1134 #endif
1135 
1140 #ifndef IUTEST_INFORM_GT
1141 # define IUTEST_INFORM_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_INFORM_FAILURE)
1142 #endif
1143 
1149 #ifndef IUTEST_INFORM_TRUE
1150 # ifndef IUTEST_NO_VARIADIC_MACROS
1151 # define IUTEST_INFORM_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_INFORM_FAILURE)
1152 # else
1153 # define IUTEST_INFORM_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_INFORM_FAILURE)
1154 # endif
1155 #endif
1156 
1161 #ifndef IUTEST_INFORM_FALSE
1162 # ifndef IUTEST_NO_VARIADIC_MACROS
1163 # define IUTEST_INFORM_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_INFORM_FAILURE)
1164 # else
1165 # define IUTEST_INFORM_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_INFORM_FAILURE)
1166 # endif
1167 #endif
1168 
1174 #ifndef IUTEST_INFORM_NULL
1175 # ifndef IUTEST_NO_VARIADIC_MACROS
1176 # define IUTEST_INFORM_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1177 # else
1178 # define IUTEST_INFORM_NULL(v) IUTEST_TEST_NULL(v, IUTEST_INFORM_FAILURE)
1179 # endif
1180 #endif
1181 
1186 #ifndef IUTEST_INFORM_NOTNULL
1187 # ifndef IUTEST_NO_VARIADIC_MACROS
1188 # define IUTEST_INFORM_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1189 # else
1190 # define IUTEST_INFORM_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_INFORM_FAILURE)
1191 # endif
1192 #endif
1193 
1199 #ifndef IUTEST_INFORM_SAME
1200 # define IUTEST_INFORM_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_INFORM_FAILURE)
1201 #endif
1202 
1209 #ifndef IUTEST_INFORM_FLOAT_EQ
1210 # define IUTEST_INFORM_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1211 #endif
1212 
1218 #ifndef IUTEST_INFORM_DOUBLE_EQ
1219 # define IUTEST_INFORM_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1220 #endif
1221 
1222 #if IUTEST_HAS_LONG_DOUBLE
1223 
1229 #ifndef IUTEST_INFORM_LONG_DOUBLE_EQ
1230 # define IUTEST_INFORM_LONG_DOUBLE_EQ(expected, actual) \
1231  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_INFORM_FAILURE)
1232 #endif
1233 #endif
1234 
1242 #ifndef IUTEST_INFORM_NEAR
1243 # define IUTEST_INFORM_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_INFORM_FAILURE)
1244 #endif
1245 
1252 #ifndef IUTEST_INFORM_STREQ
1253 # define IUTEST_INFORM_STREQ(expected_str, actual_str) \
1254  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_INFORM_FAILURE)
1255 #endif
1256 
1261 #ifndef IUTEST_INFORM_STRNE
1262 # define IUTEST_INFORM_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_INFORM_FAILURE)
1263 #endif
1264 
1271 #ifndef IUTEST_INFORM_STRCASEEQ
1272 # define IUTEST_INFORM_STRCASEEQ(expected_str, actual_str) \
1273  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_INFORM_FAILURE)
1274 #endif
1275 
1280 #ifndef IUTEST_INFORM_STRCASENE
1281 # define IUTEST_INFORM_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_INFORM_FAILURE)
1282 #endif
1283 
1284 #if defined(IUTEST_OS_WINDOWS)
1285 
1291 #ifndef IUTEST_INFORM_HRESULT_SUCCEEDED
1292 # ifndef IUTEST_NO_VARIADIC_MACROS
1293 # define IUTEST_INFORM_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1294 # else
1295 # define IUTEST_INFORM_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_INFORM_FAILURE)
1296 # endif
1297 #endif
1298 
1303 #ifndef IUTEST_INFORM_HRESULT_FAILED
1304 # ifndef IUTEST_NO_VARIADIC_MACROS
1305 # define IUTEST_INFORM_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_INFORM_FAILURE)
1306 # else
1307 # define IUTEST_INFORM_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_INFORM_FAILURE)
1308 # endif
1309 #endif
1310 
1311 #endif
1312 
1313 #if IUTEST_HAS_EXCEPTIONS
1314 
1322 #ifndef IUTEST_INFORM_THROW
1323 # define IUTEST_INFORM_THROW(statement, expected_exception) \
1324  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_INFORM_FAILURE)
1325 #endif
1326 
1335 #ifndef IUTEST_INFORM_THROW_VALUE_EQ
1336 # define IUTEST_INFORM_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
1337  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_INFORM_FAILURE)
1338 #endif
1339 
1348 #ifndef IUTEST_INFORM_THROW_VALUE_NE
1349 # define IUTEST_INFORM_THROW_VALUE_NE(statement, expected_exception, v) \
1350  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_INFORM_FAILURE)
1351 #endif
1352 
1361 #ifndef IUTEST_INFORM_THROW_VALUE_STREQ
1362 # define IUTEST_INFORM_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
1363  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_INFORM_FAILURE)
1364 #endif
1365 
1374 #ifndef IUTEST_INFORM_THROW_VALUE_STRCASEEQ
1375 # define IUTEST_INFORM_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
1376  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_INFORM_FAILURE)
1377 #endif
1378 
1385 #ifndef IUTEST_INFORM_ANY_THROW
1386 # define IUTEST_INFORM_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_INFORM_FAILURE)
1387 #endif
1388 
1395 #ifndef IUTEST_INFORM_NO_THROW
1396 # define IUTEST_INFORM_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_INFORM_FAILURE)
1397 #endif
1398 
1399 #endif
1400 
1407 #ifndef IUTEST_INFORM_NO_FAILURE
1408 # define IUTEST_INFORM_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_INFORM_FAILURE)
1409 #endif
1410 
1417 #ifndef IUTEST_INFORM_NO_FATAL_FAILURE
1418 # define IUTEST_INFORM_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_INFORM_FAILURE)
1419 #endif
1420 
1441 #ifndef IUTEST_ASSUME
1442 # ifndef IUTEST_NO_VARIADIC_MACROS
1443 # define IUTEST_ASSUME(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), true, IUTEST_ASSUME_FAILURE)
1444 # else
1445 # define IUTEST_ASSUME(expression) IUTEST_TEST_EXPRESSION_(expression, true, IUTEST_ASSUME_FAILURE)
1446 # endif
1447 #endif
1448 
1453 #ifndef IUTEST_ASSUME_NOT
1454 # ifndef IUTEST_NO_VARIADIC_MACROS
1455 # define IUTEST_ASSUME_NOT(...) IUTEST_TEST_EXPRESSION_((__VA_ARGS__), false, IUTEST_ASSUME_FAILURE)
1456 # else
1457 # define IUTEST_ASSUME_NOT(expression) IUTEST_TEST_EXPRESSION_(expression, false, IUTEST_ASSUME_FAILURE)
1458 # endif
1459 #endif
1460 
1461 #if IUTEST_HAS_MATCHERS
1462 
1469 #ifndef IUTEST_ASSUME_THAT
1470 # define IUTEST_ASSUME_THAT(actual, matcher) IUTEST_TEST_THAT(actual, matcher, IUTEST_ASSUME_FAILURE)
1471 #endif
1472 
1473 #endif
1474 
1481 #ifndef IUTEST_ASSUME_EQ
1482 # define IUTEST_ASSUME_EQ(expected, actual) IUTEST_TEST_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1483 #endif
1484 
1492 #ifndef IUTEST_ASSUME_ALMOST_EQ
1493 # define IUTEST_ASSUME_ALMOST_EQ(expected, actual) IUTEST_TEST_ALMOST_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1494 #endif
1495 
1500 #ifndef IUTEST_ASSUME_NE
1501 # define IUTEST_ASSUME_NE(v1, v2) IUTEST_TEST_NE(v1, v2, IUTEST_ASSUME_FAILURE)
1502 #endif
1503 
1508 #ifndef IUTEST_ASSUME_LE
1509 # define IUTEST_ASSUME_LE(v1, v2) IUTEST_TEST_LE(v1, v2, IUTEST_ASSUME_FAILURE)
1510 #endif
1511 
1516 #ifndef IUTEST_ASSUME_LT
1517 # define IUTEST_ASSUME_LT(v1, v2) IUTEST_TEST_LT(v1, v2, IUTEST_ASSUME_FAILURE)
1518 #endif
1519 
1524 #ifndef IUTEST_ASSUME_GE
1525 # define IUTEST_ASSUME_GE(v1, v2) IUTEST_TEST_GE(v1, v2, IUTEST_ASSUME_FAILURE)
1526 #endif
1527 
1532 #ifndef IUTEST_ASSUME_GT
1533 # define IUTEST_ASSUME_GT(v1, v2) IUTEST_TEST_GT(v1, v2, IUTEST_ASSUME_FAILURE)
1534 #endif
1535 
1541 #ifndef IUTEST_ASSUME_TRUE
1542 # ifndef IUTEST_NO_VARIADIC_MACROS
1543 # define IUTEST_ASSUME_TRUE(...) IUTEST_TEST_TRUE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSUME_FAILURE)
1544 # else
1545 # define IUTEST_ASSUME_TRUE(v) IUTEST_TEST_TRUE(v, #v, IUTEST_ASSUME_FAILURE)
1546 # endif
1547 #endif
1548 
1553 #ifndef IUTEST_ASSUME_FALSE
1554 # ifndef IUTEST_NO_VARIADIC_MACROS
1555 # define IUTEST_ASSUME_FALSE(...) IUTEST_TEST_FALSE((__VA_ARGS__), #__VA_ARGS__, IUTEST_ASSUME_FAILURE)
1556 # else
1557 # define IUTEST_ASSUME_FALSE(v) IUTEST_TEST_FALSE(v, #v, IUTEST_ASSUME_FAILURE)
1558 # endif
1559 #endif
1560 
1566 #ifndef IUTEST_ASSUME_NULL
1567 # ifndef IUTEST_NO_VARIADIC_MACROS
1568 # define IUTEST_ASSUME_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1569 # else
1570 # define IUTEST_ASSUME_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSUME_FAILURE)
1571 # endif
1572 #endif
1573 
1578 #ifndef IUTEST_ASSUME_NOTNULL
1579 # ifndef IUTEST_NO_VARIADIC_MACROS
1580 # define IUTEST_ASSUME_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1581 # else
1582 # define IUTEST_ASSUME_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSUME_FAILURE)
1583 # endif
1584 #endif
1585 
1591 #ifndef IUTEST_ASSUME_SAME
1592 # define IUTEST_ASSUME_SAME(v1, v2) IUTEST_TEST_SAME(v1, v2, IUTEST_ASSUME_FAILURE)
1593 #endif
1594 
1601 #ifndef IUTEST_ASSUME_FLOAT_EQ
1602 # define IUTEST_ASSUME_FLOAT_EQ(expected, actual) IUTEST_TEST_FLOAT_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1603 #endif
1604 
1610 #ifndef IUTEST_ASSUME_DOUBLE_EQ
1611 # define IUTEST_ASSUME_DOUBLE_EQ(expected, actual) IUTEST_TEST_DOUBLE_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1612 #endif
1613 
1614 #if IUTEST_HAS_LONG_DOUBLE
1615 
1621 #ifndef IUTEST_ASSUME_LONG_DOUBLE_EQ
1622 # define IUTEST_ASSUME_LONG_DOUBLE_EQ(expected, actual) \
1623  IUTEST_TEST_LONG_DOUBLE_EQ(expected, actual, IUTEST_ASSUME_FAILURE)
1624 #endif
1625 #endif
1626 
1634 #ifndef IUTEST_ASSUME_NEAR
1635 # define IUTEST_ASSUME_NEAR(v1, v2, abs_v) IUTEST_TEST_NEAR(v1, v2, abs_v, IUTEST_ASSUME_FAILURE)
1636 #endif
1637 
1644 #ifndef IUTEST_ASSUME_STREQ
1645 # define IUTEST_ASSUME_STREQ(expected_str, actual_str) \
1646  IUTEST_TEST_STREQ(expected_str, actual_str, IUTEST_ASSUME_FAILURE)
1647 #endif
1648 
1653 #ifndef IUTEST_ASSUME_STRNE
1654 # define IUTEST_ASSUME_STRNE(v1, v2) IUTEST_TEST_STRNE(v1, v2, IUTEST_ASSUME_FAILURE)
1655 #endif
1656 
1663 #ifndef IUTEST_ASSUME_STRCASEEQ
1664 # define IUTEST_ASSUME_STRCASEEQ(expected_str, actual_str) \
1665  IUTEST_TEST_STRCASEEQ(expected_str, actual_str, IUTEST_ASSUME_FAILURE)
1666 #endif
1667 
1672 #ifndef IUTEST_ASSUME_STRCASENE
1673 # define IUTEST_ASSUME_STRCASENE(v1, v2) IUTEST_TEST_STRCASENE(v1, v2, IUTEST_ASSUME_FAILURE)
1674 #endif
1675 
1676 #if defined(IUTEST_OS_WINDOWS)
1677 
1683 #ifndef IUTEST_ASSUME_HRESULT_SUCCEEDED
1684 # ifndef IUTEST_NO_VARIADIC_MACROS
1685 # define IUTEST_ASSUME_HRESULT_SUCCEEDED(...) IUTEST_TEST_HRESULT_SUCCEEDED((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1686 # else
1687 # define IUTEST_ASSUME_HRESULT_SUCCEEDED(hr) IUTEST_TEST_HRESULT_SUCCEEDED(hr, IUTEST_ASSUME_FAILURE)
1688 # endif
1689 #endif
1690 
1695 #ifndef IUTEST_ASSUME_HRESULT_FAILED
1696 # ifndef IUTEST_NO_VARIADIC_MACROS
1697 # define IUTEST_ASSUME_HRESULT_FAILED(...) IUTEST_TEST_HRESULT_FAILED((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
1698 # else
1699 # define IUTEST_ASSUME_HRESULT_FAILED(hr) IUTEST_TEST_HRESULT_FAILED(hr, IUTEST_ASSUME_FAILURE)
1700 # endif
1701 #endif
1702 
1703 #endif
1704 
1705 #if IUTEST_HAS_EXCEPTIONS
1706 
1714 #ifndef IUTEST_ASSUME_THROW
1715 # define IUTEST_ASSUME_THROW(statement, expected_exception) \
1716  IUTEST_TEST_THROW_(statement, expected_exception, IUTEST_ASSUME_FAILURE)
1717 #endif
1718 
1727 #ifndef IUTEST_ASSUME_THROW_VALUE_EQ
1728 # define IUTEST_ASSUME_THROW_VALUE_EQ(statement, expected_exception, expected_value) \
1729  IUTEST_TEST_THROW_VALUE_EQ_(statement, expected_exception, expected_value, IUTEST_ASSUME_FAILURE)
1730 #endif
1731 
1740 #ifndef IUTEST_ASSUME_THROW_VALUE_NE
1741 # define IUTEST_ASSUME_THROW_VALUE_NE(statement, expected_exception, v) \
1742  IUTEST_TEST_THROW_VALUE_NE_(statement, expected_exception, v, IUTEST_ASSUME_FAILURE)
1743 #endif
1744 
1753 #ifndef IUTEST_ASSUME_THROW_VALUE_STREQ
1754 # define IUTEST_ASSUME_THROW_VALUE_STREQ(statement, expected_exception, expected_str) \
1755  IUTEST_TEST_THROW_VALUE_STREQ_(statement, expected_exception, expected_str, IUTEST_ASSUME_FAILURE)
1756 #endif
1757 
1766 #ifndef IUTEST_ASSUME_THROW_VALUE_STRCASEEQ
1767 # define IUTEST_ASSUME_THROW_VALUE_STRCASEEQ(statement, expected_exception, expected_str) \
1768  IUTEST_TEST_THROW_VALUE_STRCASEEQ_(statement, expected_exception, expected_str, IUTEST_ASSUME_FAILURE)
1769 #endif
1770 
1777 #ifndef IUTEST_ASSUME_ANY_THROW
1778 # define IUTEST_ASSUME_ANY_THROW(statement) IUTEST_TEST_ANY_THROW_(statement, IUTEST_ASSUME_FAILURE)
1779 #endif
1780 
1787 #ifndef IUTEST_ASSUME_NO_THROW
1788 # define IUTEST_ASSUME_NO_THROW(statement) IUTEST_TEST_NO_THROW_(statement, IUTEST_ASSUME_FAILURE)
1789 #endif
1790 
1791 #endif
1792 
1799 #ifndef IUTEST_ASSUME_NO_FAILURE
1800 # define IUTEST_ASSUME_NO_FAILURE(statement) IUTEST_TEST_NO_FAILURE_(statement, IUTEST_ASSUME_FAILURE)
1801 #endif
1802 
1809 #ifndef IUTEST_ASSUME_NO_FATAL_FAILURE
1810 # define IUTEST_ASSUME_NO_FATAL_FAILURE(statement) IUTEST_TEST_NO_FATAL_FAILURE_(statement, IUTEST_ASSUME_FAILURE)
1811 #endif
1812 
1816 namespace iutest
1817 {
1818 
1819 //======================================================================
1820 // class
1824 class UnitTestSource
1826 public:
1828  static UnitTestSource& GetInstance() { static UnitTestSource inst; return inst; }
1829 
1830 private:
1831  UnitTestSource()
1832  {
1833 #if defined(_IUTEST_DEBUG)
1834  detail::iuDebugInitialize();
1835 #else
1836  IUTEST_UNUSED_VAR(&detail::iuDebugInitialize);
1837  IUTEST_UNUSED_VAR(&detail::iuDebugBreakAlloc);
1838 #endif
1839  TestEnv::event_listeners().set_default_result_printer(new DefaultResultPrintListener());
1840  }
1841 
1842 public:
1844  ~UnitTestSource()
1845  {
1846  TestEnv::event_listeners().set_default_result_printer(NULL);
1847  TestEnv::event_listeners().set_default_xml_generator(NULL);
1848  }
1849 
1850 public:
1854  void Initialize()
1855  {
1856  UnitTest::instance().Initialize();
1857  }
1858 
1862  int Run()
1863  {
1864  SetUpDefaultListener();
1865  return UnitTest::instance().Run();
1866  }
1867 
1868 private:
1869  void SetUpDefaultListener()
1870  {
1871  if( TestEnv::has_output_option() )
1872  {
1873  do
1874  {
1875 #if defined(__WANDBOX__)
1876  if( StderrXmlGeneratorListener::SetUp() )
1877  {
1878  break;
1879  }
1880  if( StderrJunitXmlGeneratorListener::SetUp() )
1881  {
1882  break;
1883  }
1884 #else
1885  if( DefaultXmlGeneratorListener::SetUp() )
1886  {
1887  break;
1888  }
1889  if( JunitXmlGeneratorListener::SetUp() )
1890  {
1891  break;
1892  }
1893 #endif
1894  IUTEST_LOG_(WARNING) << "unrecognized output format \"" << TestEnv::get_output_option() << "\" ignored.";
1895  } while( detail::AlwaysFalse() );
1896  }
1897 
1898 #if IUTEST_HAS_STREAM_RESULT
1899  StreamResultListener::SetUp();
1900 #endif
1901  }
1902 };
1903 
1904 //======================================================================
1905 // function
1906 namespace detail
1907 {
1908 
1909 template<typename T>
1910 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, T argv)
1911 {
1912  UnitTestSource::GetInstance().Initialize();
1913  TestEnv::ParseCommandLine(pargc, argv);
1915 }
1916 
1917 } // end of namespace detail
1918 
1924 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, char** argv) { detail::InitIrisUnitTest(pargc, argv); }
1925 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, wchar_t** argv) { detail::InitIrisUnitTest(pargc, argv); }
1926 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, const char** argv) { detail::InitIrisUnitTest(pargc, argv); }
1927 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, const wchar_t** argv) { detail::InitIrisUnitTest(pargc, argv); }
1928 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest() { detail::InitIrisUnitTest<char**>(NULL, NULL); }
1929 
1930 #if IUTEST_HAS_NULLPTR
1931 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int* pargc, ::std::nullptr_t) { detail::InitIrisUnitTest<char**>(pargc, NULL); }
1932 #endif
1933 
1935 template<typename CharType>
1936 inline void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(::std::vector< ::std::basic_string<CharType> >& argv)
1938  UnitTestSource::GetInstance().Initialize();
1939  TestEnv::ParseCommandLine(argv);
1941 }
1942 
1949 inline Environment* IUTEST_ATTRIBUTE_UNUSED_ AddGlobalTestEnvironment(Environment* env)
1952 }
1953 
1954 } // end of namespace iutest
1955 
1956 #if defined(IUTEST_USE_GTEST)
1957 # include "gtest/iutest_switch.hpp"
1958 #endif
1959 
1960 #include "iutest_util.hpp"
1961 
1962 #if defined(IUTEST_USE_MAIN)
1964 #endif
1965 
1966 #endif // INCG_IRIS_IUTEST_HPP_
iutest::TestEnv::LoadFlagFile
static bool LoadFlagFile()
フラグファイルをロード
iutest_config.hpp
iris unit test config
iutest::AddGlobalTestEnvironment
Environment *IUTEST_ATTRIBUTE_UNUSED_ AddGlobalTestEnvironment(Environment *env)
グローバル環境セットクラスの追加
Definition: iutest.hpp:1950
iutest_typed_tests.hpp
iris unit test typed test
iutest
iutest root namespace
Definition: iutest_charcode.hpp:31
iutest::Environment
環境セットクラス
Definition: iutest_env.hpp:99
iutest::UnitTestSource
単体テスト起点
Definition: iutest.hpp:1825
iutest_util.hpp
iris unit test utility
iutest_default_printer.hpp
iris unit test デフォルト出力イベントリスナー ファイル
iutest_default_main.hpp
iris unit test default main
iutest::UnitTestSource::Initialize
void Initialize()
初期化
Definition: iutest.hpp:1855
iutest_stderr_xml_generator.hpp
output stderr (junit) xml event listener
iutest_ver.hpp
iris unit test version
IUTEST_LOG_
#define IUTEST_LOG_(level)
ログメッセージストリーム
Definition: iutest_port.hpp:53
iutest_expression_assertion.hpp
iris unit test 式アサーション 定義 ファイル
iutest::DefaultResultPrintListener
デフォルト出力イベントリスナー
Definition: iutest_default_printer.hpp:27
iutest_mfc.hpp
MFC support
iutest::InitIrisUnitTest
void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(int *pargc, char **argv)
初期化
Definition: iutest.hpp:1925
iutest_ignore.hpp
iris unit test ignore test ファイル
iutest_param_tests.hpp
iris unit test parameter 定義 ファイル
iutest::UnitTestSource::Run
int Run()
テストの実行
Definition: iutest.hpp:1863
iutest_static_assertion.hpp
iris unit test static assertion 定義 ファイル
iutest_prod.hpp
iris unit test production code 対応用 ファイル
iutest_core.hpp
iris unit test core
iutest::InitIrisUnitTest
void IUTEST_ATTRIBUTE_UNUSED_ InitIrisUnitTest(::std::vector< ::std::basic_string< CharType > > &argv)
Definition: iutest.hpp:1937
iutest_streaming_listener.hpp
iris unit test stream result
iutest_matcher.hpp
iris unit test matcher 定義 ファイル
iutest::TestEnv::AddGlobalTestEnvironment
static Environment * AddGlobalTestEnvironment(Environment *env)
グローバル環境セットクラスの追加
Definition: iutest_env.hpp:602