twister

HTTP fault injector for testing
Log | Files | Refs | README | LICENSE

twister.tex (3711B)


      1 \documentclass[c]{beamer}
      2 
      3 %\usepackage{helvet}
      4 \usepackage{calc}
      5 \usepackage[utf8]{inputenc} % set your input encoding differently, if you want
      6 \usepackage[english]{babel}
      7 \usepackage{listings}
      8 \usepackage{wrapfig}
      9 \usepackage{fancyvrb}
     10 \usepackage{enumitem}
     11 \usepackage{eurosym}
     12 \usepackage{tikz}
     13 \usepackage{pgfgantt}
     14 \usepackage{amsmath,amssymb}
     15 \usetikzlibrary{shapes,arrows,fit}
     16 \usetikzlibrary{positioning}
     17 \usetikzlibrary{calc}
     18 \usepackage[absolute,overlay]{textpos}
     19 
     20 %\setbeameroption{show notes}
     21 
     22 \setlist[itemize]{label=$\bullet$}
     23 
     24 
     25 \def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;}
     26 
     27 \setbeamertemplate{navigation symbols}{}
     28 %\setbeamercovered{transparent=10}
     29 \setbeamertemplate{navigation symbols}{\url{taler.net}}
     30 %\setbeamertemplate{section in toc}[sections numbered]
     31 
     32 % Adapt title information
     33 % =======================
     34 \title{GNU Twister \\ Easy C instrumentation and programmable proxy}
     35 \institute{Taler Systems SA}
     36 \author{Christian Grothoff ({\tt christian@grothoff.org}) \\
     37   Marcello Stanisci ({\tt stanisci.m@gmail.com})}
     38 
     39 \date{10.9.2018}
     40 
     41 % Some common packages
     42 % ====================
     43 \usepackage{units}
     44 \usepackage{amsbsy}
     45 \usepackage{amsmath}
     46 \usepackage{amssymb}
     47 \usepackage{graphics}
     48 \usepackage{epsf}
     49 \usepackage{epsfig}
     50 \usepackage{fixmath}
     51 \usepackage{wrapfig}
     52 
     53 
     54 \usetikzlibrary{snakes}
     55 
     56 
     57 \begin{document}
     58 
     59 \begin{frame}
     60   \titlepage
     61 \end{frame}
     62 
     63 \begin{frame}
     64   \frametitle{Overall architecture}
     65 
     66   % Overall architecture where Twister applies:
     67   % HTTP client, HTTP server, REST API,
     68   % focus on JSON as interchange format
     69 
     70   \begin{center}
     71     \includegraphics[width=0.66\textwidth]{Whole.png}
     72   \end{center}
     73 
     74 \end{frame}
     75 
     76 \begin{frame}[fragile]
     77   \frametitle{HTTP proxy}
     78 
     79   % Twister HTTP proxy (between client and server)
     80 
     81   \begin{center}
     82     \includegraphics[width=0.66\textwidth]{Whole-NoDriver.png}
     83   \end{center}
     84 
     85   \begin{Verbatim}[fontsize=\tiny]
     86   # twister.conf
     87 
     88   [twister]
     89   # listens here
     90   HTTP_PORT = 8888
     91   # forwards there
     92   DESTINATION_BASE_URL = http://localhost:8080
     93   ..
     94   \end{Verbatim}
     95 
     96 \end{frame}
     97 
     98 \begin{frame}[fragile]
     99   \frametitle{Driving it}
    100 
    101   % Test driver (below) controlling client,
    102   % twister and server to drive test execution
    103 
    104   \begin{center}
    105     \includegraphics[width=0.66\textwidth]{Whole-NoClientServer.png}
    106   \end{center}
    107 
    108   \begin{columns}[T,onlytextwidth]
    109     \begin{column}{.5\textwidth}
    110       \begin{minipage}{\textwidth}
    111         \begin{Verbatim}[fontsize=\tiny]
    112         # twister.conf
    113 
    114         [twister]
    115         # Control channel.
    116         UNIXPATH = /tmp/taler-service-twister.sock
    117         ..
    118         \end{Verbatim}
    119       \end{minipage}
    120     \end{column}
    121     \begin{column}{.5\textwidth}
    122       \begin{minipage}{\textwidth}
    123         \begin{Verbatim}[fontsize=\tiny]
    124           # CLI
    125 
    126           $ taler-twister -c twister.conf \
    127                           --flip-ul=child.one
    128         \end{Verbatim}
    129       \end{minipage}
    130     \end{column}
    131   \end{columns}
    132 
    133 \end{frame}
    134 
    135 \begin{frame}[fragile]
    136   \frametitle{Driving it (Libtalertwister)}
    137 
    138   % libtalertwister: control API examples (giving Twister commands
    139   % to twist next request/response)
    140 
    141   \begin{textblock*}{2cm}(7cm,1cm)
    142     \includegraphics[scale=0.09]{Whole-NoClientServer.png}
    143   \end{textblock*}
    144 
    145 {\tiny
    146 \begin{lstlisting}[language=C,basicstyle=\footnotesize,keywordstyle=\color{blue}]
    147 #include <taler/taler_twister_service.h>
    148 
    149 handle = TALER_TWISTER_connect (CONFIG);
    150 
    151 /* Issue char-flipping command */
    152 TALER_TWISTER_flip_upload (handle,
    153                           "child.one",
    154                           &callback,
    155                           NULL);
    156 // ...
    157 TALER_TWISTER_disconnect (handle);
    158 \end{lstlisting}
    159 }
    160 \end{frame}
    161 
    162 \end{document}