@@ -18,12 +18,12 @@ \section{A konfigurációs fájl}
1818 kibővíteni. A konfigurációk előtti \textit {+ } jelzi hogy a szekció kibővíti az adott konfigurációs értéket, nem
1919 pedig felülírja azt.
2020
21- A~ \ ref {fig:section-hierarchy } ábra mutatja, hogyan lehet egy meglévő szekcióból konfigurációt örökölni, illetve
22- felülírni. Ha a program futás során a \textit {DEFAULT } szekciót választjuk akkor a konfigurációs elemeink értékei
23- rendre \verb |CFG1 = [1, 2] | és \verb |CFG2 = [3, 4] |. Ha a \textit {MY\_ SECTION } szekciót választjuk akkor pedig,
24- \verb |CFG1 = [1, 2, 3] | és \verb |CFG2 = [5] |.
21+ A \textbf { \ ref {fig:section-hierarchy }. ábra} mutatja, hogyan lehet egy meglévő szekcióból konfigurációt örökölni,
22+ illetve felülírni. Ha a program futás során a \textit {DEFAULT } szekciót választjuk akkor a konfigurációs elemeink
23+ értékei rendre \verb |CFG1 = [1, 2] | és \verb |CFG2 = [3, 4] |. Ha a \textit {MY\_ SECTION } szekciót választjuk akkor
24+ pedig, \verb |CFG1 = [1, 2, 3] | és \verb |CFG2 = [5] |. \pagebreak
2525
26- \begin {figure }
26+ \begin {figure }[ht]
2727 \centering
2828 \begin {minted }{INI}
2929[DEFAULT]
@@ -42,7 +42,9 @@ \section{A konfigurációs fájl}
4242 \caption {\label {fig:section-hierarchy } A szekció hierarchia konstrukció}
4343 \end {figure }
4444
45- \pagebreak
45+ \noindent
46+ Példa egy teljes konfigurációs fájlra \textbf {\ref {fig:config-full }. ábra }.
47+
4648 \subsection {A \textit {BuildOption } konfigurációk }
4749
4850 A konfigurációs fájlban pár beállítástól eltekintve, a konfigurációs elemek egy-egy fordítóprogram kapcsolóhoz
@@ -60,41 +62,74 @@ \section{A konfigurációs fájl}
6062 hogyan fogja tudni hogy milyen teszteket futtasson?
6163
6264 Erre ad megoldást a \textit {Suites } konfigurációs mező ahol fel kell sorolni a futtatni kívánt teszt
63- csomagokat. A teszt csomagokhoz tartozó fájlokat egy \textit {SET } forrásfájlban kell felsorolni, minden sorban
64- egy elérési útvonallal. Ezzel a mechanizmussal bármilyen teszt esetekből álló teszt csomag definiálható.
65+ csomagokat. A tesztcsomagokhoz tartozó fájlokat egy \textit {SET } forrásfájlban kell felsorolni, minden sorban
66+ egy elérési útvonallal. Ezzel a mechanizmussal bármilyen teszt esetekből álló tesztcsomag definiálható.
6567
6668 A legnagyobb előnye ennek a formátumnak, hogy a keretrendszer követni tudja, hogy melyik teszt esetet futtatta
67- már. Így ha a teszt csomagok osztoznak egy-egy teszt eseten akkor a keretrendszer egyszerűen
69+ már. Így ha a tesztcsomagok osztoznak egy-egy teszt eseten akkor a keretrendszer egyszerűen
6870 \textbf {behelyettesíti } a meglévő eredményt.
6971
7072 Ezen mechanizmus adta az ötletet a projekt elnevezésére.
7173
7274 \subsection {A \textit {Matrix } és a \textit {Constraints } }
7375
7476 Most, hogy már ki tudjuk választani a fordítóprogram számára megfelelő opciókat, és definiálni tudjuk a
75- futtatandó teszt csomagokat a kettő beállítás között kapcsolatot kell teremteni. Erre a kapcsolat teremtésre
77+ futtatandó tesztcsomagokat a kettő beállítás között kapcsolatot kell teremteni. Erre a kapcsolat teremtésre
7678 szolgálnak a \textit {Matrix } és a \textit {Constraints } beállítások.
7779
7880 A \textit {Matrix } beállításban fel kell sorolni az összes olyan \textit {BuildOption } konfigurációt amit
7981 futtatni szeretnénk.
8082
81- A \textit {Constraints } beállításban adhatunk meg megszorításokat, hogy bizonyos teszt csomagokra csak bizonyos,
83+ A \textit {Constraints } beállításban adhatunk meg megszorításokat, hogy bizonyos tesztcsomagokra csak bizonyos,
8284 kapcsolókat engedélyezzünk. Így a \textit {Matrix } által generált potenciálisan exponenciális kombinációkat
83- levághatóak, ha nem szükségesek. A szintaxist a következő \textit {EBNF }~\ref {fig:ebnf } nyelvtan írja le.
85+ levághatóak, ha nem szükségesek. A szintaxist a következő \textbf {\ref {fig:bnf }. ábrán } látható \textit {BNF }
86+ nyelvtan írja le.
8487
8588 \begin {figure }[h]
86- \hspace *{-1.5in }
89+ \hspace *{-1.5cm }
8790 \centering
88- \begin {grammar }
89- <constraint> ::= <suite> <build_option_constraint>+ % chktex 26
91+ \begin {mdframed }[backgroundcolor=LightGray]
92+ \begin {grammar }
93+ <constraint> ::= <suite> "&" <build-option-constraints> % chktex 18 chktex 26
94+
95+ <build-option-constraints> ::= <build-option-constraints> "&" <build-option> % chktex 18 chktex 26
96+ \alt <build_option> % chktex 1
97+
98+ <build-option> ::= <id> % chktex 26
99+ \alt <id> ":" <id> % chktex 1 chktex 18
90100
91- <build_option_constraint> ::= "&" <id> % chktex 18 chktex 26
92- \alt "&" <build_option_with_value> % chktex 1 chktex 18
101+ <suite> ::= "*" % chktex 18 chktex 26
102+ \alt <id> % chktex 1 chktex 18
103+
104+ <id> ::= non empty string % chktex 26
105+ \end {grammar }
106+ \end {mdframed }
107+ \caption {\label {fig:bnf } A \textit {Constraints } konfigurációk nyelvtana}
108+ \end {figure }
93109
94- <suite> ::= "*" % chktex 18 chktex 26
95- \alt <id> % chktex 1 chktex 18
110+ Tekintsük a \textbf { \ref { fig:example-constraint }. ábrán } látható példa konfigurációt, ahol feltételezzük hogy a
111+ hivatkozott \textit { Suite } és a \textit { BuildOption } konfigurációk definiáltak.
96112
97- <id> ::= [a-zA-Z0-9_]+ % chktex 8 chktex 18 chktex 26
98- \end {grammar }
99- \caption {\label {fig:ebnf } A \textit {Constraints } kapcsoló nyelvtana}
113+ \begin {figure }[h]
114+ \centering
115+ \begin {minted }{INI}
116+ CONSTRAINTS =
117+ *&EXCEPTIONS
118+ EXPRS&OPT_LEVEL:Oz
119+ LOOPS&OPT_LEVEL:O1&BUILTIN
120+ \end {minted }
121+ \caption {\label {fig:example-constraint } Példa \textit {Constraints } konfigurációra}
100122 \end {figure }
123+
124+ Ez a konfiguráció definíció szerint, rendre a következő megszorításokat fogja alkalmazni:
125+
126+ \begin {itemize }
127+ \item Az \textbf {ÖSSZES } tesztcsomagból kiszűri az \textbf {EXCEPTIONS } kapcsoló bármely értékét.
128+ \item Az \textbf {EXPRS } tesztcsomagból kiszűri az \textbf {OPT\_ LEVEL } kapcsoló \textbf {Oz } értékét.
129+ \item A \textbf {LOOPS } tesztcsomagból kiszűri az \textbf {OPT\_ LEVEL } kapcsoló \textbf {O1 } értékét és a
130+ \textbf {BUILTIN } kapcsoló bármely értékét.
131+ \end {itemize }
132+
133+ \noindent
134+ További konfigurációs elemek is elérhetőek ezzel a szintexissal. A teljesség igénye nélkül pár példa:
135+ \textit {SKIPLISTS }, \textit {CFLAGS }, \textit {TIMEOUT_RUN }, \textit {TIMEOUT_COMPILE }.
0 commit comments