Building the AWS C++ SDK with CUSTOM_MEMORY_MANAGEMENT on fails unit tests

0

I am trying to build the AWS C++ SDK to use with the Unreal game engine. I have been using it for a while, however after recently updating my Unreal plugin with the latest SDK components, I ran into issues (crashes) because Unreal has its own custom memory management which does not seem compatible with the AWS SDK's.

To resolve this I have tried to override AWS's memory manager with one compatible with Unreal, by implementing Aws::Utils::Memory::MemorySystemInterface and calling Aws::Utils::Memory::InitializeAWSMemorySystem(AWSMemoryManager);

This, however, doesn't work unless the SDK has been built with the CUSTOM_MEMORY_MANAGEMENT flag. So, I went back to the SDK and tried to build it with custom memory management on with the following commands:

cmake.exe "../aws-sdk-cpp" -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="core;firehose;cognito-identity" -DCUSTOM_MEMORY_MANAGEMENT=1 -DCPP_STANDARD=17 -DENABLE_UNITY_BUILD=1
MSBuild.exe ALL_BUILD.vcxproj -p:Configuration=Release

However, this seems to result in aws-core failing its unit tests. I get the following errors:

...\AWS\sdk\aws-sdk-cpp\aws-cpp-sdk-core-tests\RunTests.cpp(40): error : Expected equality of these values: [...\AWS\sdk\membuild\aws-cpp-sdk-core-tests\aws-cpp-sdk-core-tests.vcxproj]
    memorySystem.GetCurrentOutstandingAllocations()
      Which is: 37
    0ULL
      Which is: 0
...\AWS\sdk\aws-sdk-cpp\aws-cpp-sdk-core-tests\RunTests.cpp(40): error : Expected equality of these values: [...\AWS\sdk\membuild\aws-cpp-sdk-core-tests\aws-cpp-sdk-core-tests.vcxproj]
    memorySystem.GetCurrentBytesAllocated()
      Which is: 3472
    0ULL
      Which is: 0
...\AWS\sdk\aws-sdk-cpp\aws-cpp-sdk-core-tests\RunTests.cpp(40): error : Value of: memorySystem.IsClean() [...\AWS\sdk\membuild\aws-cpp-sdk-core-tests\aws-cpp-sdk-core-tests.vcxproj]
    Actual: false
  Expected: true

Does anyone have any clue why these unit tests are failing and how I can go about resolving it?

JonJWD
asked 3 months ago36 views
No Answers

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions