Sie können für diese Funktion keinen Komponententest schreiben, da Sie ohne Systemaufruf keinen Speicher auf dem Heap zuweisen können. Daher ist dies ein Integrationstest, da Sie die zu testende Einheit nicht vom Betriebssystem isolieren können.
Ich würde eine neue, kleine ausführbare Datei erstellen, die allocation_routine
aufruft für n
Bytes. Je nachdem was allocation_routine
zurückgeben soll, können Sie behaupten, dass es nicht nullptr
ist . Schreiben Sie dann n
Bytes in diesen Speicherbereich. Kompilieren und verknüpfen Sie es mit dem Address Sanitizer (verfügbar sowohl mit gcc
und clang
), versuchen Sie dann, es in den Testrunner Ihrer Anwendung zu integrieren (ctest
usw.).
Möglicherweise möchten Sie auch den verfügbaren Heap über das POSIX-Setrlimit einschränken, um das Verhalten zu überprüfen, wenn die Zuordnung fehlschlägt.