Detaljno Uputstvo Za Upotrebu

Embed Size (px)

DESCRIPTION

Detaljno Uputstvo Za Upotrebu

Citation preview

*****************************************************************AUTOMATSKI TESTER RADOVA - Autor: Aleksandar Kartelj (2014) v1.3*****************************************************************Tester je napisan u cistom Bash script jeziku. Struktura direktorijuma je sledeca:a) test1.shb) testn.shc) testall.shd) primer_upotrebee) UPUTSTVO_ZA_UPOTREBU.txt (ovaj fajl)f) tofile.sh - pomocni programNapomena: Moguce je da pri pokretanju skriptova, sistem ispise nesto poput "permission denied"ili slicno. Jedan od razloga moze da bude sto .sh fajlovima nisu data prava za izvrsavanje.Da bi se to postiglo, jednostavno uradite sledece:chmod +x test1.shchmod +x testn.shchmod +x testall.shchmod +x tofile.sh**********************************************************************test1.sh **********************************************************************Sluzi za testiranje samo jedne C datoteke sa jednim test primerom.Da bi istestirali njegovo ponasanje probajte da ukucate:>./test1.sh "primer_upotrebe/radovi/Student1/1.c" k{1k} u{4u} i{5i} >DAili >./test1.sh "primer_upotrebe/radovi/Student1/1.c" k{4k} u{5u} i{5i} >NEProgram dat u primeru uzima jedan broj kao argument komandne linije, a drugi sa standardnog ulaza i rezultat ispisuje na standardni izlac. Podaci koji se upisu u region k{...k} su argumenti komandne linije.Oni koji se upisu izmedju u{...u} su argumenti standardnog ulaza, i konacno izmedju i{...i} je dat ocekivani izlaz. U prvom slucaju je vracen odgovor DA jer je 1+4=5, a u drugom NE jer 4+5!=5**********************************************************************testn.sh**********************************************************************Ovaj izvrsni skript sluzi da se istestira ceo niz test primera za zadatu C datoteku. Npr.:>./testn.sh primer_upotrebe/radovi/Student1/1.c primer_upotrebe/1.t >/home/aca/test2/tester, primer_upotrebe/radovi/Student1/1.c, el:1, pts:8, uk:8Ovde se vidi da je za direktoriju Student1, program 1.c prosao eliminacionitest primer i preostalih 8 test primera. Pritom su test primeri zadati ufajlu primer_upotrebe/1.t koji izgleda ovako:k{19k} u{644u} i{663i}|k{20k} u{645u} i{665i}|k{23k} u{642u} i{665i}|k{19k} u{100u} i{119i}|k{19k} u{-21u} i{-2i}|k{19k} u{-9u} i{10i}|k{19k} u{0u} i{19i}|k{19k} u{-7u} i{12i}|k{0k} u{644u} i{644i}|Prvi u nizu test primera je eliminacioni, a ostali se broje u poene. Ukoliko se kao poslednji argument pri pozivu ubaci opcija -v, tester ce prikazivatiu toku izvrsavanja koji su test primeri prosli a koji nisu. >./testn.sh primer_upotrebe/radovi/Student1/1.c primer_upotrebe/1.t -v>1 : DA>2 : DA>3 : DA>4 : DA>5 : DA>6 : DA>7 : DA>8 : DA>9 : DA>/home/aca/test2/tester, primer_upotrebe/radovi/Student1/1.c, el:1, pts:8, uk:8**********************************************************************testall.sh**********************************************************************Ovaj skript testira kompletan direktorijum sa radovima veceg broja studenata. Npr. ako hocemo da proverimo sve radove u direktorijumu primer_upotrebe/radovi,mozemo to uciniti na sledeci nacin:>./testall.sh primer_upotrebe/radovi/ "1.c" primer_upotrebe/1.t /home/aca/test2/tester/primer_upotrebe/radovi/Student1, 1.c, el:1, pts:8, uk:8/home/aca/test2/tester/primer_upotrebe/radovi/Student2, 1.c, el:1, pts:8, uk:8Ovde vidimo da su oba studenta imali tacan zadatak 1.c. Rezultati se upisujuu datoteku rezultati.csv koja se nalazi u aktivnom direktorijumu, tj. direktorijumuiz kog se pokrece ./testall.shUkoliko je za kompilaciju potrebno ukljuciti math biblioteku, poziv se menja u:>./testall.sh primer_upotrebe/radovi/ "1.c -lm" primer_upotrebe/1.tIpak, sa opcijom -lm treba biti pazljiv, jer neki kompajleri implicitno ukljucuju-lm, pa dodatno ukljucivanje napravi problem, i pregledac onda ne radi korektno.Takodje se umesto jedne .c datoteke moze upisati vise datoteka, npr:>./testall.sh primer_upotrebe/radovi/ "1.c mojabiblioteka.c -lm" primer_upotrebe/1.t*********************************************************************RAD SA DATOTEKAMA*********************************************************************Postoji podrska i za testiranje programa koji koriste datoteke: da u njihpisu,ili da iz njih citaju. Trenutno je postavljeno da moze biti najvise5 ulaznih datoteka, i najvise 2 izlazne. Drugi zadatak u direktorijumu primer_upotrebe predstavlja jedan primer u kojemse koristi ulazna i izlazna datoteka, kao i standardni izlaz. U zadatku je potrebnootvoriti ulaznu datoteku, prepisati sve njene karaktere u izlaznu, a na standardniizlaz ispisati sva slova koja se pojavljuju u ulaznoj datoteci. Primer poziva za jedan test primer je sledeci:>./test1.sh primer_upotrebe/radovi/Student1/2.c "uf1[ulazni.txt]{test iz P1 uf1} if1[izlazni.txt]{test iz P1 if1} i{ 7 i}" DAUkoliko je potrebno imati vise ulaznih ili izlaznih datoteka, one se oznacavaju sa uf2, uf3 itd.,odnosno sa if2 u slucaju izlazne.Primer upotrebe nad vise test primera je sledeci:>./testn.sh primer_upotrebe/radovi/Student1/2.c primer_upotrebe/2.t -v1 : DA2 : DA3 : DA4 : DA5 : DA6 : DA7 : DA8 : DA9 : DAPritom je sadrzaj datoteke 2.t sledeci:"uf1[ulazni.txt]{test iz P1 uf1} if1[izlazni.txt]{test iz P1 if1} i{ 7 i}"|"uf1[ulazni.txt]{P1 P2 uf1} if1[izlazni.txt]{P1 P2 if1} i{ 2 i}"|"uf1[ulazni.txt]{12345 uf1} if1[izlazni.txt]{12345 if1} i{ 0 i}"|"uf1[ulazni.txt]{_____ uf1} if1[izlazni.txt]{_____ if1} i{ 0 i}"|"uf1[ulazni.txt]{53289 fdslj fsdl3 324 uf1} if1[izlazni.txt]{53289 fdslj fsdl3 324 if1} i{ 9 i}"|"uf1[ulazni.txt]{11111 uf1} if1[izlazni.txt]{11111 if1} i{ 0 i}"|"uf1[ulazni.txt]{fls dslk ldks uf1} if1[izlazni.txt]{fls dslk ldks if1} i{ 11 i}"|"uf1[ulazni.txt]{aaaaaaaa uf1} if1[izlazni.txt]{aaaaaaaa if1} i{ 8 i}"|"uf1[ulazni.txt]{?_34_+fds uf1} if1[izlazni.txt]{?_34_+fds if1} i{ 3 i}|