[HK][Furor] Az automatikus tesztkörnyezet

Minthogy rengeteg funkció kell egy programnyelvbe, reménytelen küzdelem volna minden módosításkor, bővítéskor egyenként kézzel tesztelni minden funkciót. Írtam e célra inkább egy automatikus tesztkörnyezetet.

A lényege hogy van 2 alkönyvtár, az egyikben a tesztprogramok, a másikban ezen programok eredménye, fájlonként külön-külön. Egy program pedig minden tesztprogramra meghívja a furor interpretert, az eredményt egy memstreamba továbbítja, abból stringet csinál, beolvassa a programhoz tartozó eredményfájlt, összehasonlítja az iménti eredménnyel... És ha nem oké, akkor „kiabál”. Természetesen e tesztelő programot nem kell újrafordítgatnom mindig amikor a tesztek számát bővítem, elég a megfelelő fájlokat a megfelelő directorykba bemásolni, a progim bőven van elég okos ahhoz hogy azzal kezdje, lecsekkolja, hány fájl van épp amit tesztelnie kell. Ha minden rendben van, efféle eredményt kell produkálnia:

There are 21 files in the ./tests/progs/ test-directory.
There are 21 files in the ./tests/result/.
Pass      0 : apostrophe.upu                                     [O.K.]
Pass      1 : bigboss0.upu                                       [O.K.]
Pass      2 : emit00.upu                                         [O.K.]
Pass      3 : finiteloop00.upu                                   [O.K.]
Pass      4 : finiteloopvariables00.upu                          [O.K.]
Pass      5 : finiteloopvariables01.upu                          [O.K.]
Pass      6 : finiteloopvariables02.upu                          [O.K.]
Pass      7 : finiteloopvariables03.upu                          [O.K.]
Pass      8 : goto00.upu                                         [O.K.]
Pass      9 : label00.upu                                        [O.K.]
Pass     10 : myname.upu                                         [O.K.]
Pass     11 : myname2.upu                                        [O.K.]
Pass     12 : parent0.upu                                        [O.K.]
Pass     13 : pelda.upu                                          [O.K.]
Pass     14 : pelda2.upu                                         [O.K.]
Pass     15 : pelda3.upu                                         [O.K.]
Pass     16 : pelda4.upu                                         [O.K.]
Pass     17 : pelda5.upu                                         [O.K.]
Pass     18 : pelda6.upu                                         [O.K.]
Pass     19 : pelda7.upu                                         [O.K.]
Pass     20 : pelda8.upu                                         [O.K.]
There were 21 tests.
Succeeded tests: 21
Tests with false result: 0

Mondjuk ez itt fent nem is adja vissza a teljes „felhasználói élményt”, mert az output szép színes, de mindegy.