@c Copyright (C) 1996-2002 Free Software Foundation, Inc.
@c For copying conditions, see the file gpc.texi.
@c This file is part of the GPC Manual.
@c
@c Authors: Peter Gerwinski <peter@gerwinski.de>
@c          Frank Heckenbach <frank@pascal.gnu.de>
@c
@c Last modification: 2002-05-10 (file up to date)
@c
@c Croatian translation
@c Charset:    iso-8859-2 (latin 2)
@c Translator: Mirsad Todorovac <mtodorov_69@yahoo.com>
@c Transl-Date: 2001-12-07
@c Transl-Updated: 20020510

@include macros.texi

@ifclear FAQONLY
@ifclear TESTREADMEONLY
@node Support
@chapter Gdje dobiti podršku za GNU Pascal; kako prijaviti bugove
@cindex support
@cindex podrška
@cindex pomoć
@cindex bugovi
@end ifclear

(Podrška)

@ifset TESTREADMEONLY
@include version.texi
@c Note: The following line gets inserted into the destination file,
@c       it does not apply to this Texinfo file!
Ova je datoteka generirana automatski iz support.texi.@*
@sc{NE MIJENJAJTE OVU DATOTEKU RUČNO!}

@paragraphindent 0
Zabilješka: Ova datoteka je @file{README} datoteka @file{test}
direktorija u GPC source distribuciji, @emph{a također i} datoteka
@file{BUGS} u GPC binarnim distribucijama.

GPC @value{GPCMajor}.@value{GPCMinor}, @value{GPCVersion}

@settitle GPC Test kolekcija
@node Top
@chapter GPC Test kolekcija
@end ifset

Ovdje možete pronaći informaciju o tome gdje potražiti najsvježije
informacije o GPC-u, kako dobiti podršku (profesionalnu ili
dobrovoljnu), kako koristiti GPC-ovu test kolekciju, i kako
prijavljivati nove bugove s na koje bi mogli naići.

Ako imate problema s GNU Pascalom, molimo pogledajte relevantne
dijelove GPC priručnika. Najnovija verzija priručnika je
na raspolaganju na adresi
@uref{http://www.gnu-pascal.de/gpc-doc.html}
za online pregledavanje.
Također možete napraviti download
@localuref{gpc-html.tar.gz,kompletnog priručnika u HTML formatu (tar.gz)}.
Ovaj je priručnik također dostupan i u
@localuref{gpc.dvi.gz,DVI formatu (gzip)} i
@localuref{gpc.ps.gz,PostScript formatu (gzip)} za ispis na štampač.

Ako vam priručnik ne pomaže, evo što vam predlažemo:

@ifclear TESTREADMEONLY
@noindent @ref{FAQ}                Provjerite u GPC FAQ-u
@end ifclear
@ifset TESTREADMEONLY
@itemize @bullet
@item Provjerite u GPC FAQ-u (vidi datoteku @samp{FAQ} ili GPC priručnik)
@item Pridružite se GPC mailing listi
@item Pogledajte u arhivama mailing liste
@item Pitajte na newsgroupi (grupa vijesti na USENETu)
@item Potražite individualnu podršku za GPC
@item Pronađite kako prijaviti GPC bugove
@item Ako imate GPC source, naučite kako pokrenuti Test Suite (kolekciju testova) da testirate bugove koje prijavljujete.
@end itemize
@end ifset

@menu
* Mailing List::           Pridružite se GPC mailing listi
* Arhive mailing listi::   Pogledajte u arhivama mailing liste
* Newsgroups::             Pitajte na newsgroupi (grupa vijesti na USENETu)
* Profesionalna podrška::  Potražite individualnu podršku za GPC
* Krahovi prevodioca::     Kad se compiler skrši @dots{}
* Reporting Bugs::         Pronađite kako prijaviti GPC bugove
* Testing::                Testiranje - ako imate GPC source, naučite kako
                           pokrenuti Test Suite (kolekciju testova)
			   da testirate bugove koje prijavljujete.
@end menu

@end ifclear

@node Mailing List
@section GPC mailing lista
@cindex Mailing List
@cindex mailing lista

(Mailing lista)

Postoji posebna mailing lista posvećena GNU Pascalu. Možete pisati
na listu, npr. ako imate probleme s instaliranjem GPC-a ili ako
ste našli problem u vezi s GPC-om (molim pogledajte @ref{Reporting Bugs}).
Možete također diskutirati i davati sugestije za poboljšanje GPC-a
i, vrlo dobrodošli, ponuditi svoju pomoć ili doprinijeti kod,
dokumentaciju ili drugi rad. Poruke na listu bi trebale biti na
engleskom.

Da biste se pretplatili na listu, pošaljite naredbu
@example
subscribe gpc vaša@@email.adresa
@end example
u tijelu poruke na @email{majordomo@@gnu.de} (@strong{ne} na
@samp{gpc@@gnu.de}!). Subject: polje poruke se ignorira. (Molimo
zamijenite @samp{vaša@@email.adresa} vašom pravom email adresom.)
Za više informacija, pošaljite redak @samp{help} na
@email{majordomo@@gnu.de}.

Možete poslati poruku na mailing listu šaljući email na adresu
liste @email{gpc@@gnu.de} kao da je riječ o osobi.

Za napuštanje mailing liste, pošaljite naredbu
@example
unsubscribe gpc vaša@@email.adresa
@end example
na @email{majordomo@@gnu.de}.

Postoji još jedna (malog prometa) najavna lista,
@email{gpc-announce@@gnu.de} na koju se možete pretplatiti
da biste ostali informirani. Da se pretplatite na listu,
napišite email s
@example
subscribe gpc-announce vaša@@email.adresa
@end example
u tijelu poruke na @email{majordomo@@gnu.de}. Ako biste željeli
najaviti doprinos, servis ili događaj u relaciji s GPC-om, pozvani
ste da šaljete na ovu listu radije nego na @samp{gpc@@gnu.de}, ali
molimo vas ne koristite najavnu listu za pitanja ili diskusije.
Molimo uočite da se sva pošta pristigla na najavnu listu preusmjerava
također i na regularnu listu, tako da se nećete morati pretplatiti
na obje liste u slučaju da ne želite ništa propustiti.

Postoji i mailing lista za njemačko govorno područje,
@email{gpc-de@@gnu.de}. Za pretplaćivanje pošaljite naredbu
@example
subscribe gpc-de vaša@@email.adresa
@end example
u tijelu poruke na @email{majordomo@@gnu.de} (vrijede natuknice
odozgo).

@node Arhive mailing listi
@section Arhive GPC mailing listi
@cindex Arhive mailing listi
@cindex Arhive, mailing listi

Možda se o vašem problemu već diskutiralo na listi. Postoji pretraživa
arhiva mailing liste na WWW-u. Može se pregledavati ili pretraživati na
@example
@uref{http://www.gnu-pascal.de/crystal/gpc/en/} (engleski)
@uref{http://www.gnu-pascal.de/crystal/gpc/de/} (njemački)
@end example

Arhiva njemačke GPC liste je na
@example
@uref{http://www.gnu-pascal.de/crystal/gpc-de/de/} (njemački)
@uref{http://www.gnu-pascal.de/crystal/gpc-de/en/} (engleski)
@end example

@node Newsgroups
@section Newsgroupe (grupe USENET vijesti) relevantne za GPC
@cindex Newsgroups
@cindex USENET grupe vijesti

Za dobivanje podrške, možete također pitati Usenet grupu vijesti
za pomoć. Postoji više grupa u vezi s Pascalom, ali nijedna nije
specijalizirana samo za GNU Pascal, pa koristite onu koja najbolje
odgovara vašem problemu. Za opća pitanja o Pascalu, preporučujemo
slijedeću:

@multitable @columnfractions .5 .5
@item @uref{news://comp.lang.pascal.misc} @tab Pascal in general and ungrouped Pascals.
@end multitable

Pitanja glede Pascal sintakse mogu biti zgodna u:

@multitable @columnfractions .5 .5
@item @uref{news://comp.lang.pascal.ansi-iso} @tab Pascal according to ANSI and ISO standards.
@end multitable

Slijedeća grupa je sklonište za početnike, odgovarajući pitanja
koja se mogu primijeniti za gotovo bilo koji Pascal. Međutim, ako
imate GPC-specifično pitanje ne postavljajte ga tamo -- koristite
GPC mailing listu. A i kada ste u nedoumici koristite GPC maling listu.

@multitable @columnfractions .5 .5
@item @uref{news://comp.lang.pascal.borland} @tab Borland Pascal questions.
@end multitable

Ne zaboravite vratiti nazad što ste pribavili. Nitko od nas ne
dobiva novac za odgovaranje na vaša pitanja (ukoliko nas sami ne
platite). Molimo dajte svoj udio odgovarajući na pitanja drugih.

@node Profesionalna podrška
@section Gdje naći profesionalnu podršku za GPC
@cindex Profesionalna podrška
@cindex Komercijalna podrška
@cindex Podrška, profesionalna

GPC je slobodan software i dolazi @strong{bez ikakve garancije}.

Ako želite potražiti profesionalnu podršku, možete unajmiti pojedinca
ili poduzeće koja pruža takvu uslugu.

@uref{http://www.g-n-u.de,G-N-U GmbH} izvodi velike dijelove razvoja
GNU Pascala. Ova kompanija nudi specijalnu podršku za GPC i može se
kontaktirati na @email{info@@g-n-u.de}.

Više općenito, za pronalaženje kompanije ili pojedinca koji nudi
podršku i ostale savjetodavne usluge za free software, pogledajte u
@uref{http://www.gnu.org/prep/service.html,GNU Service Directory}.

@node Krahovi prevodioca
@section Kad se compiler skrši @dots{}
@cindex Krahovi prevodioca
@cindex Krah, prevodioca

Ako se prevodilac skrši u radu, otkrili ste bug. Pouzdan prevodilac
se nikad ne ruši. Da biste ljudima koji održavaju pomogli ispraviti
bug, važno je da nam pošaljete problem report.

Ako ste na Unixu, možete pronaći gdje se prevodilac srušio ako
omogućite coredumpove, zatim učitate prevodilac (@file{gpc1}) plus
core datoteku u debugger (@samp{gdb /vaš_put_ovdje/gpc1 core}),
da bi se dobio ispis stoga (engl. stacktrace). Uključite ovaj
ispis stoga u svoju prijavu buga.

@node Reporting Bugs
@section Kako prijaviti GPC bug
@cindex Prijava bugova
@cindex bugovi, prijava
@cindex Test Suite, pisanje testova

(Prijava bugova)

Ako se susretnete s bugom u GPC-u, molimo provjerite da li je to jedan
od već poznatih bugova@c
@ifclear TESTREADMEONLY
@ifclear FAQONLY
 (@pxref{Known Bugs})@c
@end ifclear
@end ifclear
. Ako nije, molimo prijavite ga na GNU Pascal mailing listu@c
@ifclear TESTREADMEONLY
 (@pxref{Mailing List})@c
@end ifclear
. Na taj način, oni uvijek stižu održavateljima. Molimo primijetite
slijedeće točke.

@itemize @bullet

@item
Molimo vas pošaljite deskripciju problema. Nastojte dati koliko
god je više informacija moguće, s punim tekstom eventualnih
poruka o greškama s kojima ste se susreli, ili opisom kako se
neki izlaz razlikuje od očekivanoga. Uvijek specificirajte
operacijski sustav i tip stroja (npr. izlaz @samp{uname -a}
ako niste sigurni) kao i verziju GPC-a koju ćete dobiti ako
otkucate @samp{gpc -v}.

@item
Dobar članak o podnošenju prijave buga može se naći na@*
@uref{http://www.chiark.greenend.org.uk/~sgtatham/bugs.html} ili@*
@uref{http://freshmeat.net/news/2000/02/26/951627540.html}

Još jedan dobar članak ``How To Ask Questions The Smart Way''
(Postavljati pitanja na mudar način) je na raspolaganju na adresi
@uref{http://www.tuxedo.org/~esr/faqs/smart-questions.html}

@end itemize

Ako je problem u samom prevodiocu, ne u procesu instalacije ili
nečem poput toga, molimo priložite test program koji reproducira
problem, i uočite donje natuknice. Možete također slati test
programe za mogućnosti koje rade u GPC-u kako bi osigurali da
se neće pokvariti u budućim izdanjima.

@itemize @bullet

@item
Test program treba biti što je moguće kraći, ali
@strong{u svakom slučaju}, molimo pošaljite @strong{kompletan}
program i @strong{učinite sigurnim} da isti još uvijek reproducira
problem prije nego što nam ga pošaljete. Prečesto, korisnici su
nam slali kod koji je sadržavao očite sintaksne pogreške daleko
prije aktualnog problema, ili samo fragmente koda o kojima smo
mogli samo izdaleka nagađati. To je neproduktivno za nas, a i
vama ne pomaže da riješite svoj problem.

@end itemize

@ifclear FAQONLY

Preferirani oblik test programa je forma koju automatizirani
GPC Test Suite razumije. Molimo, ako je ikako moguće, šaljite
svoje test programe u ovoj formi što bi trebalo biti lako za učiniti,
kako mi ne bi morali gubiti vrijeme da ih prilagodimo toj formi,
te da se možemo koncentrirati na rješenje problema.

@itemize @bullet

@item
Datoteka koja sadrži glavni program @emph{mora} imati ime koje
završava sa @file{.pas} i mora sadržavati riječ @samp{program}
(case-insensitive, tj. veliko i odgovarajuće malo slovo se smatraju
istim) te @samp{;} u istom retku da uopće bude prepoznata od test
skripte. Ostale datoteke koje završavaju sa @file{.pas} (npr. moduli
i jedinice ili podatke koje program treba) ne smiju to sadržavati.

@item
Kako Test Suite mora raditi vrlo @dots{} hmph @dots{} čudnim
operacijskim sustavima, također imena se datoteka moraju razlikovati
u prvih osam (8) znakova (case-insensitive) i ne bi smjela sadržavati
ništa osim slova, znamenki, crtice, podvlake (engl. underscore)
i jedne točke. Dalje, sve pomoćne datoteke (jedinice (unit), moduli,
include i podatkovne datoteke) ne smije imati imena duža od ``8+3''
znakova. Često je dobra ideja koristiti vlastito ime, nadimak ili
inicijale iza čega slijedi broj kao ime datoteke.

@item
Ako vaš test program zahtijeva nake jedinice (units) ili module,
nemojte im davati (odnosno njihovim 'interface' sučeljima u slučaju
modula) uobičajena imena puput @samp{Test}, @samp{Foo} ili
@samp{MyUnit}, osim ako imate vrlo posebne razloge za to, budući
da bi se mogli pojaviti suptilni problemi ako nekoliko testnih programa
koristi isto ime. Umjesto toga, preporučen pristup je da se imenima
jedinica/modula/interface-a nadoda prefiks (predmetak) -- ime glavnog
testnog programa ili njegova skraćenica (to je neophodno zbog restrikcija
na imenima datoteka). Nadalje, molimo izbjegavajte korištenje jedinica
i modula uopće, ako bug nije specifičan za njih; kako bi se test održavao
što je moguće jednostavnijim.

@item
Test program, kada se izvršava, treba proizvesti liniju izlaza
koja se sastoji od niza @samp{OK} (praćenog znakom za novi red,
newline) ako je sve prošlo kao što je očekivano, ili bilo što
drugo (npr. @samp{failed}, potencijalno praćeno razlogom pada
na testu) ako je nešto pošlo krivo.

@item
Međutim, ako je program namijenjen da provjeri da li GPC prepoznaje
(namjernu) grešku u programu, stavite niz @samp{WRONG} negdje u
test programu, najbolje u komentaru u retku koji sadrži namjernu
pogrešku, i postavite izlaz programa da bude @samp{failed} ako se
program greškom ipak prevede. @samp{WRONG} testovi će biti pokrenuti
s opcijom @samp{-w} da se potisnu sva upozorenja, tako da će samo
prave pogreške biti detektirane.

@strong{Primijeti:} Dok je moguće kombinirati nekoliko @samp{OK}
testova u jednom test programu (ako učinite sigurnim da ispisuje
@samp{OK} samo ako svi testovi uspješno prođu), ne možete staviti
nekoliko @samp{WRONG} testova u isti program. Razlog tome je što
prevodilac neće uspjeti prevođenje (i test će se smatrati uspješnim)
već i kad se pojavi samo @samp{jedna} od očekivanih grešaka. Dakle,
za @samp{WRONG} testove, postavite samo jednu provjeru u testni
program. Također, nastojite održavati takav test program što je
moguće jednostavnijim, zbog izbjegavanja mogućnosti da ne bi pao
zbog drugih problema (i zbog toga bi test pogrešno bio smatran
uspješnim).

@item
Ako bi test trebao samo provocirati GPC upozorenje, koristite
@samp{WARN} umjesto @samp{WRONG}. Ovo će pokrenuti test bez @samp{-w},
ali sa @samp{-Werror}. Međutim, ovakvi testovi će se također činiti
uspješnim i ako proizvode grešku kod prevođenja, ne samo kod upozorenja.
Stoga, kod provjeravanja za upozorenja, često je dobra ideja priložiti
komplemetarni test (za kojeg se očekuje da uspije)
i sa @samp{-w} u @samp{FLAG} ili direktivi prevodioca @samp{@{$W-@}}
da bi se osiguralo da je riječ zaista samo o upozorenju, a ne o
pogrešci.

@end itemize

Slijedeće specijalne mogućnosti testne aplikacije mogu biti korisne za
konstruiranje ponešto neuobičajenih testova:

@itemize @bullet

@item
Ako je očekivani ispis programa nešto osim @samp{OK}, stavite to u
datoteku @file{<basename>.out} (gdje je @file{<basename>} ime testnog
programa bez @file{.pas} nastavka).

@item
Ako program očekuje neki ulaz, stavite ga u datoteku
@file{<basename>.in}. Biti će automatski preusmjerena na standardni
ulaz programa.

@item
Ako test treba neke specijalne opcije proslijeđene GPC naredbenoj
liniji, stavite ih u komentar sa prefiksom @samp{FLAG}, npr.

@example
(* FLAG --extended-pascal -Werror *)
@end example

@item
Ime izvorne datoteke test programa bit će proslijeđeno kao prvi
argument naredbene linije do test programa koji se izvršava.

@item
Ako test treba biti pokrenut na specijalan način, možete popratiti
program sa skriptom @file{<basename>.run} koja će pokrenuti stvarni
test nakon što je testni program preveden. Ova skripta će biti
pokrenuta od @file{sh} (bez obzira na prvu liniju). Da bi bila
prenosiva, trebala bi koristiti samo standardne alate i značajke
prisutne u svim @file{sh} kompatibilnim ljuskama (npr. @samp{ash},
@samp{bash}, ali ne neophodno i @samp{csh}). Ime izvorne datoteke
test programa će biti proslijeđeno kao prvi argument komandnoj
liniji za izvršenje skripte u tom slučaju. Prevedena
datoteka se uvijek naziva @file{./a.out} na većini sistema, ali,
npr. @file{./a.exe} na Cygwin platformi. Environment varijabla
@samp{A_OUT} sadrži ime (npr. @file{a.out} ili @file{a.exe}, tako da
uvijek možete pozvati program sa @samp{./"$A_OUT"}).

@item
Ako test treba biti preveden na specijalan način (npr. da se odluči
da li preskočiti test), smjestite naredbe u skriptu (najbolje
nazvanu @file{<basename>.cmp}), i staviti ime datoteke sa skriptom
u komentar ispred čega dolazi @samp{COMPILE-CMD:} u source test
programa. Skripta za prevođenje će biti pokrenuta @strong{umjesto}
prevodioca i bilo koje druge akcije poduzete za taj test program,
tako da vam to daje maksimalnu fleksibilnost u čemu god što trebate
napraviti. Skripta će biti pokrenuta od @file{sh} (bez obzira na njenu
prvu liniju). Da bi bila prenosiva, najbolje da koristi samo standardne
alatke i značajke @file{sh} kompatibilnih ljusaka (vidi gore).
Prvi argument naredbene linije proslijeđen skripti za
prevođenje bit će prevodilac kojeg treba koristiti, uključivo sve
opcije. Drugi argument bit će ime izvorne datoteke sa test programom.
Za neke tipične testove postoje standardne skripte za prevođenje,
npr. @file{ia32.cmp} koja će preskočiti test osim ako se pokrene
na IA32 procesoru. Ovo je neophodno npr. kad se testira asemblerski
kod. Naravno, još uvijek je bolje izbjegavati situaciju da se mora
koristiti takve skripte kad je god moguće.

@item
U nekim biste slučajevima mogli poželjeti napisati "poslučajene" testove.
Ovo se u normalnim uvjetima ne preporuča, jer čini probleme težim za
reproducirati, ali ponekad može biti korisno (npr. kad želimo pokriti
velik raspon parametara). U takvim slučajevima može se koristiti slijedeća
strategija:

@example
@dots{}

uses GPC;

var
  RandomSeed: Integer;

begin
  RandomSeed := Random (MaxInt);
  SeedRandom (RandomSeed);

  @dots{} @{ vaši normalni testovi ovdje @}

  @{ kad se ispisuje poruka o grešci: @}
  if @dots{} then
    begin
      WriteLn ('failed (', RandomSeed, ') ',
               @dots{} @{ možebitne dodatne informacije @} );
      Halt
    end
end.
@end example

Ovo je pomalo neprirodno jer se pseudo-slučajni broj koristi za
(ponovno) postavi 'sjeme' (inicijalno stanje) pseudo-slučajnog
generatora, ali trenutno nema načina da se dobavi interno stanje
istog (i zapravo niti nije predstavljeno jednim brojem, već stanjem
jednog polja).

Dajući vrijednost @samp{RandomSeed} u poruci o grešci, bit će lako
reproducirati problem stavljajući ovu vrijednost umesto @samp{Random (MaxInt)}.
Samo budite sigurni da ste ispisali ovu vrijednost u @strong{svakoj}
poruci o bugu koju test program može proizvesti.

@end itemize

@node Testing
@section Pokretanje GPC Test Suite kolekcije testova
@cindex Test Suite, pokretanje
@cindex kolekcija testova, pokretanje

(Testiranje).

@emph{Opaska:} Ako imate instaliranu binarnu distribuciju, obično
nemate Test Suite instaliran (možete napraviti download source
distribucije da ga pribavite, međutim), tako da se ovaj odlomak
ne odnosi na vas. Ipak, još uvijek možete pronaći u odlomku
@samp{Prilaganje programa u Test Suite} kako prijaviti GPC bugove
u obliku novih test programa kako bismo ih mogli ispraviti što je
prije moguće.

Datoteke u test direktoriju i podstablima služe samo za testiranje
GPC-a i ne bi se smjele koristiti za druge svrhe.

Opaska: Neki od testova nemaju smisla na svim sistemima. Oni su
opremljeni provjerama i bit će preskočeni ako pronađu sistem
nepogodnim. Preskočeni testovi @strong{ne znače} GPC bug, osim
ako mislite da bi pojedini test imao smisla na vašem sistemu.

@itemize @bullet

@item
Da se pokrene čitava test kolekcija, otipkajte @samp{make} u test
direktoriju (ili @samp{make check} u @samp{p} objektnom direktoriju
nakon izgradnje GPC-a).

@item
Ispis će pokazati sve uočene greške (poželjno nijednu) i preskočene
testove, i konačno sažetak dajući broj uspješnih, testova s greškom i
preskočenih testova. Svaki test s greškom znači bug u GPC-u koji bi
trebao biti prijavljen na GPC mailing listu, @email{gpc@@gnu.de}.
Ne zaboravite napomenuti operacijski sustav na kojem ste pokrenuli
testove i ostale relevantne informacije o tome što ste radili.

@item
Također možete otipkati @samp{make pascal.check-long} da dobijete
dugi ispis koji je niz imena datoteka praćenih sa @samp{OK} za uspješne
testove, @samp{SKIPPED} za preskočene testove (oboje velikim slovima),
i ništa dodatno za testove koji su pali.

@item
Da pokrenete samo određene testove, možete otipkati nešto poput
@samp{make MASK="foo[1-7]*.pas"} ili
@samp{make MASK="foo42.pas" pascal.check-long}.

@item
Da počistite rezultate testova, otipkajte @samp{make clean}.

@end itemize

@end ifclear
