mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
Fiex bug of shared Data module.
This commit is contained in:
parent
aaa3fb036d
commit
a9adff1a60
|
@ -188,4 +188,36 @@ namespace SharedDataTest
|
|||
}
|
||||
ILogUnInit();
|
||||
}
|
||||
// ../output_files/test/bin/SharedDataTest --gtest_filter=SharedDataTest.Demo7
|
||||
TEST(SharedDataTest, Demo7)
|
||||
{
|
||||
constexpr int WRITABLE_DATA = 189;
|
||||
CreateLogModule();
|
||||
ILogInit(LOG_INSTANCE_TYPE_END);
|
||||
constexpr int PROJECT_ID = 9;
|
||||
SharedData *sharedDataPrimary = CreateSharedData(SHARER_NAME_PRIMARY, "./shared_file", PROJECT_ID);
|
||||
SharedData *sharedDataMinor = CreateSharedData(SHARER_NAME_MINOR, "./shared_file", PROJECT_ID);
|
||||
if (nullptr != sharedDataPrimary)
|
||||
{
|
||||
IMakeSharedData(sharedDataPrimary, sizeof(int), sizeof(int));
|
||||
ISetWritableData(sharedDataPrimary, (void *)&WRITABLE_DATA, sizeof(int));
|
||||
}
|
||||
if (nullptr != sharedDataMinor)
|
||||
{
|
||||
constexpr int DEFAULT_DATA = 0;
|
||||
int readableData = DEFAULT_DATA;
|
||||
IMakeSharedData(sharedDataMinor, sizeof(int), sizeof(int));
|
||||
StatusCode code = IGetReadableData(sharedDataMinor, &readableData, sizeof(int));
|
||||
PrintStringCode(code);
|
||||
LogInfo("readableData = %d\n", readableData);
|
||||
EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK);
|
||||
EXPECT_EQ(readableData, WRITABLE_DATA);
|
||||
IFree(sharedDataMinor);
|
||||
}
|
||||
if (nullptr != sharedDataPrimary)
|
||||
{
|
||||
IFree(sharedDataPrimary);
|
||||
}
|
||||
ILogUnInit();
|
||||
}
|
||||
} // namespace SharedDataTest
|
|
@ -128,17 +128,25 @@ void SharedDataCpp::SetWritableMemory(void *buf, const unsigned int &bufLength)
|
|||
if (SHARER_NAME_PRIMARY == mSharerName && bufLength == mMinorReadSize)
|
||||
{
|
||||
UserDataHeader *readableHeader = (UserDataHeader *)((char *)mSharedMemeory);
|
||||
if (memcmp(readableHeader->mUserName, USER_NAME_INIT_NAME, USER_NAME_BUF_LENGTH) == 0 &&
|
||||
mPrimaryReadSize == readableHeader->mDataLength)
|
||||
if (memcmp(readableHeader->mUserName, USER_NAME_INIT_NAME, USER_NAME_BUF_LENGTH) == 0)
|
||||
{
|
||||
if (mPrimaryReadSize == readableHeader->mDataLength)
|
||||
{
|
||||
memcpy((char *)mSharedMemeory + sizeof(UserDataHeader) * THERE_TWO_USER_DATA_HEADER + mPrimaryReadSize,
|
||||
buf,
|
||||
bufLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogError("Peer not match.\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy((char *)mSharedMemeory + sizeof(UserDataHeader) * THERE_TWO_USER_DATA_HEADER + mPrimaryReadSize,
|
||||
buf,
|
||||
bufLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogError("Peer not match.\n");
|
||||
}
|
||||
}
|
||||
else if (SHARER_NAME_MINOR == mSharerName && bufLength == mPrimaryReadSize)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user