Működés

A továbbiakban nevezzük PROG-nak azt a futtatható programot (ez lehet script is), amely a kiadott feladatot megoldja. A megoldást ellenőrző hftest program ezt indítási paraméterként kapja és úgy futtatja, hogy annak standard be és kimenetével csővezetéken keresztül összekapcsolódik. A csővezetéken keresztül a hftest program különböző tesztadatokat küld és vizsgálja az arra kapott választ. Ha ez megfelelő, akkor a feladatot elfogadja, aminek tényét naplózza. A PROG megírásánál néhány speciális szabályt be kell tartani, ami részben a két program kapcsolatából következik. Ezek a következők:

  • Minden adatot, amit PROG a standard kimenetre ír, a hftest kap meg, és nem jelenik meg a képernyőn, mint standard kimeneten.
  • Minden adatot, amit PROG a standard bemenetről olvas, azt a hftest generálja, és nem a billentyűzetről jön.
  • Minden más (a standard error, az indítási paraméterek, egyéb file-ok, stb.) a normál futásnak megfelelő módon használható.
  • Mivel a PROG által küldött eredménytől függhet a hftest által küldött következő tesztadat, így minden PROG által kiküldött karakternek azonnal el kell jutnia a hftest programhoz. Azaz PROG nem bufferelheti a kimenetét. Egyes könyvtári C függvények azonban (printf, putchar,
    putch, stb.), a hatékonyabb működés érdekében automatikusan bufferelnek, ha a kimenet nem a terminál. Ezt a tulajdonságot ki kell kapcsolni. Ezért minden PROG program egy ilyen utasítással kell hogy kezdődjön (setbuf) (lásd a feladatok bemutatásánál).
  • PROG-nak induláskor egy azonosító sorozatot kell kiküldenie, ami azonosítja a feladatot, és a megoldást benyújtó személyt is. Ez pontosan két sor információ (mindkét sor sorvége jellel lezárva), melynek formátuma viszonylag kötött. A további sorok értelemzése már az adott feladattól függ.

    NÉV,ÉVF,TK,LABOR <E-MAIL> NEPTUN
    Feladat = N Opciók

    ahol:

    Mező Megnevezés Példa
    NÉV* A hallgató neve, lehetőleg repülő ékezetes formában Veto" Gyo:rgy Ge'za
    ÉVF évfolyam 1MI vagy 1VILL
    TK tankör (ha nincs ilyen, akkor 0) 2
    LABOR labor L1x, L2x ...
    ahol: L1, L2... a kurzus neve
    x pedig a HSZK terem betűjele
    E-MAIL* e-mail cím veto[at]hszk.bme[dot]hu
    NEPTUN* 6 karakteres neptun azonosító YZ12GUJ
    N* a feladat sorszáma 1
    Opciók A hftest program működését befolyásoló opciók:
    ISO 8859-2 - hatására a program üzenetei (hibaüzenetek, és a feladatok szövege) repülőékezetek helyett ISO 8859-2 ködban jelennek meg.
    English - hatására a program üzenetei (hibaüzenetek, és a feladatok szövege) angolul jelennek meg. (hwtest-nél ez a default)
    Magyar - hatására a program üzenetei (hibaüzenetek, és a feladatok szövege) magyarul jelennek meg. (hftest-nél ez a default)
    ISO 8859-2

    A *-gal jelölt mezők kötelező mezők, a többi el-, vagy üresen hagyható. A hallgató azonosítása a NEPTUN kód alapján történik, a többi csupán információs mező. A feladatot a sorszáma azonosítja. A program naplózza, hogy ki, és mikor indította, de az ural2 felhasználói azonosító és a NEPTUN kód összetartozását nem ellenőrzi, de nem tanácsos más neve alatt dolgozni. A végső értékelésnél nem vesszük figyelembe, hogy hány sikertelen kísérlet volt az adott feladat megoldására, csak legyen legalább egy sikeres megoldás.

Utolsó frissítés: 2016-02-10 12.32