diff --git a/src/sections/intro.tex b/src/sections/intro.tex index faf1b30..19ec853 100644 --- a/src/sections/intro.tex +++ b/src/sections/intro.tex @@ -284,3 +284,47 @@ report: \item \href{https://git.beafrancois.fr/v-and-v/testium/src/branch/main/test/validation}{ \tum{testium} validation suite} \end{itemize} \end{frame} + +% ===== License ===== +\subsection{License} + +\begin{frame}{\tum{testium} license} +\begin{columns} + \column{0.5\textwidth} + \begin{itemize} + \item Distributed under the \textbf{EUPL-1.2} + \begin{itemize} + \item European Union Public Licence v1.2 + \item Open-source, OSI / FSF approved + \item Governed by the law of the licensor's EU country (France) + \end{itemize} + \item SPDX identifier: \incode{EUPL-1.2} + \item Files in the repository: + \begin{itemize} + \item \incode{LICENSE} (full legal text) + \item \incode{CONTRIBUTING.md} (contribution rules) + \end{itemize} + \item Contributions follow the \emph{inbound = outbound} rule + \begin{itemize} + \item Any patch you submit is licensed under the same EUPL-1.2 + \item No CLA, no copyright assignment + \end{itemize} + \end{itemize} + \column{0.5\textwidth} + \begin{itemize} + \item \textbf{You may}: + \begin{itemize} + \item Use \tum{testium} for any purpose, including commercial + \item Read, modify, redistribute the source code + \item Combine with code under GPL, AGPL, LGPL, MPL, CeCILL, EPL\ldots (compatibility appendix) + \end{itemize} + \item \textbf{You must}: + \begin{itemize} + \item Keep the copyright and license notices + \item Redistribute modified versions under the EUPL (or a compatible license) + \item Publish your modifications even when offering \tum{testium} as a network service (SaaS clause) + \end{itemize} + \item \textbf{No warranty}, no liability of the author + \end{itemize} +\end{columns} +\end{frame} diff --git a/src/sections/items.tex b/src/sections/items.tex index 5ee329f..bd5914c 100644 --- a/src/sections/items.tex +++ b/src/sections/items.tex @@ -33,6 +33,7 @@ \incode{jsonrpc} & JSON-RPC test item \\ \incode{let} & Defining variables \\ \incode{loop} & Container for repeating things \\ + \incode{parallel} & Container for running branches concurrently \\ \incode{plot} & Runtime plot utility \\ \incode{report} & Extract a report file \\ \incode{run} & Runs a new instance of \tum{testium} \\ @@ -326,6 +327,51 @@ end \end{columns} \end{frame} +\begin{frame}[fragile]{\incode{parallel} test item} +\begin{columns} + \column{0.55\textwidth} + \begin{itemize} + \item \incode{branches}: list of concurrent branches; each branch has its own \incode{steps} + \item \incode{sync} + \begin{itemize} + \item \incode{all} (default): wait for every branch + \item \incode{any}: stop the others as soon as one finishes + \end{itemize} + \item \incode{wait\_for} (per branch): poll a condition before running the branch's steps + \item Each branch runs in its own thread: + \begin{itemize} + \item Live output prefixed \incode{[]} + \item One report row per branch (clean, no interleaving) + \end{itemize} + \end{itemize} + \column{0.45\textwidth} + \begin{listing}[H] + \begin{minted}[fontsize=\fontsize{6}{7}\selectfont]{yaml} +- parallel: + name: Read sensors + sync: all + branches: + - name: Temperature + steps: + - py_func: + name: read temp + file: sensors.py + func_name: read_temp + - name: Pressure + wait_for: + condition: <| "$(temp_ready)" == "1" |> + timeout: 5 + steps: + - py_func: + name: read pressure + file: sensors.py + func_name: read_pressure + \end{minted} + \caption{\incode{parallel} usage example} + \end{listing} + \end{columns} +\end{frame} + \begin{frame}{\incode{dialog\_x} test items} \begin{itemize} \item Dialogs pop-up a message box with a question, information or more diff --git a/testium_training.pdf b/testium_training.pdf index 5c43894..5bcbb26 100644 Binary files a/testium_training.pdf and b/testium_training.pdf differ