|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
[C]Makefile:Test automatici con parametri a runtime...
nel caso voglia implementare un etichetta di test nel mio makefile so come fare per chiamare gli eseguibili+parametri eventuali(alla chiamata dell'eseguibile),fin qui ok
nel caso però in cui il mio eseguibile richieda un interazione da tastiera con l'utente(quindi richieda mano a mano parametri a runtime),come faccio a stabilire una serie di stringhe da dare in pasto all'eseguibile tramite il makefile stesso? cioè,sarebbe utile scrivere "make test" e il makefile pensa a lanciare l'eseguibile e ad interagirci secondo una serie di stringhe di input prestabilite per poi ritornare su schermo una cosa tipo "Test eseguito con successo!!" non è che ci sono dei comandi apposta? sennò come potrei fare?.. grazie! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
il makefile che interagisce con l´eseguibile ???
questa e´ roba da Microsoft ![]() scherzi a parte non ho capito. Se vuoi puoi passare al makefile dei valori: Codice:
make VARIABILE=xxx Codice:
gcc -Dxxx -Dyyy Codice:
#ifdef xxx O non ho capito bene le tue esigenze
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
ho un client che manda richieste al server, e ci sono diversi comandi che può mandare da tastiera durante la sua esecuzione
mi piacerebbe ci fosse un modo tramite makefile non solo per lanciare i due eseguibili(server che riceve le richieste e client che mano a mano gliele inoltra e stampa su stdout i servizi),ma anche per collaudarlo una volta avviato SIMULANDO l'interazione dell'utente con una serie di comandi che altrimenti dovrei inserire da tastiera io stesso forse dovrei lanciare server,client, e un terzo programma che scrive una serie di comandi prestabiliti su stdin al momendo in cui è attivo il client...possibile o c***ata? spero di aver chiarito, thanxalot! |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
no, il makefile non e´ responsabile (giustamente) di tutto cio´. Il suo ruolo e´ creare un eseguibile, stop. Lo puo´ fare seguendo infiniti percorsi ma una volta creato non si mette anche a testarlo. Che poi ci sia il modo per la farlo (si puo´ fare tutto, volendo), la cosiddetta mandrakata, lo posso pure immaginare ma non e´ che sia molto bello ... make = creare Si, dovresti lanciare server/client e testare con un terzo programma o creare un client apposta per testare il server e cosi´ via. Non a caso son richieste esperienze in test dalle societa´ (serie) che assumono. Ti consiglio di creare una test list e poi cercare di creare dei test scripts in modo da rendere la cosa piu´ dinamica e riutilizzabile possibile Secondo me forse non ti serve un terzo programma ma proprio una serie di scripts che chiamano il client con una serie di parametri. buon divertimento
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
non l'ho mai fatto,come faccio a relazionare uno script con lo stdin del client avviato per dargli i parametri??
mi sapresti indicare dei links al limite?? grazie!! |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
non puoi lanciare n clients per ogni test che devi fare ? e poi come fa a funzionare il sistema client/server se non sai come passargli i parametri mentre e´ attivo ? voglio dire: non e´ semplice passare dei parametri ad un programma che sta girando, se lo devi fare solo per testare puoi evitare cercando altre strade, se lo devi fare perche´ il sistema funziona cosi´ ... come fa a funzionare se non sai come fare ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
i parametri glieli passo da stdin,quindi da tastiera....
-->il processo client si interfaccia con l'utente, -->l'utente fa delle richieste che vengono dal processo client stesso ricevute mandate al server e consegnate all'utente su stdout una volta processate sarebbe utile avere un eseguibile che da in pasto al client una serie di comandi diversi senza per forza dover simulare l'utente,e nel mentre lanciare un programma di code coverage tipo gcov così alla fine se termina correttamente e gli ouput sono quelli attesi,vedere anche quanto del codice è stato effettivamente eseguito l'idea c'è,ma non saprei da dove iniziare.... se faccio un programma c che lancio dopo server e client,e questo programma nel suo main scrive su stdin una serie di comandi di seguito? questi comandi vengono letti solo ed esclusivamente dal client se è l'unico processo in ascolto sull'input da tastiera in quel momento no? il problema è che il processo client nn è sempre in ascolto perchè prende il comando da tastiera,lo inoltra,lo fa eseguire e riceve e stampa il risultato,POI si rimette in ascolto per un nuovo comando.... |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Esiste il tool expect (http://en.wikipedia.org/wiki/Expect) che ti permette di interfacciarti con le shell lanciando comandi a seconda di quello che ritorna a video (stdout) un programma. (l´ho spiegato da cani Lo usavo con Sun Solaris ma non ricordo molto. Devi trovare le librerie giuste ... mi spiace ma io sto cambiando lavoro ed ho appena eliminato tutta la mia directory con i BK che tengo ![]() e sto andando via ciao
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:02.






















