Validační server - automatická kontrola semestrálních prací

Akce Kontrola programu - kompletní návod

Zpět na webovou konfiguraci

Akce "Kontrola programu" slouží k validaci programů - přeložení programu, spuštění programu pro sadu vstupních souborů a vyhodnocení výstupů. Je vytvořena s cílem pokrýt většinu požadavků zadavatelů na validaci programů a poskytnout jim možnost jednoduše podle těchto požadavků nastavit validaci.

Funguje pro jednosouborové programy .java s třídou mimo balík, spustitelné .jar programy, jednosouborové .c a .pas programy.

Možnosti

Validovaný program lze např. automaticky obodovat podle toho, pro kolik vstupů bude mít správný výstup (v časovém limitu).

Jak akci aktivovat

Do adresáře domény je potřeba nahrát tuto adresářovou strukturu:

/programs/nazev_programu/
/inputs/ - obsahuje sadu vstupů (stdin pro testované programy)
/outputs/ - požadované výstupy ke každému vstupu
/limits/ - textové soubory obsahující limit pro jednotlivé vstupy v ms
/sample/ - obsahuje vzorový program
/check/ - obsahuje kontrolní program
/data/ - data dostupná pro testovaný a kontrolní program (cesta jako argument)

Výstupy a soubory s limitem musí mít stejný název jako příslušné vstupy. Lze dodat buď /outputs/, /sample/ nebo /check/. /limits/ je dobrovolné. /inputs/ musí vždy obsahovat alespoň jeden soubor.

Nyní stačí akci přidat přes webové rozhraní. Pomocí JS proměnné lze určit soubor, který se má validovat (defaultně odevzdávaný soubor, ale toto nastavení umožňuje např. požadovat ZIP archiv obsahující program a dokumentaci). Pokud název programu neodpovídá přesně názvu souboru, lze název programu zadat JS proměnnou. Dále je možné určit defaultní časový limit, název log souboru a zda přijímat programy, které nedají vždy správný výstup.

Požadavky na programy

Validované programy získají ze standardního vstupu obsah vstupního souboru. Výstup, který bude kontrolován, zapíší na standardní výstup. Jako argument dostanou cestu k adresáři data, odkud mohou číst libovolné soubory.

Stejným způsobem bude fungovat i vzorový program.

Kontrolní program bude mít na standardním vstupu výstup validovaného programu, prvním argumentem dostane cestu ke vstupnímu souboru a druhým argumentem dostane cestu k adresáři /data/. Na standardní výstup vypíše "ok", pokud je výsledek validní.

Náměty na vylepšení

Sledování obsazené paměti, možnost omezit limitem - tohle neumím udělat.

Přidání dalších programovacích jazyků (C++).

Zpět na webovou konfiguraci

autor: Veronia Dudová, duben 2010 (veronnie at students.zcu.cz)