GNU/Linux >> Linux Esercitazione >  >> Linux

Possiamo testare l'allocazione della memoria in unità?

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.


Linux
  1. Systemd:non è possibile disabilitare il file di unità generato?

  2. Come posso misurare l'effettivo utilizzo della memoria di un'applicazione o di un processo?

  3. Impossibile ottenere l'opzione di esclusione di rsync per escludere la directory

  4. Come verificare su quale porta è in esecuzione MySQL e se può essere connesso?

  5. Impossibile allocare memoria mentre nessun processo sembra utilizzare la memoria

Installazione dello strumento di test della memoria RAM Memtest+ su Redhat 7 Linux

-bash:fork:Impossibile allocare memoria

Linux può ripulire la memoria?

Come posso osservare la larghezza di banda della memoria?

Come funziona l'allocazione dello stack in Linux?

Docker-compose:impossibile compilare SENZA sudo ma posso eseguire i contenitori senza di esso