EnglezăFrancezăSpaniolă

Favicon OnWorks

tesh - Online în cloud

Rulați tesh în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda tesh care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


tesh - carcasa de testare

REZUMAT


tesh [OPȚIUNE]... [FILE] ...

DESCRIERE


Acesta este instrumentul TESH. Constituie o carcasă de testare, adică un fel de carcasă specializată
rulați teste. Lista acțiunilor de efectuat este analizată din fișierele fișiere numite testsuite.

OPŢIUNI


--cd some/directory: cereți-i lui tesh să comute înainte directorul de lucru
lansarea testelor
--setenv var=valoare: setează o anumită variabilă de mediu
--cfg arg: adăugați parametrul --cfg=arg la fiecare linie de comandă
--enable-coverage: ignoră liniile de ieșire care încep cu „profiling:”

TESH FILE SINTAXĂ


Iată sintaxa acestor fișiere:

Tipul fiecărei linii este dat de primul caracter (al doilea caracter ar trebui să fie necompletat și este
ignorat):

Comanda `$' să ruleze în prim-plan
Comanda „&” să ruleze în fundal
Intrarea „<” pentru a trece la comandă
`>' ieșire așteptată de la comandă
`!' metacomandă, care poate fi una dintre:
"timeout" |nu
"așteptați semnal"
"așteptați-vă întoarcerea"
„ieșire”
`setenv = '
`p' un șir de tipărit
`P' un șir de tipărit la nivel CRITIC (ușurează înregistrarea grepping)

Dacă rezultatul așteptat nu se potrivește cu ceea ce scuipă comanda, TESH va produce o eroare
afișând diferența (vezi IEȘIRE mai jos).

IO COMENZI


Liniile < și > adaugă IO la comanda definită în blocul curent (blocurile sunt separate
prin linii goale). Este posibil să plasați aceste linii fie după comandă, fie înainte.
Diferența dintre următoarele două bucăți este în principal cosmetică în probele dvs.
TESH nu-i pasă. (cf IO-orders.tesh)

$ pisica
< TOTO
> TOTO

> TOTO
$ pisica
< TOTO

Cu toate acestea, este posibil să aveți mai multe comenzi în același bloc, dar niciuna dintre ele
poate avea orice ieșire. Poate părea puțin restrictiv, deoarece s-ar putea spune că primește o comandă
toate IO-urile până la următoarea comandă, dar mi-e frică de erori precum următoarele:

$ cd toto
> TOTO
$ fișier mkfile

TOTO va fi transmis comenzii cd, unde utilizatorul dorește în mod clar să îl transmită către
Comanda încorporată mkfile (vezi mai jos).

CURENT REDIRECȚIE


Redirecționările fluxurilor (">", "<" și "|" constructe în sh) nu sunt încă implementate în tesh.
Acest lucru este puțin restrictiv, dar ei bine, patch-ul este binevenit...

Situația în care este în principal problematică este crearea unui fișier temporar. The
soluția este să folosiți comanda încorporată „mkfile”, ca în exemplul următor: $ mkfile
myFile > ceva conținut > la fișier

Aceasta va crea un fișier numit myFile (primul argument al comenzii mkfile). Conținutul său
va fi toată intrarea furnizată comenzii.

A REVENI COD


TESH scuipă un mesaj de eroare corespunzător atunci când copilul nu returnează 0 ca cod de returnare (cf.
catch-return.tesh) și returnează codul+40 însuși.

De asemenea, este posibil să specificați că o comandă dată trebuie să returneze o altă valoare. Pentru aceasta,
utilizați metacomanda „expect return”, care ia un număr întreg ca argument. Doar schimbarea
se aplică la următoarea comandă (cf. set-return.tesh).

SEMNALE


TESH detectează când copilul este ucis de un semnal (cum ar fi în cazul erorilor secundare) și scuipă un
mesaj de eroare adecvat (cf. catch-signal.tesh).

De asemenea, este posibil să se specifice că o comandă dată trebuie să ridice un semnal dat. Pentru aceasta,
utilizați metacomanda „așteptați semnal”. Ia numele semnalului ca argument. Doar schimbarea
se aplică la următoarea comandă (cf. set-signal.tesh).

TIME-OUT


În mod implicit, toate comenzile au 5 secunde pentru a fi executate (cf. catch-timeout.tesh). Poti
schimbați acest lucru cu „timeout”, care ia un număr întreg ca argument. Modificarea se aplică numai
la următoarea comandă (cf. set-timeout.tesh). Dacă treceți „nu” ca argument, comanda
nu poate expira.

REZULTATE


În mod implicit, rezultatul comenzilor este comparat cu cel așteptat și este o eroare
ridicată pe discrepanță. Metacomenzi pentru a schimba acest lucru:
"ieșire ignoră" -> ieșire complet eliminată
„afișare ieșire” -> ieșire afișată (dar neverificată)
„sortare ieșire” -> sortează afișajul înainte de a-l verifica (vezi mai jos)

TRIERE REZULTATE


Sortarea ieșirii pare a fi o idee ciudată, dar este obligatorie în SimGrid, deoarece
procesele nu sunt în ordine în orice punct de programare (adică fiecare proces gata de rulare la
timpul simulat t rulează în paralel). Pentru a ne asigura că ieșirile simulatorului încă se potrivesc, noi
trebuie să sortați înapoi rezultatul înainte de a o compara.

Ne așteptăm ca simulatoarele să ruleze cu acel argument de formatare a jurnalului:
--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n Apoi, tesh sortează șirul pe primele 19 caractere
numai și este stabil când începuturile liniilor sunt egale. Acest lucru ar trebui să asigure că:
(1) tesh este eficient (nici un fals pozitiv, nici un fals negativ)
(2) punctele de programare sunt separate unele de altele
(3) la fiecare punct de programare, procesele sunt separate unele de altele
(4) ordinea a ceea ce spune un proces dat la o anumită programare
punctul se păstrează.

Desigur, acesta este foarte orientat spre SimGrid, rupând generalitatea tesh, dar cui îi pasă,
de fapt?

Dacă doriți să modificați lungimea prefixului utilizat pentru sortare, specificați-l după
directiva de sortare a ieșirii, astfel:

! sortare ieșire 22

MEDIUL


Puteți adăuga conținut în mediul proceselor testate cu metacomanda setenv.
Funcționează conform așteptărilor. De exemplu:
"setenv PATH=/ cos"

Utilizați tesh online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad