On Wed, Apr 05, 2023 at 01:59:12PM +0200, Stefano Brivio wrote: > On Tue, 4 Apr 2023 11:46:36 +1000 > David Gibson wrote: > > > Using this, rather than using "nstool info" to get the pid then manually > > connecting with nsenter makes things a little simpler. > > > > Signed-off-by: David Gibson > > --- > > test/lib/context | 14 +++++++++----- > > test/lib/setup | 33 +++++++++++++-------------------- > > test/run | 2 +- > > 3 files changed, 23 insertions(+), 26 deletions(-) > > > > diff --git a/test/lib/context b/test/lib/context > > index ee6b683..d9d8260 100644 > > --- a/test/lib/context > > +++ b/test/lib/context > > @@ -13,6 +13,8 @@ > > # Copyright Red Hat > > # Author: David Gibson > > > > +NSTOOL="${BASEPATH}/nstool" > > + > > # context_setup_common() - Create outline of a new context > > # $1: Context name > > context_setup_common() { > > @@ -30,15 +32,17 @@ context_setup_host() { > > echo sh -c > "${__enter}" > > } > > > > -# context_setup_nsenter() - Create a new context for running commands in a namespace > > +# context_setup_nstool() - Create a new context for running commands with nstool exec > > # $1: Context name > > -# $2: Namespace PID > > -context_setup_nsenter() { > > +# $2: nstool control socket > > +context_setup_nstool() { > > __name="$1" > > - shift > > + __sock="$2" > > __enter="${STATESETUP}/context_${__name}.enter" > > + # Wait for the ns to be ready > > + ${NSTOOL} info -w "${__sock}" > /dev/null > > Bad indentation here. Fixed. Drat, emacs isn't doing what I expected here. [snip] > > > > # teardown_two_guests() - Exit namespaces, kill qemu processes, passt and pasta > > teardown_two_guests() { > > - __ns1_pid=$(${NSTOOL} info -pw "${STATESETUP}/ns1.hold") > > - __ns2_pid=$(${NSTOOL} info -pw "${STATESETUP}/ns2.hold") > > - nsenter -U -p --preserve-credentials -t ${__ns1_pid} kill $(cat "${STATESETUP}/qemu_1.pid") > > - nsenter -U -p --preserve-credentials -t ${__ns2_pid} kill $(cat "${STATESETUP}/qemu_2.pid") > > + ${NSTOOL} exec ${STATESETUP}/ns1.hold -- kill $(cat "${STATESETUP}/qemu_1.pid") > > + ${NSTOOL} exec ${STATESETUP}/ns2.hold -- kill $(cat "${STATESETUP}/qemu_2.pid") > > context_wait qemu_1 > > context_wait qemu_2 > > > > - nsenter -U -p --preserve-credentials -t ${__ns1_pid} kill $(cat "${STATESETUP}/passt_1.pid") > > - nsenter -U -p --preserve-credentials -t ${__ns2_pid} kill $(cat "${STATESETUP}/passt_2.pid") > > + ${NSTOOL} exec ${STATESETUP}/ns1.hold -- kill $(cat "${STATESETUP}/passt_1.pid") > > + ${NSTOOL} exec ${STATESETUP}/ns2.hold -- kill $(cat "${STATESETUP}/passt_2.pid") > > ...and here. Fixed here as well. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson