Contenuto principale

Esecuzione di Polyspace Bug Finder sul server e caricamento dei risultati sull'interfaccia web

Polyspace® Bug Finder™ Server™ controlla il codice C/C++ per individuare eventuali difetti e violazioni degli standard di codifica, quindi carica i risultati su un'interfaccia web per la revisione del codice.

È possibile eseguire Bug Finder come parte dell’integrazione continua. Impostare gli script che eseguono un'analisi Bug Finder a intervalli regolari o in base ai nuovi invii di codice. Gli script possono caricare i risultati di analisi per la revisione sull'interfaccia web di Polyspace Access e inviare, opzionalmente, e-mail ai proprietari dei file sorgente con i risultati di Polyspace. I proprietari possono aprire l'interfaccia web per revisionare solo i nuovi risultati del loro invio e quindi correggere o giustificare i problemi.

In un progetto o team tipico, Polyspace Bug Finder Server viene eseguito periodicamente su alcuni server di test e carica i risultati per la revisione. Ogni sviluppatore e ingegnere della qualità del team dispone di una licenza Polyspace Access™ per visualizzare i risultati nell'interfaccia web per l'analisi e la correzione dei bug.

Prerequisiti

Per eseguire un'analisi Bug Finder su un server e revisionare i risultati nell'interfaccia web di Polyspace Access, eseguire questa configurazione una tantum:

  • Per eseguire l'analisi, installare un'istanza del prodotto Polyspace Bug Finder Server.

  • Per caricare i risultati, impostare i componenti necessari per ospitare l'interfaccia web di Polyspace Access.

  • Per visualizzare i risultati caricati, l'utente e ogni sviluppatore che revisiona i risultati devono disporre di una licenza Polyspace Access.

Vedere Install Polyspace Server and Access Products.

Controllo dell'installazione di Polyspace

Per controllare se Polyspace Bug Finder Server è installato:

  1. Aprire una finestra di comando. Accedere a polyspaceserverroot\polyspace\bin. In questo caso, polyspaceserverroot è la cartella di installazione di PolyspaceBug FinderServer, ad esempio C:\Program Files\Polyspace Server\R2025b. Vedere anche Installation Folder.

  2. Inserire:

    polyspace-bug-finder-server -help

Dovrebbe essere visualizzato l'elenco delle opzioni consentite per un'analisi Bug Finder.

Per controllare se l'interfaccia web di Polyspace Access è impostata per il caricamento:

  1. Accedere nuovamente a polyspaceserverroot\polyspace\bin.

  2. Inserire:

    polyspace-access -host hostName -port portNumber -create-project testProject

    In questo caso, hostName è il nome del server che ospita il server web Polyspace Access. Per un server ospitato localmente, utilizzare localhost. portNumber è il numero di porta opzionale del server. Se si omette il numero di porta, viene utilizzato 9443.

    Se l'impostazione è stata completata, viene creato un progetto denominato testProject nell'interfaccia web di Polyspace Access.

    Ogni volta che si utilizza il comando polyspace-access, viene richiesto di inserire il nome utente e la password. Per evitare di inserire ogni volta le informazioni di accesso, fornire il nome utente e una versione crittografata della password con il comando. Per creare una password crittografata, inserire:

    polyspace-access -encrypt-password

    Inserire il nome utente e la password. Copiare la password crittografata e fornirla con l'opzione -encrypted-password quando si utilizza il comando polyspace-access.

  3. In un browser web, aprire questo URL:

    https://hostName:portNumber/metrics/index.html
    In questo caso, hostName e portNumber sono il nome host e il numero di porta del passaggio precedente.

Nel riquadro Project Explorer dell'interfaccia web di Polyspace Access, viene visualizzato il progetto testProject appena creato.

Esecuzione di Bug Finder su file di esempio

Per eseguire Bug Finder, aprire una finestra di comando nel sistema operativo.

  1. Per eseguire un'analisi Bug Finder, utilizzare il comando polyspace-bug-finder-server.

  2. Per caricare i risultati nell'interfaccia web di Polyspace Access, utilizzare il comando polyspace-access -upload (Polyspace Access).

Per evitare di digitare il percorso completo del comando, aggiungere il percorso polyspaceserverroot\polyspace\bin alla variabile di ambiente Path del sistema operativo.

Provare i comandi sui file di esempio forniti con l'installazione di Polyspace.

  1. Copiare i file sorgente di esempio da polyspaceserverroot\polyspace\examples\cxx\Bug_Finder_Example\sources in un'altra cartella in cui si dispone delle autorizzazioni di scrittura. Accedere a questa cartella dalla riga di comando.

  2. Inserire:

    polyspace-bug-finder-server -sources numerical.c,dataflow.c -I . -checkers numerical,data_flow -results-dir .
    polyspace-access -host hostName -port portNumber -login username -encrypted-password pwd -create-project testProject
    polyspace-access -host hostName -port portNumber -login username -encrypted-password pwd -upload . -project myFirstProject -parent-project testProject

    In questo caso, username è il nome utente e pwd è la password crittografata creata in precedenza. Vedere Controllo dell'installazione di Polyspace.

Aggiornare l'interfaccia web di Polyspace Access. Viene visualizzata una cartella testProject nel riquadro Project Explorer. La cartella contiene un progetto myFirstProject.

Per visualizzare i risultati nel progetto, fare clic su Review. Per maggiori informazioni, vedere Revisione dei risultati di Polyspace Bug Finder nel browser web. È inoltre possibile accedere alla documentazione utilizzando il pulsante in alto a destra nell'interfaccia di Polyspace Access.

Le opzioni di analisi utilizzate con il comando polyspace-bug-finder-server sono le seguenti:

  • -sources: specificare i file sorgente separati da virgole.

  • -I: specificare il percorso della cartella include. Utilizzare l'indicatore -I ogni volta che si desidera aggiungere una cartella include separata.

  • Individuare i difetti (-checkers): specificare i difetti (bug) da controllare.

  • -results-dir: specificare il percorso della cartella in cui verranno salvati i risultati di Polyspace Bug Finder.

    Si noti che la cartella dei risultati viene pulita e ripopolata ad ogni esecuzione. Per evitare la rimozione accidentale di file durante la pulizia, invece di utilizzare una cartella esistente che contiene altri file, specificare una cartella dedicata per i risultati di Polyspace.

Per l'elenco completo delle opzioni disponibili per un'analisi Bug Finder, vedere Elenco completo delle opzioni del motore di analisi Polyspace Bug Finder. Per aprire la documentazione di Bug Finder nel browser web del sistema, inserire:

polyspace-bug-finder-server -doc

Script di esempio per l'analisi Bug Finder sui server

Per eseguire l'analisi, anziché digitare i comandi dalla riga di comando, è possibile utilizzare gli script. Gli script possono essere eseguiti ogni volta che si aggiungono o modificano file sorgente.

Di seguito è riportato un esempio di file batch Windows®. In questo caso, il percorso di installazione di Polyspace è specificato nello script. Per utilizzare questo script, sostituire polyspaceserverroot con il percorso di installazione. È necessario aver già generato la password crittografata da utilizzare negli script. Vedere Controllo dell'installazione di Polyspace.

echo off
set POLYSPACE_PATH=polyspaceserverroot\polyspace\bin
set LOGIN=-host hostName -port portNumber -login username -encrypted-password pwd
"%POLYSPACE_PATH%\polyspace-bug-finder-server" -sources numerical.c,dataflow.c -I .^
 -checkers numerical,data_flow -results-dir .
"%POLYSPACE_PATH%\polyspace-access" %LOGIN% -create-project testProject
"%POLYSPACE_PATH%\polyspace-access" %LOGIN% -upload . -project myFirstProject -parent-project testProject
pause

Di seguito è riportato un esempio di script shell Linux®.

POLYSPACE_PATH=polyspaceserverroot/polyspace/bin
LOGIN=-host hostName -port portNumber -login username -encrypted-password pwd
${POLYSPACE_PATH}/polyspace-bug-finder-server -sources numerical.c,dataflow.c -I .\
 -checkers numberical,data_flow -results-dir .
${POLYSPACE_PATH}/polyspace-access $LOGIN -create-project testProject
${POLYSPACE_PATH}/polyspace-access $LOGIN -upload . -project myFirstProject -parent-project testProject

Specifica delle sorgenti e delle opzioni in file separati rispetto agli script di avvio

Anziché elencare i file sorgente e le opzioni di analisi all'interno degli script di avvio, è possibile elencarli in file di testo separati.

  • Specificare il file di testo che elenca le sorgenti utilizzando l'opzione -sources-list-file.

  • Specificare il file di testo che elenca le opzioni di analisi utilizzando l'opzione -sources-list-file.

Rimuovendo i file sorgente e le specifiche delle opzioni di analisi dagli script di avvio, è possibile modificare tali specifiche secondo necessità con l'invio di nuovo codice, lasciando invariato lo script di avvio.

Si consideri lo script dell'esempio precedente. È possibile modificare il comando polyspace-bug-finder-server per utilizzare i file di testo con sorgenti e opzioni. Anziché:

polyspace-bug-finder-server -sources numerical.c,dataflow.c -I . -checkers numerical,data_flow -results-dir .

utilizzare:

polyspace-bug-finder-server -sources-list-file sources.txt -options-file polyspace_opts.txt -results-dir .

In questo caso:

  • sources.txt elenca i file sorgente in righe separate:

    numerical.c
    dataflow.c

  • polyspace_opts.txt elenca le opzioni di analisi in righe separate:

    -I .
    -checkers numerical,data_flow

In genere, i file sorgente sono specificati in un comando di build (makefile). Anziché specificare direttamente i file sorgente, è possibile tracciare il comando di build per creare un elenco di specifiche sorgente. Vedere polyspace-configure.

Workflow completo

In un tipico workflow di integrazione continua, si esegue uno script che effettua i seguenti passaggi:

  1. Estrarre le opzioni di Polyspace dal comando di build.

    Ad esempio, se si utilizzano i makefile per costruire il codice sorgente, è possibile estrarre le opzioni di analisi dal makefile. Il comando riportato di seguito esegue prima make, quindi determina le opzioni di analisi dai processi eseguiti.

    polyspace-configure -output-options-file compile_opts make

    Vedere anche:

  2. Eseguire l'analisi con il file di opzioni creato in precedenza. Aggiungere un secondo file di opzioni che contenga le restanti opzioni necessarie per l'analisi.

    polyspace-bug-finder-server -options-file compile_opts -options-file run_opts

    Vedere Options Files for Polyspace Analysis.

  3. Caricare i risultati su Polyspace Access.

    polyspace-access login -upload resultsFolder -project projName -parent-project parentProjName

    In questo caso, login è la combinazione di opzioni necessarie per comunicare con il server web che ospita Polyspace Access:

    -host hostName -port portNumber -login username -encrypted-password pwd

    resultsFolder è la cartella contenente i risultati di Polyspace. projName e parentProjName sono i nomi del progetto e della cartella superiore così come apparirebbero nell'interfaccia web di Polyspace Access.

  4. Opzionalmente, inviare notifiche via e-mail agli sviluppatori con i nuovi risultati relativi all'invio del loro codice. L'e-mail contiene allegati con collegamenti ai risultati nell'interfaccia web di Polyspace Access.

    Vedere Invio di notifiche via e-mail con i risultati di Polyspace Bug Finder Server.

Vedere degli esempi di script che eseguono questi passaggi in Sample Scripts for Polyspace Analysis with Jenkins.

Vedi anche

(Polyspace Access) | (Polyspace Access) |

Argomenti