Non è possibile scrivere uno unit test per questa funzione, poiché non è possibile allocare memoria sull'heap senza una chiamata di sistema. Si tratta quindi di un test di integrazione, in quanto non è possibile isolare l'unità sottoposta a test dal sistema operativo.
Creerei un nuovo, piccolo eseguibile che chiami allocation_routine
per n
byte. A seconda di cosa allocation_routine
dovrebbe tornare, puoi affermare che non è nullptr
. Quindi, scrivi n
byte in questa regione di memoria. Compilalo e collegalo utilizzando il disinfettante per indirizzi (disponibile sia con gcc
e clang
), quindi prova a integrarlo nel test runner della tua applicazione (ctest
ecc.).
Potresti anche voler limitare l'heap disponibile tramite il setrlimit POSIX per verificare il comportamento quando l'allocazione fallisce.