[so] [Tema1][Linux] Testul 14 - passed desi nu ar trebui sa treaca

Sergiu Costea sergiu.costea at gmail.com
Tue Mar 12 22:04:26 EET 2013


2013/3/10 Mihai Barbulescu <b12mihai at gmail.com>:
> Salutare,
>
> Am observat ca testul 14 are la sfarsit de tot un sleep $UNU.
>
> Shell-ul meu am vazut ca face urat (ducand chiar pana la segmentation
> fault) daca dau $(command) $VariabilaCareNuExista.
>
> Acelasi lucru se petrece si la testul 14 (segmentation fault), dar el
> da passed, intrucat toate comenzile de sus au avut loc cu succes,
> deoarece redirectarile si operatorii conditionali/paraleli sunt
> implementati corect (pana acum).
>
> Intrebarile mele sunt:
>
> 1) Cum as putea verifica ca se incearca obtinerea unei variabile care
> nu exista? (cum e in testul 14 - sleep $UNU, UNU am vazut ca nu e
> setata inainte pe undeva)

Salutare,

Din man page:
The  getenv()  function  returns a pointer to the value in the environ‐
       ment, or NULL if there is no match.

Trebuie să verifici dacă getenv returnează NULL. Dacă returnează NULL,
expandezi variabila la șirul vid "".

Consecința este că va fi rulat _sleep_ fără niciun parametru, ceea ce
va duce la o eroare. Mesajul de eroare nu este scris nicăieri deci va
fi ignorat de checker.

>
> 2) Se poate pune acel sleep $UNU in testul 14 oriunde intre comenzi
> astfel incat sa imi dea passed doar dupa ce tratez corect executia
> comenzii sleep cu un argument invalid? Si unde pot raporta acest
> issue, exista un repo oficial al checkerului?
>
>

Deși testul trece, pe vmchecker se va vedea segmentation fault-ul și
depunctarea va fi făcută de asistent (depunctare pentru neverificarea
valorilor întoarse de funcții). Nu există un repo oficial al
checker-ului, dar puteți indica problemele pe listă și le vom adresa.

Numai bine,
Sergiu


More information about the so mailing list