Учитывая следующий пример
#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