Как сопоставить массив в стиле C в Google Mock - PullRequest
0 голосов
/ 09 октября 2018

Учитывая следующий пример

#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <stdint.h>


using namespace ::testing;

class Tested
{
public:
    virtual void setArray(const uint32_t[3]) {};
};

class Tested_mock: public Tested
{
public:
    MOCK_METHOD1(setArray, void(const uint32_t[3]));
};

class TestRunner: public ::testing::Test
{
public:
    StrictMock<Tested_mock> t;
};

TEST_F(TestRunner, test)
{

    uint32_t a[3] = {1UL, 2UL, 3UL};

    EXPECT_CALL(t, setArray(_)).With(ElementsAreArray(a));

    t.setArray(a);
}

я не понимаю, почему я не могу скомпилировать этот фрагмент при изменении аргумента на uint32_t* работает.Есть ли у Gmock проблемы с аргументами массива фиксированного размера?

Вы можете найти выходные данные компиляции здесь https://pastebin.com/72b4iYqs

...