Skip to content

Commit

Permalink
Merge 550f835 into 4376fc9
Browse files Browse the repository at this point in the history
  • Loading branch information
srz-zumix committed Sep 3, 2020
2 parents 4376fc9 + 550f835 commit d7a8237
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
21 changes: 21 additions & 0 deletions test/prod_tests.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,27 @@ class ProdClass2
int m_x;
};

class ProtectedProdClass
{
public:
ProtectedProdClass(void) : m_x(0) {}

int GetX(void) { return m_x; }
protected:
int m_x;
void SetX(int x) { m_x = x; }

int GetProtectedX() const { return m_x; }
// template<typename T>
// T GetProtectedX() const { return static_cast<T>(m_x); }

public:
static int GetY(void) { return m_y; }
protected:
static int m_y;
static void SetY(int x) { m_y = x; }
};

#if IUTEST_HAS_PEEP

IUTEST_MAKE_PEEP(int ProdClass::*, ProdClass, m_a);
Expand Down
35 changes: 35 additions & 0 deletions test/prod_tests1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ namespace prod_test
{

int ProdClass::m_y = 0;
int ProtectedProdClass::m_y = 0;

}

Expand Down Expand Up @@ -112,13 +113,16 @@ IUTEST_INSTANTIATE_TYPED_TEST_SUITE_P(A, ProdTypeParamTest, ::iutest::Types<int>
#if IUTEST_HAS_PEEP

static ProdClass2 s_prod2;
static ProtectedProdClass s_protected;

// peep を使ってのアクセス
IUTEST_MAKE_PEEP(int ProdClass::*, ProdClass, m_x);
IUTEST_MAKE_PEEP(const int ProdClass::*, ProdClass, m_c);

IUTEST_MAKE_PEEP(int ProdClass2::*, ProdClass2, m_x);

IUTEST_MAKE_PEEP(int ProtectedProdClass::*, ProtectedProdClass, m_x);

IUTEST(PeepTest, PeepMacro)
{
IUTEST_PEEP_GET(s_prod, ProdClass, m_x) = 4;
Expand All @@ -130,6 +134,11 @@ IUTEST(PeepTest, PeepMacro)
IUTEST_EXPECT_EQ(42, s_prod2.GetX());

IUTEST_EXPECT_EQ(42, IUTEST_PEEP_GET(s_prod2, ProdClass2, m_x));

IUTEST_PEEP_GET(s_protected, ProtectedProdClass, m_x) = 42;
IUTEST_EXPECT_EQ(42, s_protected.GetX());

IUTEST_EXPECT_EQ(42, IUTEST_PEEP_GET(s_protected, ProtectedProdClass, m_x));
}

#if IUTEST_HAS_PEEP_CLASS
Expand Down Expand Up @@ -182,6 +191,7 @@ IUTEST(PeepClassTest, Const)
#endif

IUTEST_MAKE_PEEP(int *, ProdClass, m_y);
IUTEST_MAKE_PEEP(int *, ProtectedProdClass, m_y);

IUTEST(PeepTest, StaticPeep)
{
Expand All @@ -191,6 +201,14 @@ IUTEST(PeepTest, StaticPeep)
IUTEST_EXPECT_EQ(4, IUTEST_PEEP_STATIC_GET(ProdClass, m_y));
}

IUTEST(PeepTest, StaticProtectedPeep)
{
IUTEST_PEEP_STATIC_GET(ProtectedProdClass, m_y) = 4;
IUTEST_EXPECT_EQ(4, ProtectedProdClass::GetY());

IUTEST_EXPECT_EQ(4, IUTEST_PEEP_STATIC_GET(ProtectedProdClass, m_y));
}

#if IUTEST_HAS_PEEP_CLASS
IUTEST(PeepClassTest, StaticPeep)
{
Expand All @@ -213,6 +231,8 @@ IUTEST(PeepClassTest, StaticPeep)

IUTEST_MAKE_PEEP(void (ProdClass::*)(int), ProdClass, SetX);
IUTEST_MAKE_PEEP(int (ProdClass::*)() const, ProdClass, ConstGetX);
IUTEST_MAKE_PEEP(void (ProtectedProdClass::*)(int), ProtectedProdClass, SetX);
IUTEST_MAKE_PEEP(int (ProtectedProdClass::*)() const, ProtectedProdClass, GetProtectedX);

IUTEST(PeepTest, Function)
{
Expand All @@ -221,6 +241,14 @@ IUTEST(PeepTest, Function)
IUTEST_EXPECT_EQ(100, IUTEST_PEEP_GET(s_prod, ProdClass, ConstGetX)());
}

IUTEST(PeepTest, ProtectedFunction)
{
IUTEST_PEEP_GET(s_protected, ProtectedProdClass, SetX)(100);
IUTEST_EXPECT_EQ(100, s_protected.GetX());

IUTEST_EXPECT_EQ(100, IUTEST_PEEP_GET(s_protected, ProtectedProdClass, GetProtectedX)());
}

#if IUTEST_HAS_PEEP_CLASS
IUTEST(PeepClassTest, Function)
{
Expand All @@ -238,13 +266,20 @@ IUTEST(PeepClassTest, Function)
#if IUTEST_HAS_PEEP_STATIC_FUNC

IUTEST_MAKE_PEEP(void (*)(int), ProdClass, SetY);
IUTEST_MAKE_PEEP(void (*)(int), ProtectedProdClass, SetY);

IUTEST(PeepTest, StaticFunction)
{
IUTEST_PEEP_STATIC_GET(ProdClass, SetY)(100);
IUTEST_EXPECT_EQ(100, ProdClass::GetY());
}

IUTEST(PeepTest, StaticProtectedFunction)
{
IUTEST_PEEP_STATIC_GET(ProtectedProdClass, SetY)(100);
IUTEST_EXPECT_EQ(100, ProtectedProdClass::GetY());
}

// object 版
#if IUTEST_HAS_PEEP_CLASS
IUTEST(PeepClassTest, StaticFunction)
Expand Down

0 comments on commit d7a8237

Please sign in to comment.