GNU/Linux >> Tutoriels Linux >  >> Linux

Pouvons-nous tester l'unité d'allocation de mémoire ?

Vous ne pouvez pas écrire de test unitaire pour cette fonction, car vous ne pouvez pas allouer de mémoire sur le tas sans un appel système. Il s'agit donc d'un test d'intégration, car vous ne pouvez pas isoler l'unité testée du système d'exploitation.

Je créerais un nouveau petit exécutable qui appelle allocation_routine pour n octets. En fonction de quoi allocation_routine est censé revenir, vous pouvez affirmer qu'il n'est pas nullptr . Ensuite, écrivez n octets dans cette zone de mémoire. Compilez-le et liez-le à l'aide du nettoyeur d'adresses (disponible avec gcc et clang ), puis essayez de l'intégrer dans le test runner de votre application (ctest etc.).

Vous pouvez également restreindre le tas disponible via le setrlimit POSIX pour vérifier le comportement lorsque l'allocation échoue.


Linux
  1. Systemd :impossible de désactiver le fichier d'unité généré ?

  2. L'allocation de mémoire sous Linux est-elle non bloquante ?

  3. Comment tester sur quel port MySQL s'exécute et s'il peut être connecté ?

  4. Comment puis-je tester mon script Bash sur des versions plus anciennes de Bash ?

  5. -bash :fork :impossible d'allouer de la mémoire

Installation de l'outil de test de mémoire RAM Memtest+ sur Redhat 7 Linux

Impossible d'obtenir l'option d'exclusion de rsync pour exclure le répertoire

Comment puis-je exécuter une fonction à partir d'un script en ligne de commande ?

Linux peut-il nettoyer la mémoire ?

Comment observer la bande passante mémoire ?

Comment fonctionne l'allocation de pile sous Linux ?