From 55bbe3dbcb043b62f2d8b7f204873c160d40e7b9 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 5 Apr 2023 11:56:42 +1000 Subject: test: Remove race between commands run in the same context context_run() has a race condition if two commands are run in close proximity (generally involving at least one in the background). Because we always use the same name for the temporary fifo files, if another command is issued while the fifos for the first still exist, mkfifo will fail, typically causing the entire test script to jam. Create unique names for the temporary fifos to avoid this problem. Signed-off-by: David Gibson Signed-off-by: Stefano Brivio --- test/lib/context | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/lib/context b/test/lib/context index e84fc18..624f86b 100644 --- a/test/lib/context +++ b/test/lib/context @@ -89,8 +89,8 @@ context_run() { __name="$1" __log="${LOGDIR}/context_${__name}.log" __enter="${STATESETUP}/context_${__name}.enter" - __stdout="${STATESETUP}/context_${__name}.stdout" - __stderr="${STATESETUP}/context_${__name}.stderr" + __stdout="$(mktemp -u "${STATESETUP}/context_${__name}.stdout.XXXXXXXX")" + __stderr="$(mktemp -u "${STATESETUP}/context_${__name}.stderr.XXXXXXXX")" shift echo "$*" >> "${__log}" mkfifo "${__stdout}" "${__stderr}" -- cgit v1.2.3