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.
Validovaný program lze např. automaticky obodovat podle toho, pro kolik vstupů bude mít správný výstup (v časovém limitu).
Do adresáře domény je potřeba nahrát tuto adresářovou strukturu:
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.
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í.
Sledování obsazené paměti, možnost omezit limitem - tohle neumím udělat.
Přidání dalších programovacích jazyků (C++).