Question: I'm struggling to test if there are two labels undefined, in order to include some specific files only in that case.

Until now, I only needed one condition: `workshop`, so I was checking like:

```
\ifundef{\workshop}{
  \input{conclusion.tex}
}{\relax}

```

but now I must check that another condition is not set as well (`trainig`).

I've playing with `etoolbox`:

```
\ifboolexpr{
  \ifundef{\dockerWorkshop}{\relax}{\relax}

  and

  \ifundef{\training}{\relax}{\relax}
}{
  \input{conclusion.tex}
  \input{thoughts.tex}
}{\relax}

```

but this yields:

```
Runaway argument?
{The invalid part is: '\detokenize { \ifundef {\workshop }{\relax \ETC.
! Paragraph ended before \PackageError was complete.

```

Is there a way to achieve this?

Answer: 
You are using `\ifboolexpr` in the wrong way. In your case you need to use the `test` operator:

```
\documentclass{article}
\usepackage{etoolbox}

\begin{document}

\ifboolexpr
  {
    test {\ifundef{\dockerWorkshop}}
    and
    test {\ifundef{\training}}
  }
  {both undefined}
  {at least one defined}

\end{document}

```
Another option, and for me a simpler one (but perhaps not for your real application), is to use TeX primitives:

```
\documentclass{article}
\newif\ifWorkshop\Workshoptrue%  set workshop to be true
\newif\ifTraining\Trainingfalse% set training to be false

\begin{document}

  \ifWorkshop%
    \ifTraining Workshop and training!\else Workshop and no training!\fi%
  \else
    \ifTraining Workshop and training!\else No workshop and no training!\fi%
  \fi

\end{document}

```