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.
Controllo dell'installazione di Polyspace
Per controllare se Polyspace Bug Finder Server è installato:
Aprire una finestra di comando. Accedere a
. In questo caso,polyspaceserverroot\polyspace\binè la cartella di installazione di PolyspaceBug FinderServer, ad esempiopolyspaceserverrootC:\Program Files\Polyspace Server\R2025b. Vedere anche Installation Folder.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:
Accedere nuovamente a
.polyspaceserverroot\polyspace\binInserire:
polyspace-access -host hostName -port portNumber -create-project testProject
In questo caso,
è il nome del server che ospita il server web Polyspace Access. Per un server ospitato localmente, utilizzarehostNamelocalhost.è il numero di porta opzionale del server. Se si omette il numero di porta, viene utilizzatoportNumber9443.Se l'impostazione è stata completata, viene creato un progetto denominato
testProjectnell'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-passwordquando si utilizza il comandopolyspace-access.In un browser web, aprire questo URL:
In questo caso,https://hostName:portNumber/metrics/index.html
ehostNamesono il nome host e il numero di porta del passaggio precedente.portNumber
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.
Per eseguire un'analisi Bug Finder, utilizzare il comando
polyspace-bug-finder-server.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 alla variabile di ambiente polyspaceserverroot\polyspace\binPath del sistema operativo.
Provare i comandi sui file di esempio forniti con l'installazione di Polyspace.
Copiare i file sorgente di esempio da
in un'altra cartella in cui si dispone delle autorizzazioni di scrittura. Accedere a questa cartella dalla riga di comando.polyspaceserverroot\polyspace\examples\cxx\Bug_Finder_Example\sourcesInserire:
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,
è il nome utente eusernameè la password crittografata creata in precedenza. Vedere Controllo dell'installazione di Polyspace.pwd
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-Iogni 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.txtelenca i file sorgente in righe separate:numerical.c dataflow.c
polyspace_opts.txtelenca 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:
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:
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
Caricare i risultati su Polyspace Access.
polyspace-access login -upload resultsFolder -project projName -parent-project parentProjName
In questo caso,
è la combinazione di opzioni necessarie per comunicare con il server web che ospita Polyspace Access:login-host hostName -port portNumber -login username -encrypted-password pwd
è la cartella contenente i risultati di Polyspace.resultsFoldereprojNamesono i nomi del progetto e della cartella superiore così come apparirebbero nell'interfaccia web di Polyspace Access.parentProjNameOpzionalmente, 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
-create-project (Polyspace Access) | polyspace-access
-upload (Polyspace Access) | polyspace-bug-finder-server