test: Allow a tmux pane to watch commands executed in contexts

We're moving to a new way of the tests dispatching commands to running in
contexts (host, guest, namespace, etc.).  As we make this transition,
though, we still want the user to be able to watch the commands running
in a context, as they previously could from the commands issued in the
pane.

Add a helper to set up a pane to watch a context's log to allow this.  In
some cases we currently issue commands from several different logical
contexts in the same pane, so allow a pane to watch several contexts at
once.  Also use tail's --retry option to allow starting the watch before
we've initialized the context which will be useful in some cases.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
David Gibson 2022-09-12 20:56:16 +10:00 committed by Stefano Brivio
parent 3c47b65a64
commit a32df9b6f4

View file

@ -241,6 +241,24 @@ pane_status() {
return ${__status} return ${__status}
} }
# pane_watch_context() - Set up pane to watch commands executing in context(s)
# $1: Pane number
# $2: Description (for pane label)
# $@: Context name or names
pane_watch_contexts() {
__pane_number="${1}"
__desc="${2}"
shift 2
__name="${2}"
tmux select-pane -t ${__pane_number} -T "${__desc}"
__cmd="tail -f --retry"
for c; do
__cmd="${__cmd} ${LOGDIR}/context_${c}.log"
done
cmd_write ${__pane_number} "${__cmd}"
}
# status_file_end() - Display and log messages when tests from one file are done # status_file_end() - Display and log messages when tests from one file are done
status_file_end() { status_file_end() {
[ -z "${STATUS_FILE}" ] && return [ -z "${STATUS_FILE}" ] && return