Improve test code for bug.
This commit is contained in:
		
							parent
							
								
									a9adff1a60
								
							
						
					
					
						commit
						7867d78b42
					
				| 
						 | 
				
			
			@ -51,4 +51,6 @@ add_custom_command(
 | 
			
		|||
    COMMAND make SharedDataTest_code_check
 | 
			
		||||
    WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/
 | 
			
		||||
)
 | 
			
		||||
endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
define_file_name(${TARGET_NAME})
 | 
			
		||||
| 
						 | 
				
			
			@ -220,4 +220,161 @@ namespace SharedDataTest
 | 
			
		|||
        }
 | 
			
		||||
        ILogUnInit();
 | 
			
		||||
    }
 | 
			
		||||
    // ../output_files/test/bin/SharedDataTest --gtest_filter=SharedDataTest.UNIT_SharedData_DEME_Demo7
 | 
			
		||||
    TEST(SharedDataTest, UNIT_SharedData_DEME_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) * 2, 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_NE(code.mStatusCode, STATUS_CODE_OK);
 | 
			
		||||
            EXPECT_EQ(readableData, DEFAULT_DATA);
 | 
			
		||||
            IFree(sharedDataMinor);
 | 
			
		||||
        }
 | 
			
		||||
        if (nullptr != sharedDataPrimary)
 | 
			
		||||
        {
 | 
			
		||||
            IFree(sharedDataPrimary);
 | 
			
		||||
        }
 | 
			
		||||
        ILogUnInit();
 | 
			
		||||
    }
 | 
			
		||||
    // ../output_files/test/bin/SharedDataTest --gtest_filter=SharedDataTest.UNIT_SharedData_DEME_Demo8
 | 
			
		||||
    TEST(SharedDataTest, UNIT_SharedData_DEME_Demo8)
 | 
			
		||||
    {
 | 
			
		||||
        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)
 | 
			
		||||
        {
 | 
			
		||||
            int writableData[2] = {0};
 | 
			
		||||
            IMakeSharedData(sharedDataPrimary, sizeof(int), sizeof(int) * 2);
 | 
			
		||||
            ISetWritableData(sharedDataPrimary, &writableData, sizeof(writableData));
 | 
			
		||||
        }
 | 
			
		||||
        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_NE(code.mStatusCode, STATUS_CODE_OK);
 | 
			
		||||
            EXPECT_EQ(readableData, DEFAULT_DATA);
 | 
			
		||||
            IFree(sharedDataMinor);
 | 
			
		||||
        }
 | 
			
		||||
        if (nullptr != sharedDataPrimary)
 | 
			
		||||
        {
 | 
			
		||||
            IFree(sharedDataPrimary);
 | 
			
		||||
        }
 | 
			
		||||
        ILogUnInit();
 | 
			
		||||
    }
 | 
			
		||||
    // ../output_files/test/bin/SharedDataTest --gtest_filter=SharedDataTest.UNIT_SharedData_DEME_Demo9
 | 
			
		||||
    TEST(SharedDataTest, UNIT_SharedData_DEME_Demo9)
 | 
			
		||||
    {
 | 
			
		||||
        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) * 2);
 | 
			
		||||
            StatusCode code = IGetReadableData(sharedDataMinor, &readableData, sizeof(int));
 | 
			
		||||
            PrintStringCode(code);
 | 
			
		||||
            LogInfo("readableData = %d\n", readableData);
 | 
			
		||||
            EXPECT_NE(code.mStatusCode, STATUS_CODE_OK);
 | 
			
		||||
            EXPECT_EQ(readableData, DEFAULT_DATA);
 | 
			
		||||
            IFree(sharedDataMinor);
 | 
			
		||||
        }
 | 
			
		||||
        if (nullptr != sharedDataPrimary)
 | 
			
		||||
        {
 | 
			
		||||
            IFree(sharedDataPrimary);
 | 
			
		||||
        }
 | 
			
		||||
        ILogUnInit();
 | 
			
		||||
    }
 | 
			
		||||
    // ../output_files/test/bin/SharedDataTest --gtest_filter=SharedDataTest.UNIT_SharedData_DEME_Demo10
 | 
			
		||||
    TEST(SharedDataTest, UNIT_SharedData_DEME_Demo10)
 | 
			
		||||
    {
 | 
			
		||||
        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)
 | 
			
		||||
        {
 | 
			
		||||
            int readableData[2] = {0};
 | 
			
		||||
            IMakeSharedData(sharedDataMinor, sizeof(int) * 2, sizeof(int));
 | 
			
		||||
            StatusCode code = IGetReadableData(sharedDataMinor, readableData, sizeof(readableData));
 | 
			
		||||
            PrintStringCode(code);
 | 
			
		||||
            LogInfo("readableData = %d\n", readableData);
 | 
			
		||||
            EXPECT_NE(code.mStatusCode, STATUS_CODE_OK);
 | 
			
		||||
            IFree(sharedDataMinor);
 | 
			
		||||
        }
 | 
			
		||||
        if (nullptr != sharedDataPrimary)
 | 
			
		||||
        {
 | 
			
		||||
            IFree(sharedDataPrimary);
 | 
			
		||||
        }
 | 
			
		||||
        ILogUnInit();
 | 
			
		||||
    }
 | 
			
		||||
    // ../output_files/test/bin/SharedDataTest --gtest_filter=SharedDataTest.UNIT_SharedData_DEME_Demo11
 | 
			
		||||
    TEST(SharedDataTest, UNIT_SharedData_DEME_Demo11)
 | 
			
		||||
    {
 | 
			
		||||
        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);
 | 
			
		||||
        IMakeSharedData(sharedDataMinor, sizeof(int), sizeof(int));
 | 
			
		||||
        if (nullptr != sharedDataPrimary)
 | 
			
		||||
        {
 | 
			
		||||
            IMakeSharedData(sharedDataPrimary, sizeof(int), sizeof(int));
 | 
			
		||||
            ISetWritableData(sharedDataPrimary, (void *)&WRITABLE_DATA, sizeof(int));
 | 
			
		||||
        }
 | 
			
		||||
        if (nullptr != sharedDataMinor)
 | 
			
		||||
        {
 | 
			
		||||
            int readableData = 0;
 | 
			
		||||
            StatusCode code = IGetReadableData(sharedDataMinor, &readableData, sizeof(int));
 | 
			
		||||
            PrintStringCode(code);
 | 
			
		||||
            LogInfo("readableData = %d\n", readableData);
 | 
			
		||||
            EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK);
 | 
			
		||||
            EXPECT_EQ(readableData, 189);
 | 
			
		||||
            IFree(sharedDataMinor);
 | 
			
		||||
        }
 | 
			
		||||
        if (nullptr != sharedDataPrimary)
 | 
			
		||||
        {
 | 
			
		||||
            IFree(sharedDataPrimary);
 | 
			
		||||
        }
 | 
			
		||||
        ILogUnInit();
 | 
			
		||||
    }
 | 
			
		||||
} // namespace SharedDataTest
 | 
			
		||||
| 
						 | 
				
			
			@ -13,6 +13,7 @@
 | 
			
		|||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
#include "SharedMemory.h"
 | 
			
		||||
#include "SharedDataCode.h"
 | 
			
		||||
#include "ILog.h"
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +45,12 @@ StatusCode SharedMemory::MakeSharedMemory(const int &size)
 | 
			
		|||
    mId = shmget(key, size, IPC_CREAT | 0666);
 | 
			
		||||
    if (mId == SHMGET_FAILED)
 | 
			
		||||
    {
 | 
			
		||||
        printf("errno = %d, errmsg = %s\n", errno, strerror(errno));
 | 
			
		||||
        constexpr int MAYBE_CODE_22_MEANS_PEER_SIZE_WAS_NOT_MATCH = 22;
 | 
			
		||||
        if (MAYBE_CODE_22_MEANS_PEER_SIZE_WAS_NOT_MATCH == errno)
 | 
			
		||||
        {
 | 
			
		||||
            LogInfo("errno = %d, errmsg = %s\n", errno, strerror(errno));
 | 
			
		||||
            return CreateSharedDataCode(SHARED_DATA_CODE_WRONG_PEER_PARAMETERS);
 | 
			
		||||
        }
 | 
			
		||||
        LogError("shmget failed. memory size = %d\n", size);
 | 
			
		||||
        return CreateStatusCode(STATUS_CODE_NOT_OK);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user