Skip to content

Commit 0e374da

Browse files
committed
Finish Chapter 3, fix typos
1 parent 819c5bd commit 0e374da

5 files changed

Lines changed: 128 additions & 33 deletions

File tree

src/appendices/attachments.tex

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,51 @@
11
\chapter*{Mellékletek}
22
\vspace{2 cm}
3+
4+
\begin{figure}[ht]
5+
\centering
6+
\begin{minted}{INI}
7+
[DEFAULT]
8+
TRIPLE = aarch64-none-none-elf
9+
ARCH = ARMV8A
10+
RCB = COMPILE_LINK_RUN
11+
12+
SUITES =
13+
LOOPS
14+
C99LANG
15+
C99LIB
16+
Cxx17LANG
17+
Cxx17LIB
18+
19+
EXCEPTIONS =
20+
EX
21+
NEX
22+
23+
BUILTIN =
24+
BI
25+
NBI
26+
27+
MATRIX =
28+
ARCH
29+
EXCEPTIONS
30+
BUILTIN
31+
32+
SKIPLISTS =
33+
*&@skiplist_libcxx_atomic
34+
*&@skiplist_libcxx_chrono
35+
36+
CONSTRAINTS =
37+
LOOPS&BUILTIN&EXCEPTIONS
38+
C99LANG&EXCEPTIONS
39+
C99LIB&EXCEPTIONS
40+
41+
TIMEOUT_COMPILE = *&240
42+
43+
CFLAGS =
44+
*&-Wall
45+
*&-ffunction-sections
46+
*&-fdata-sections
47+
*&-fsized-deallocation
48+
*&-fno-fast-math
49+
\end{minted}
50+
\caption{\label{fig:config-full} Példa egy konfigurációs fájlra}
51+
\end{figure}

src/chapters/chapter-2.tex

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ \section{A projekt felépítés}
2626
a lokális futtatáshoz. Ezek a komponensek a \textit{Gekko}, a \textit{ConfigManager}, a \textit{SystemUnderTest}
2727
(továbbiakban \textit{Sut}), illetve a program kimenet szabványos formára hozásáért felelős \textit{Reporter}.
2828

29-
A felvázolt struktúrát ábrázolja az alábbi Venn-diagram~\ref{fig:kompdiag}.
29+
A felvázolt struktúrát ábrázolja az alábbi Venn-diagram \textbf{\ref{fig:kompdiag}. ábra}. \pagebreak
3030

31-
\begin{figure}
31+
\begin{figure}[ht]
3232
\centering
3333
\begin{tikzpicture}
3434
\begin{scope} [fill opacity=.3]
@@ -53,13 +53,11 @@ \section{A projekt felépítés}
5353
\caption{\label{fig:kompdiag} Szoftver komponens csoport diagram}
5454
\end{figure}
5555

56-
\newpage
57-
5856
\subsection{A \textit{SuperSet} szoftver komponens}
5957

6058
A \textit{SuperSet} szoftver komponens a lokális futtatásért felelős fő komponens. Feladata a
61-
\textit{ConfigManager} szoftver komponens által előállított teszt csomagok futtatása, valamint a \textit{Gekko}
62-
szoftver komponens által előállított \textit{fuzz} típusú teszt csomagok futtatása is. Továbbá a
59+
\textit{ConfigManager} szoftver komponens által előállított tesztcsomagok futtatása, valamint a \textit{Gekko}
60+
szoftver komponens által előállított \textit{fuzz} típusú tesztcsomagok futtatása is. Továbbá a
6361
\textit{ConfigManagertől} megkapja a tesztekre érvényes beállításokat is, azok kapcsolatatival és kizárásaival,
6462
így megalkotja a futtatási mátrixot. Kimenetét egy \textit{SQLite}~\cite{sqlite} adatbázisban tárolja.
6563

@@ -78,8 +76,8 @@ \section{A projekt felépítés}
7876
\subsection{A \textit{Gekko} szoftver komponens}
7977

8078
A \textit{Gekko} szoftver komponens dinamikusan generál egy előre megadott mennyiségű \textit{fuzz} típusú
81-
teszt csomagot. A komponens neve az angol \emph{Generate-Convert} szókapcsolatból ered. Ez a szókapcsolat utal
82-
a működésére is. A \textit{Gekko} első lépésben egy \textit{fuzz} teszt generáló programot hív, amelynek a
79+
tesztcsomagot. A komponens neve az angol \emph{Generate-Convert} szókapcsolatból ered. Ez a szókapcsolat utal a
80+
működésére is. A \textit{Gekko} első lépésben egy \textit{fuzz} teszt generáló programot hív, amelynek a
8381
kiementét a második lépésben a keretrendszer által használt formátumra hozza. A \textit{Gekko} jelenleg a
8482
\textit{Csmith}~\cite{csmith} programot használja, azonban könnyen bővíthető más genráló programokkal is.
8583

src/chapters/chapter-3.tex

Lines changed: 57 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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}.

src/preamble/abstract.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ \chapter*{Feladatkiírás}
33
A feladat egy elosztott teszt rendszer fejlesztése, ami képes fordítóprogramok tesztelésére.
44

55
A tesztrendszer bemenete a teszt forrásfájlok valamint egy konfigurációs fájl, ami megszorításokat, kombinációkat és
6-
kapcsolókat ad a teszt csomag futtatására.
6+
kapcsolókat ad a tesztcsomag futtatására.
77

88
A rendszer képes a különböző forrás fájlokat és kapcsolókat átadni a tesztelendő fordítóprogram számára, majd
99
ellenőrizni a fordítóprogram kimenetét és kategorizálni azt.

src/thesis.tex

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
\usepackage{amsthm, amssymb, amsmath}
88
\usepackage{csquotes}
99
\usepackage{enumerate, graphicx, xcolor}
10-
\usepackage{hyperref}
11-
\usepackage{xcolor}
10+
\usepackage[dvipsnames]{xcolor}
11+
\usepackage{mdframed}
1212
\definecolor{LightGray}{gray}{0.9}
1313
\usepackage{minted}
1414
\usemintedstyle{emacs}
@@ -41,6 +41,19 @@
4141

4242
\usepackage{lastpage}
4343
\usepackage{fancyhdr}
44+
\usepackage{hyperref}
45+
\hypersetup{
46+
colorlinks=true,
47+
linkcolor=black,
48+
anchorcolor=black,
49+
citecolor=black,
50+
filecolor=black,
51+
menucolor=black,
52+
runcolor=black,
53+
urlcolor=black,
54+
pdftitle={DIPLOMAMUNKA},
55+
pdfpagemode=FullScreen
56+
}
4457

4558
\newcommand\originalchapter{}
4659
\let\originalchapter\chapter % chktex 1

0 commit comments

Comments
 (0)