Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
srz-zumix committed Jul 28, 2018
2 parents 9b0eb1d + c02cf77 commit 38a6140
Show file tree
Hide file tree
Showing 15 changed files with 169 additions and 24 deletions.
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -54,7 +54,7 @@ Features
* Private member test.
* Janaese test name (C++03).
* Various options for running the tests.
* Compatible with [Google Test](https://github.com/google/googletest).
* Compatible with [Google Test](https://github.com/google/googletest). (1.5 or later)

Platforms
--------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions buddy.yml
Expand Up @@ -225,6 +225,7 @@
trigger_condition: "ALWAYS"
- action: "release-1.4.0"
type: "BUILD"
disabled: true
working_directory: "/buddy/iutest"
docker_image_name: "srzzumix/googletest"
docker_image_tag: "release-1.4.0"
Expand Down
2 changes: 1 addition & 1 deletion docs/Doxyfile
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = iutest
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 1.16.4.6
PROJECT_NUMBER = 1.16.4.7

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
4 changes: 2 additions & 2 deletions include/gtest/switch/iutest_switch_assert.hpp
Expand Up @@ -164,8 +164,8 @@
#define IUTEST_ASSERT_GT ASSERT_GT
#define IUTEST_ASSERT_GE ASSERT_GE
#define IUTEST_ASSERT_NEAR ASSERT_NEAR
#define IUTEST_ASSERT_NULL(v) IUTEST_THROUGH_ANALYSIS_ASSUME((v) == NULL, ASSERT_EQ(NULL, v))
#define IUTEST_ASSERT_NOTNULL(v) IUTEST_THROUGH_ANALYSIS_ASSUME((v) != NULL, ASSERT_TRUE(NULL != (v)))
#define IUTEST_ASSERT_NULL(...) IUTEST_THROUGH_ANALYSIS_ASSUME((__VA_ARGS__) == NULL, ASSERT_EQ(NULL, (__VA_ARGS__)))
#define IUTEST_ASSERT_NOTNULL(...) IUTEST_THROUGH_ANALYSIS_ASSUME((__VA_ARGS__) != NULL, ASSERT_TRUE(NULL != (__VA_ARGS__)))
#define IUTEST_ASSERT_SAME(v1, v2) ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSame, v1, v2)
#define IUTEST_ASSERT_FLOAT_EQ ASSERT_FLOAT_EQ
#define IUTEST_ASSERT_DOUBLE_EQ ASSERT_DOUBLE_EQ
Expand Down
4 changes: 2 additions & 2 deletions include/gtest/switch/iutest_switch_assume.hpp
Expand Up @@ -196,8 +196,8 @@
#define IUTEST_ASSUME_LE ASSUME_LE
#define IUTEST_ASSUME_GT ASSUME_GT
#define IUTEST_ASSUME_GE ASSUME_GE
#define IUTEST_ASSUME_NULL(v) ASSUME_EQ(NULL, v)
#define IUTEST_ASSUME_NOTNULL(v) ASSUME_TRUE(NULL != (v))
#define IUTEST_ASSUME_NULL(...) ASSUME_EQ(NULL, (__VA_ARGS__))
#define IUTEST_ASSUME_NOTNULL(...) ASSUME_TRUE(NULL != (__VA_ARGS__))
#define IUTEST_ASSUME_SAME(v1, v2) ASSUME_PRED_FORMAT2(::testing::internal::CmpHelperSame, v1, v2)
#define IUTEST_ASSUME_NEAR ASSUME_NEAR
#define IUTEST_ASSUME_FLOAT_EQ ASSUME_FLOAT_EQ
Expand Down
4 changes: 2 additions & 2 deletions include/gtest/switch/iutest_switch_expect.hpp
Expand Up @@ -165,8 +165,8 @@
#define IUTEST_EXPECT_GT EXPECT_GT
#define IUTEST_EXPECT_GE EXPECT_GE
#define IUTEST_EXPECT_NEAR EXPECT_NEAR
#define IUTEST_EXPECT_NULL(v) EXPECT_EQ(NULL, v)
#define IUTEST_EXPECT_NOTNULL(v) EXPECT_TRUE(NULL != (v))
#define IUTEST_EXPECT_NULL(...) EXPECT_EQ(NULL, (__VA_ARGS__))
#define IUTEST_EXPECT_NOTNULL(...) EXPECT_TRUE(NULL != (__VA_ARGS__))
#define IUTEST_EXPECT_SAME(v1, v2) EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSame, v1, v2)
#define IUTEST_EXPECT_FLOAT_EQ EXPECT_FLOAT_EQ
#define IUTEST_EXPECT_DOUBLE_EQ EXPECT_DOUBLE_EQ
Expand Down
4 changes: 2 additions & 2 deletions include/gtest/switch/iutest_switch_inform.hpp
Expand Up @@ -203,8 +203,8 @@
#define IUTEST_INFORM_LE INFORM_LE
#define IUTEST_INFORM_GT INFORM_GT
#define IUTEST_INFORM_GE INFORM_GE
#define IUTEST_INFORM_NULL(v) INFORM_EQ(NULL, v)
#define IUTEST_INFORM_NOTNULL(v) INFORM_TRUE(NULL != (v))
#define IUTEST_INFORM_NULL(...) INFORM_EQ(NULL, (__VA_ARGS__))
#define IUTEST_INFORM_NOTNULL(...) INFORM_TRUE(NULL != (__VA_ARGS__))
#define IUTEST_INFORM_SAME(v1, v2) INFORM_PRED_FORMAT2(::testing::internal::CmpHelperSame, v1, v2)
#define IUTEST_INFORM_NEAR INFORM_NEAR
#define IUTEST_INFORM_FLOAT_EQ INFORM_FLOAT_EQ
Expand Down
2 changes: 1 addition & 1 deletion include/impl/iutest_default_xml_generator.ipp
Expand Up @@ -95,7 +95,7 @@ IUTEST_IPP_INLINE void DefaultXmlGeneratorListener::OnReportTest(IFile* file, co

IUTEST_IPP_INLINE void DefaultXmlGeneratorListener::OnReportTestCase(IFile* file, const TestCase& test_case)
{
if( test_case.reportable_test_count() == 0 )
if( test_case.reportable_test_count() <= 0 )
{
return;
}
Expand Down
48 changes: 40 additions & 8 deletions include/iutest.hpp
Expand Up @@ -349,15 +349,23 @@
* @details v が NULL であることを検証します
*/
#ifndef IUTEST_ASSERT_NULL
# define IUTEST_ASSERT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSERT_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_ASSERT_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
# else
# define IUTEST_ASSERT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSERT_FAILURE)
# endif
#endif
/**
* @ingroup IUTEST_ASSERT_
* @brief NOT NULL テスト
* @details v が NULL でないことを検証します
*/
#ifndef IUTEST_ASSERT_NOTNULL
# define IUTEST_ASSERT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSERT_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_ASSERT_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_ASSERT_FAILURE)
# else
# define IUTEST_ASSERT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSERT_FAILURE)
# endif
#endif

/**
Expand Down Expand Up @@ -703,15 +711,23 @@
* @details v が NULL であることを検証します
*/
#ifndef IUTEST_EXPECT_NULL
# define IUTEST_EXPECT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_EXPECT_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_EXPECT_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
# else
# define IUTEST_EXPECT_NULL(v) IUTEST_TEST_NULL(v, IUTEST_EXPECT_FAILURE)
# endif
#endif
/**
* @ingroup IUTEST_EXPECT_
* @brief NOT NULL テスト
* @details v が NULL でないことを検証します
*/
#ifndef IUTEST_EXPECT_NOTNULL
# define IUTEST_EXPECT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_EXPECT_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_EXPECT_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_EXPECT_FAILURE)
# else
# define IUTEST_EXPECT_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_EXPECT_FAILURE)
# endif
#endif

/**
Expand Down Expand Up @@ -1067,15 +1083,23 @@
* @details v が NULL であることを検証します
*/
#ifndef IUTEST_INFORM_NULL
# define IUTEST_INFORM_NULL(v) IUTEST_TEST_NULL(v, IUTEST_INFORM_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_INFORM_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_INFORM_FAILURE)
# else
# define IUTEST_INFORM_NULL(v) IUTEST_TEST_NULL(v, IUTEST_INFORM_FAILURE)
# endif
#endif
/**
* @ingroup IUTEST_INFORM_
* @brief NOT NULL テスト
* @details v が NULL でないことを検証します
*/
#ifndef IUTEST_INFORM_NOTNULL
# define IUTEST_INFORM_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_INFORM_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_INFORM_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_INFORM_FAILURE)
# else
# define IUTEST_INFORM_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_INFORM_FAILURE)
# endif
#endif

/**
Expand Down Expand Up @@ -1413,15 +1437,23 @@
* @details v が NULL であることを検証します
*/
#ifndef IUTEST_ASSUME_NULL
# define IUTEST_ASSUME_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSUME_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_ASSUME_NULL(...) IUTEST_TEST_NULL((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
# else
# define IUTEST_ASSUME_NULL(v) IUTEST_TEST_NULL(v, IUTEST_ASSUME_FAILURE)
# endif
#endif
/**
* @ingroup IUTEST_ASSUME_
* @brief NOT NULL テスト
* @details v が NULL でないことを検証します
*/
#ifndef IUTEST_ASSUME_NOTNULL
# define IUTEST_ASSUME_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSUME_FAILURE)
# ifndef IUTEST_NO_VARIADIC_MACROS
# define IUTEST_ASSUME_NOTNULL(...) IUTEST_TEST_NOTNULL((__VA_ARGS__), IUTEST_ASSUME_FAILURE)
# else
# define IUTEST_ASSUME_NOTNULL(v) IUTEST_TEST_NOTNULL(v, IUTEST_ASSUME_FAILURE)
# endif
#endif

/**
Expand Down
5 changes: 3 additions & 2 deletions include/iutest_ver.hpp
Expand Up @@ -17,11 +17,11 @@

//======================================================================
// define
#define IUTEST_VER 0x01160406u //!< iutest version 1.16.4.6
#define IUTEST_VER 0x01160407u //!< iutest version 1.16.4.7
#define IUTEST_MAJORVER 0x01u //!< Major Version
#define IUTEST_MINORVER 0x16u //!< Minor Version
#define IUTEST_MICROVER 0x04u //!< Micro Version
#define IUTEST_REVISION 0x06u //!< Revision
#define IUTEST_REVISION 0x07u //!< Revision

#define IUTEST_BUILD IUTEST_MICROVER //!< @deprecated

Expand Down Expand Up @@ -122,6 +122,7 @@
<ul>
<li>v1.16.5.0
<ul>
<li>IUTEST_*_NULL, IUTEST_*_NOTNULL を可変長引数対応</li>
<li>ad_hoc_testresult の取得関数名を ad_hoc_test_result に変更</li>
<li>compatibility: iuutil に ad_hoc_testresult の取得関数を追加</li>
<li>iuwandbox で std-cxx の指定をするとオプションチェックで失敗する不具合を修正</li>
Expand Down
3 changes: 2 additions & 1 deletion projects/vscode/iutest.code-workspace
Expand Up @@ -9,7 +9,8 @@
"*.ipp": "cpp",
"future": "cpp",
"system_error": "cpp",
"random": "cpp"
"random": "cpp",
"algorithm": "cpp"
}
}
}
3 changes: 2 additions & 1 deletion test/GNUmakefile
@@ -1,7 +1,7 @@
#
# GNUMakefile
#
# Copyright (C) 2017, Takazumi Shirayanagi
# Copyright (C) 2017-2018, Takazumi Shirayanagi
# This software is released under the new BSD License,
# see LICENSE
#
Expand All @@ -24,6 +24,7 @@
#
# include
#
include ../utils/xcode.mk
include ../utils/gccversion.mk
include ../utils/clangversion.mk
include ../utils/cygwin.mk
Expand Down
69 changes: 69 additions & 0 deletions test/syntax_tests.cpp
Expand Up @@ -21,6 +21,16 @@
namespace syntax_tests
{

#ifndef IUTEST_NO_VARIADIC_MACROS

template<int A, int B>struct T
{
template<typename U>
static U call(U v) { return v; }
};

#endif

IUTEST_PRAGMA_WARN_PUSH()
IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE()

Expand All @@ -36,6 +46,20 @@ IUTEST(SyntaxTest, True)
IUTEST_ASSUME_TRUE(b) << b;
}

#ifndef IUTEST_NO_VARIADIC_MACROS
IUTEST(SyntaxTest, VariadicTrue)
{
if( bool b = true )
IUTEST_ASSERT_TRUE(T<0,0>::call(b)) << b;
if( bool b = true )
IUTEST_EXPECT_TRUE(T<0,0>::call(b)) << b;
if( bool b = true )
IUTEST_INFORM_TRUE(T<0,0>::call(b)) << b;
if( bool b = true )
IUTEST_ASSUME_TRUE(T<0,0>::call(b)) << b;
}
#endif

IUTEST(SyntaxTest, False)
{
if( bool b = false )
Expand All @@ -48,6 +72,22 @@ IUTEST(SyntaxTest, False)
IUTEST_ASSUME_FALSE(b) << b;
}

#ifndef IUTEST_NO_VARIADIC_MACROS

IUTEST(SyntaxTest, VariadicFalse)
{
if( bool b = false )
IUTEST_ASSERT_FALSE(T<0,0>::call(b)) << b;
if( bool b = false )
IUTEST_EXPECT_FALSE(T<0,0>::call(b)) << b;
if( bool b = false )
IUTEST_INFORM_FALSE(T<0,0>::call(b)) << b;
if( bool b = false )
IUTEST_ASSUME_FALSE(T<0,0>::call(b)) << b;
}

#endif

IUTEST(SyntaxTest, EQ)
{
if( int x = 1 )
Expand Down Expand Up @@ -199,6 +239,21 @@ IUTEST(SyntaxTest, Null)
IUTEST_ASSUME_NULL(p) << x;
}

#ifndef IUTEST_NO_VARIADIC_MACROS
IUTEST(SyntaxTest, VariadicNull)
{
int* p = NULL;
if( int x = 1 )
IUTEST_ASSERT_NULL(T<0,0>::call(p)) << x;
if( int x = 1 )
IUTEST_EXPECT_NULL(T<0,0>::call(p)) << x;
if( int x = 1 )
IUTEST_INFORM_NULL(T<0,0>::call(p)) << x;
if( int x = 1 )
IUTEST_ASSUME_NULL(T<0,0>::call(p)) << x;
}
#endif

IUTEST(SyntaxTest, NotNull)
{
if( void* p = this )
Expand All @@ -211,6 +266,20 @@ IUTEST(SyntaxTest, NotNull)
IUTEST_ASSUME_NOTNULL(p) << p;
}

#ifndef IUTEST_NO_VARIADIC_MACROS
IUTEST(SyntaxTest, VariadicNotNull)
{
if( void* p = this )
IUTEST_ASSERT_NOTNULL(T<0,0>::call(p)) << p;
if( void* p = this )
IUTEST_EXPECT_NOTNULL(T<0,0>::call(p)) << p;
if( void* p = this )
IUTEST_INFORM_NOTNULL(T<0,0>::call(p)) << p;
if( void* p = this )
IUTEST_ASSUME_NOTNULL(T<0,0>::call(p)) << p;
}
#endif

IUTEST(SyntaxTest, Same)
{
int v = 0;
Expand Down
9 changes: 8 additions & 1 deletion utils/clangversion.mk
Expand Up @@ -8,6 +8,8 @@
# see LICENSE
#

ifneq ($(CXX_NAME),clang++)

ifeq ($(findstring clang++, $(CXX)), clang++)
IUTEST_CLANG_CXX=$(CXX)
else
Expand All @@ -17,7 +19,6 @@ IUTEST_CLANG_CXX=$(CCC_CXX)
endif
endif


ifdef IUTEST_CLANG_CXX

CXX_NAME=clang++
Expand All @@ -37,6 +38,12 @@ CLANGMAJOR:=0
CLANGMINOR:=0
endif

endif

endif

ifeq ($(CXX_NAME),clang++)

STD_CPP03=c++98
STD_GNU03=gnu++98

Expand Down

0 comments on commit 38a6140

Please sign in to comment.