KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am using google mock to unit test my code, and I am trying to return, as an output argument, a set of values through a void*. uint32_t bigEndianTestValues[BIG_ENDIAN_FIELD_MAX_ELEMENTS] = {0xDEADBEEF, 0xFFFF0000, 0x00000000, 0x00A00F10, 0x11234211}; for (int i = 0; i < BIG_ENDIAN_FIELD_MAX_ELEMENTS; ++i) { EXPECT_CALL( deviceWindow, get(_,sizeof(bigEndianTestValues[0]),_,_) ) .WillOnce(SetArgPointee<2>(bigEndianTestValues[i])) .RetiresOnSaturation(); } My mock contains a method call as follows MOCK_METHOD4(get, void(const size_t, const size_t, void*, nNIAPALS100::tStatus&)); But I get the following error ....\include\gmock/gmock-actions.h(693) : error C2100: illegal indirection ....\gmock/gmock-actions.h(369) : see reference to function template instantiation 'void testing::internal::SetArgumentPointeeAction<N,A,kIsProto>::Perform<void,std::tr1::tuple<T0,T1,T2,T3>>(const ArgumentTuple &) const' being compiled with [ N=0x02, A=uint32_t, kIsProto=false, T0=size_t, T1=size_t, T2=void *, T3=nNIAPALS100::tStatus &, ArgumentTuple=std::tr1::tuple<size_t,size_t,void *,nNIAPALS100::tStatus &> ] z:\Perforce\jperetzm_JPERETZM-DT\ThirdPartyExports\googlemock\export\1.6\1.6.0a0\includes\gmock\include\gmock/gmock-actions.h(368) : while compiling class template member function 'void testing::Polymor phicAction<Impl>::MonomorphicImpl<F>::Perform(const std::tr1::tuple<T0,T1,T2,T3> &)' with [ Impl=testing::internal::SetArgumentPointeeAction<0x02,uint32_t,false>, F=void (size_t,size_t,void *,nNIAPALS100::tStatus &), T0=size_t, T1=size_t, T2=
Tags (comma-separated)
Save Edits
Cancel