% test-execution automation environment that you developed during the
% second assignment.
-To test the SUT \GAST needs to be able to send input to the SUT and receive its
-output. To simplify the input and output handled by \GAST an adapter is added
-between \GAST and the SUT. This adapter abstracts away from parts of the
-specification that are not needed for these tests, such as the payload,
-sequence number, etc. Essentially reducing each segment to only its flags (SYN,
+To test the SUT the tool needs to be able to communicate with the adapter, in
+this case a Python program. The Python programs listens to a TCP port and
+according to the commands received it sends TCP packets using Scapy. As said
+before the adapter abstracts away from all the technicalities such as sequence
+numbers. Essentially reducing each segment to only its flags (SYN,
ACK, FIN, etc.).
-An EchoServer will connect to the SUT to offer an application which will accept
-the incoming connection. However, since no data will be exchanged the EchoServer
-will not be used for anything else.
-
-Figure~\ref{fig:architecture_down} shows the flow of data from \GAST to the SUT
-and Figure~\ref{fig:architecture_up} shows the flow of data from the SUT back
-to \GAST.
-
-Hier zou dus een plaatje van ``digraph TestSetupDown'' uit ``graphs.viz'' moeten komen. \label{fig:architecture_down}
-
-Hier zou dus een plaatje van ``digraph TestSetupUp'' uit ``graphs.viz'' moeten komen. \label{fig:architecture_up}
-
-
-\subsection{Python Driver}
-The Python driver can be modeled as an Symbolic Transition
-System. The model for the connection phase can be seen in
-Figure~\ref{fig:pythondriverconnection}.
-%meer uitleg over hoe die driver werkt. Qua sequence nummers opslaan enzo,
-%beetje toelichting bij de figuur.
-
-%in graphs.viz heb ik een opzetje voor die symbolic trnasition system
-%neergezet, maar ik weet neit hoe die er precies uitziet, dus het is echt heel
-%grof, dit moet aangepast worden naar iets wat daadwerkelijk op de
-%implementatie lijkt. Wat er nu staat is meer om de moeite te besparen van
-%uitzoeken hoe zo'n model er uit ziet :)
-Hier zou dus een plaatje van ``digraph PythonDriverConnection'' uit ``graphs.viz'' moeten komen. \label{fig:pythondriverconnection}
-
-Hier zou dus een plaatje van ``digraph PythonDriverClose'' uit ``graphs.viz'' moeten komen. \label{fig:pythondriverclose}
-
-% Hier moet nog meer over het automationdeel, maar ik weet neit hoe we dat
-% gaan fixen
-
-
+The adapter connects via the SUT to a Java echo server. Thus via TCP the
+echo server and the adapter connect. The adapter is an adaptation of the
+framework developed for the first part of the assignment. This architecture is
+displayed in Figure~\ref{fig:arch}. The tool always does the logging and test
+generation.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[scale=0.75]{arch.eps}
+ \vspace{5mm}
+ \caption{Testing architecture}\label{fig:arch}
+\end{figure}
--- /dev/null
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.38.0 (20140413.2041)
+%%Title: %3
+%%Pages: 1
+%%BoundingBox: 36 36 518 80
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+/tapered { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 518 80
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 482 44 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% Tool
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+27.3 18 27.1 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+14.3 14.3 moveto 26 (Tool) alignedtext
+grestore
+% Adapter
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+154.59 18 38.99 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+132.59 14.3 moveto 44 (Adapter) alignedtext
+grestore
+% Tool->Adapter
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 65.27 18 moveto
+77.67 18 91.69 18 104.85 18 curveto
+stroke
+0 0 0 edgecolor
+newpath 64.87 14.5 moveto
+54.87 18 lineto
+64.87 21.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 64.87 14.5 moveto
+54.87 18 lineto
+64.87 21.5 lineto
+closepath stroke
+0 0 0 edgecolor
+newpath 105.17 21.5 moveto
+115.17 18 lineto
+105.17 14.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 105.17 21.5 moveto
+115.17 18 lineto
+105.17 14.5 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+72.6 21.8 moveto 25 (TCP) alignedtext
+grestore
+% SUT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+281.89 18 27.1 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+268.89 14.3 moveto 26 (SUT) alignedtext
+grestore
+% Adapter->SUT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 204.24 18 moveto
+217.56 18 231.77 18 244.29 18 curveto
+stroke
+0 0 0 edgecolor
+newpath 203.86 14.5 moveto
+193.86 18 lineto
+203.86 21.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 203.86 14.5 moveto
+193.86 18 lineto
+203.86 21.5 lineto
+closepath stroke
+0 0 0 edgecolor
+newpath 244.35 21.5 moveto
+254.35 18 lineto
+244.35 14.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 244.35 21.5 moveto
+254.35 18 lineto
+244.35 14.5 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+211.59 21.8 moveto 25 (TCP) alignedtext
+grestore
+% EchoServer
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+422.18 18 51.99 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+390.18 14.3 moveto 64 (EchoServer) alignedtext
+grestore
+% SUT->EchoServer
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 319.44 18 moveto
+331.77 18 345.9 18 359.63 18 curveto
+stroke
+0 0 0 edgecolor
+newpath 319.22 14.5 moveto
+309.22 18 lineto
+319.22 21.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 319.22 14.5 moveto
+309.22 18 lineto
+319.22 21.5 lineto
+closepath stroke
+0 0 0 edgecolor
+newpath 360.01 21.5 moveto
+370.01 18 lineto
+360.01 14.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 360.01 21.5 moveto
+370.01 18 lineto
+360.01 14.5 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+327.18 21.8 moveto 25 (TCP) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF