#!/usr/bin/env tesh # Checks that background processes' output is not lost when a foreground # process (or another background process) does not match its expectation. ! expect return 2 < ! timeout 3 < & sh -c 'echo "I crash in background" && sleep 2' < < ! timeout 2 < & sh -c 'echo "I also crash in background" && sleep 1' < < !timeout 1 < $ sh -c 'echo "I crash in foreground"' $ ${bindir:=.}/tesh > Output of mismatch: > --- expected > +++ obtained > @@ -0,0 +1 @@ > +I crash in foreground > Test suite `meh.tesh': NOK ( output mismatch) > Output of mismatch: > --- expected > +++ obtained > @@ -0,0 +1 @@ > +I also crash in background > Test suite `meh.tesh': NOK ( output mismatch) > Test suite `meh.tesh': NOK ( timeout after 4 sec) > Output of mismatch: > --- expected > +++ obtained > @@ -0,0 +1 @@ > +I crash in background > Test suite `meh.tesh': NOK ( output mismatch)