Découvrez quelle solution de test API est arrivée en tête dans le rapport GigaOm Radar. Obtenez votre rapport d'analyse gratuit >>

Découvrez quelle solution de test API est arrivée en tête dans le rapport GigaOm Radar. Obtenez votre rapport d'analyse gratuit >>
Aller à la section
Vous avez peut-être utilisé CMake dans votre analyse statique. Mais avez-vous essayé d'utiliser le test Parasoft C/C++ avec CMake ? Voici une ventilation de la façon d'utiliser C/C++test pour exécuter une analyse statique sur des projets basés sur CMake.
Aller à la section
Aller à la section
CMake est l'un des outils les plus populaires pour créer, tester et empaqueter des logiciels. Le test Parasoft C/C++ rationalise le intégration avec des projets basés sur CMake en simplifiant le gestion de la construction processus. Plus le projet est grand, plus l'impact est important.
L'équipe Parasoft a développé ces améliorations lors du déploiement de notre solution de test pour un grand constructeur automobile bien connu.
Notre objectif était d'introduire des capacités d'analyse statique et de tests unitaires dans des projets vastes et complexes basés sur le plateforme AUTOSAR adaptative. Ces projets étaient composés de plusieurs bibliothèques statiques et dynamiques et de nombreux exécutables.
Dans cet article de blog, je vais vous expliquer comment intégrer Test C / C ++ capacités d'analyse statique dans les projets basés sur CMake. Vous pouvez faire la même chose pour les tests unitaires.
Pour effectuer une analyse de code statique, des outils tels que C/C++test nécessitent des informations sur la construction du projet. Généralement, il suffit de lignes de commande de compilation pour appeler les fichiers destinés à l'analyse.
Avec le test C/C++, il existe différentes manières d'intégrer le processus de construction. Différents systèmes de construction peuvent nécessiter différentes approches. Avec les projets basés sur CMake, d'excellentes options sont disponibles pour effectuer une analyse statique sans effort et nécessiter des modifications minimes du flux de travail. Cela permet une intégration fluide avec le test C/C++.
Les scripts CMake peuvent être facilement configurés pour générer des informations de compilation sous forme de fichier JSON. Vous obtenez généralement un fichier JSON par build. Ce fichier JSON contient tout ce dont l'analyseur statique a besoin pour effectuer l'analyse du code. Le fichier JSON avec les lignes de commande de compilation est alors créé au moment de la génération du script de construction. C/C++test comprend ce format et peut l'utiliser directement comme entrée pour effectuer une analyse statique.
La procédure pour exécuter l'analyse statique sur des projets basés sur CMake comprend les étapes suivantes:
C'est tout!
Passons en revue un exemple d'exécution d'analyse statique sur des projets basés sur CMake. Si vous ne l'avez pas déjà fait, installer l'édition standard de C++test.
Après l'installation, allez dans le répertoire d'installation et dans le sous-dossier des exemples. Faites une copie de l'exemple Timer et entrez dans le répertoire Timer. (Ces étapes utilisent Linux comme plate-forme de développement.)
Vous devriez voir le contenu suivant:
Cet exemple est préparé pour être construit avec un makefile «statique» situé dans le répertoire principal ou en utilisant les scripts de construction générés par CMake.
Créez un dossier de construction dans le répertoire Timer à l'aide de cd. Appelez la génération de scripts de construction à l'aide de CMake.
Si nous listons le contenu du répertoire de construction après génération, nous verrons que le fichier compile_commands.json a été généré.
Pour l'exemple de projet suivant, la génération de fichiers JSON d'informations de compilation a déjà été activée.
Nous sommes maintenant prêts à exécuter l'analyse statique à l'aide du fichier compile_commands.json généré. Un grand avantage est que nous pouvons ajouter le fichier .json directement dans l'interface de ligne de commande du produit standard de test Parasoft C / C ++:
C'est tout. L'analyse statique est effectuée et les résultats sont renvoyés.
Cette approche d'intégration peut être utilisée pour l'intégration continue (CI) ou localement sur le bureau du développeur. La seule modification qui pourrait être nécessaire est l'activation de la génération du fichier compile_command.json.
Si vous n'avez pas activé la génération du fichier compile_command.json dans votre projet, vous pouvez le faire de deux manières.
Définissez les options CMAKE_EXPORT_COMPILE_COMMANDS sur ON dans le fichier CMakeLists.txt.
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
Ajoutez-le à l'appel en ligne de commande de cmake lors de la génération des scripts de construction.
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS = 1
C'est tout ce qu'il y a à faire pour intégrer l'analyse statique dans les projets basés sur CMake.