GNU/Linux >> Znalost Linux >  >> Linux

Můžeme alokaci paměti unit testovat?

Pro tuto funkci nemůžete napsat test jednotky, protože nemůžete alokovat paměť na haldě bez systémového volání. Jedná se tedy o integrační test, protože nejste schopni izolovat testovanou jednotku od operačního systému.

Vytvořil bych nový, malý spustitelný soubor, který volá allocation_routine pro n bajtů. Podle toho, co allocation_routine se má vrátit, můžete tvrdit, že to není nullptr . Poté napište n bajtů do této oblasti paměti. Zkompilujte a propojte jej pomocí nástroje na dezinfekci adres (k dispozici s oběma gcc a clang ), pak jej zkuste integrovat do testovacího programu vaší aplikace (ctest atd.).

Můžete také chtít omezit dostupnou haldu pomocí POSIX setrlimit, abyste ověřili chování, když alokace selže.


Linux
  1. Systemd:Nelze zakázat vygenerovaný soubor jednotky?

  2. Jak mohu měřit skutečné využití paměti aplikací nebo procesem?

  3. Jak mohu spustit funkci ze skriptu v příkazovém řádku?

  1. Jak mohu otestovat svůj Bash skript na starších verzích Bash?

  2. -bash:fork:Nelze alokovat paměť

  3. Mohu otestovat svou vlastní síť?

  1. Jak mohu otestovat paměť RAM na poškození dat v systému založeném na ARM?

  2. Jak mohu rezervovat blok paměti z jádra Linuxu?

  3. Jak funguje alokace zásobníku v Linuxu?