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
gefragt vor 2 Jahren118 Aufrufe
Keine Antworten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen