public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: passt-dev@passt.top
Subject: [PATCH 03/11] test: Allow a tmux pane to watch commands executed in contexts
Date: Fri, 02 Sep 2022 12:14:52 +1000	[thread overview]
Message-ID: <20220902021500.25358-4-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20220902021500.25358-1-david@gibson.dropbear.id.au>

[-- Attachment #1: Type: text/plain, Size: 1614 bytes --]

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(a)gibson.dropbear.id.au>
---
 test/lib/term | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/test/lib/term b/test/lib/term
index ddabf8d..fa34873 100755
--- a/test/lib/term
+++ b/test/lib/term
@@ -241,6 +241,24 @@ pane_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() {
 	[ -z "${STATUS_FILE}" ] && return
-- 
@@ -241,6 +241,24 @@ pane_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() {
 	[ -z "${STATUS_FILE}" ] && return
-- 
2.37.2


  parent reply	other threads:[~2022-09-02  2:14 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-02  2:14 [PATCH 00/11] Improve command dispatch in test scripts David Gibson
2022-09-02  2:14 ` [PATCH 01/11] test: Correctly match "background" with "wait" commands David Gibson
2022-09-02  2:14 ` [PATCH 02/11] test: Context execution helpers David Gibson
2022-09-02  2:14 ` David Gibson [this message]
2022-09-02  2:14 ` [PATCH 04/11] test: Integration of old-style pane execution and new context execution David Gibson
2022-09-02  2:14 ` [PATCH 05/11] test: Issue host commands via context for most tests David Gibson
2022-09-02  2:14 ` [PATCH 06/11] test: Use new-style contexts for passt pane in the pasta and passt tests David Gibson
2022-09-02  2:14 ` [PATCH 07/11] test: Add nsholder utility David Gibson
2022-09-02  2:14 ` [PATCH 08/11] test: Extend context system to run commands in namespace for pasta tests David Gibson
2022-09-02  2:14 ` [PATCH 09/11] test: Use context system for guest commands David Gibson
2022-09-02  2:14 ` [PATCH 10/11] test: Use context system for two_guests tests David Gibson
2022-09-02  2:15 ` [PATCH 11/11] test: Use new-style command issue for passt_in_ns tests David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220902021500.25358-4-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).