Un modo semplice per eseguire il debug di problemi specifici della piattaforma di software non-GUI su Windows?

2

Sto mantenendo un paio di repository software (C, C ++ in sostanza) che voglio anche eseguire - o iniziamo con almeno build - senza problemi su Windows.

Ora, la mia macchina desktop non ha Windows installato, né il mio laptop; e non ho un computer di riserva in questo momento, né voglio avere il mio desktop o laptop con Windows (invece di GNU / Linux). Mi rendo conto che il dual-boot potrebbe essere un'opzione, ma non voglio dover riavviare avanti e indietro.

Ho preso in considerazione l'idea di configurare una macchina virtuale Windows, ma mi chiedo:

  • Esiste un'alternativa più semplice / facile per eseguire test relativamente semplici, essenzialmente non invasivi e attività di debug specifiche della piattaforma in un ambiente Windows diverso da una VM?
  • Esiste un modo standard chiavi in mano per configurare una VM simile per il mio tipo di lavoro?

So che le VM sono molto in voga in questi giorni, con il cloud e tutto, ma sono inesperto con loro, quindi la mia domanda.

Note:

  • È il software FOSS.
  • Ho già la possibilità di eseguire la build (e fallire), usando l'integrazione di GitHub appveyor . Voglio una macchina che potrei usare per farlo funzionare.
posta einpoklum 30.01.2018 - 12:58
fonte

1 risposta

1

Dato che stai usando AppVeyor, il passo successivo è impostare ed eseguire un harness di test come parte della build. Diverse librerie (come la libreria di runtime C, Xerces, ecc.) Hanno una serie di test che eseguono contro la libreria appena creata.

AppVeyor dovrebbe eseguire il test come parte del processo di compilazione. I gruppi di test utilizzano un altro strumento come CUnit oppure eseguono il rollover. Ogni test dovrebbe verificare che i risultati di ogni chiamata di funzione siano corretti. Più che probabile, si avranno più test per ciascuna funzione poiché si garantisce che gli input validi e non validi vengano gestiti in modo appropriato. Con una copertura del codice sufficiente, potresti non aver bisogno di usare effettivamente un debugger.

La tua build avrebbe alcuni target :

  • all - dovrebbe compilare l'applicazione ed eseguire test, dipende da check
  • check - esegue il cablaggio di test e fallisce build se esiste un valore di ritorno diverso da zero. dipende da build e build-check .
  • build : crea la libreria o l'applicazione (destinazione interna)
  • build-check - crea il cablaggio di test, dipende da build , collega il test binario alla libreria che viene testata (target interno)

Imposta AppVeyor per eseguire make check o make all . Poiché i test possono fallire con la build, puoi assicurarti che i tuoi test siano eseguiti in tutti gli ambienti che ti interessano.

Oltre a ciò, se hai effettivamente bisogno di impostare punti di interruzione e di scorrere il codice, non hai altra scelta che effettuare il dual-boot o configurare una VM.

    
risposta data 30.01.2018 - 18:22
fonte