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 v2 00/32] Improve handling of test temporary files
Date: Thu, 08 Sep 2022 16:15:49 +1000	[thread overview]
Message-ID: <20220908061621.2430844-1-david@gibson.dropbear.id.au> (raw)

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

The tests create temporary files and fifos in a number of places.
Some of them can interfere with later test runs, and are awkward to
clean up.  Consolidate them in a single per-run directory in /tmp
which gets cleaned up automatically.

This is based on the earlier userns cleanup series.

Chances since v1:
 * Fixed a number of straightforward bugs where things were missed
 * Also removed files we're no longer putting into the source tree
   from .gitignore
 * Added an extra patch moving the video processing files

David Gibson (32):
  test: Correctly match "background" with "wait" commands
  test: Context execution helpers
  test: Allow a tmux pane to watch commands executed in contexts
  test: Integration of old-style pane execution and new context
    execution
  test: Issue host commands via context for most tests
  test: Use new-style contexts for passt pane in the pasta and passt
    tests
  test: Add nsholder utility
  test: Extend context system to run commands in namespace for pasta
    tests
  test: Use context system for guest commands
  test: Use context system for two_guests tests
  test: Use new-style command issue for passt_in_ns tests
  Don't store UID & GID persistently in the context structure
  Split checking for root from dropping root privilege
  Consolidate determination of UID/GID to run as
  Safer handling if we can't open /proc/self/uid_map
  Move self-isolation code into a separate file
  Consolidate validation of pasta namespace options
  Clean up and rename conf_ns_open()
  Correctly handle --netns-only in pasta_start_ns()
  Handle userns isolation and dropping root at the same time
  Allow --userns when pasta spawns a command
  test: Group tests by context then protocol, rather than the reverse
  test: Remove unused variable FFMPEG_PID_FILE
  test: Actually run cleanup function
  test: Create common state directories for temporary files
  test: Move context temporary files to state dir
  test: Dont regnerate small test file in pasta/tcp
  test: Use paths in __STATEDIR__ instead of 'temp' and 'tempdir'
    directives
  test: Move pause temporary file to state directory
  test: Store pcap files in $LOGDIR instead of /tmp
  test: Move pidfiles and nsholder sockets into state directory
  test: Move video processing files to $STATEBASE

 .gitignore                                    |   1 -
 Makefile                                      |   8 +-
 conf.c                                        | 236 +++++++-------
 isolation.c                                   | 210 +++++++++++++
 isolation.h                                   |  15 +
 passt.1                                       |   5 +-
 passt.c                                       | 116 +------
 passt.h                                       |   9 -
 pasta.c                                       |  91 ++++--
 pasta.h                                       |   1 +
 test/.gitignore                               |   6 +-
 test/Makefile                                 |  13 +-
 test/build/all                                |  31 +-
 test/demo/passt                               |   9 +-
 test/demo/pasta                               |  12 +-
 test/demo/podman                              |  11 +-
 test/distro/debian                            |   2 +-
 test/distro/fedora                            |   2 +-
 test/distro/opensuse                          |  16 +-
 test/distro/ubuntu                            |   8 +-
 test/lib/context                              | 128 ++++++++
 test/lib/layout                               |  61 ++--
 test/lib/setup                                | 296 +++++++++---------
 test/lib/term                                 |  98 +++++-
 test/lib/test                                 | 152 ++++-----
 test/lib/video                                |  20 +-
 test/nsholder.c                               | 117 +++++++
 test/passt.mbuto                              |  32 +-
 test/{dhcp/passt => passt/dhcp}               |   2 +-
 test/{ndp/passt => passt/ndp}                 |   2 +-
 test/{shutdown/passt => passt/shutdown}       |   8 +-
 test/{tcp/passt => passt/tcp}                 |   8 +-
 test/{udp/passt => passt/udp}                 |   9 +-
 test/{icmp/passt_in_ns => passt_in_ns/icmp}   |   2 +-
 .../passt_in_ns => passt_in_ns/shutdown}      |   8 +-
 test/{tcp/passt_in_ns => passt_in_ns/tcp}     |  27 +-
 test/{udp/passt_in_ns => passt_in_ns/udp}     |  13 +-
 test/{dhcp/pasta => pasta/dhcp}               |   2 +-
 test/{ndp/pasta => pasta/ndp}                 |   2 +-
 test/{tcp/pasta => pasta/tcp}                 |  14 +-
 test/{udp/pasta => pasta/udp}                 |  21 +-
 test/run                                      |  42 +--
 util.c                                        |  83 -----
 util.h                                        |   2 -
 44 files changed, 1159 insertions(+), 792 deletions(-)
 create mode 100644 isolation.c
 create mode 100644 isolation.h
 create mode 100644 test/lib/context
 create mode 100644 test/nsholder.c
 rename test/{dhcp/passt => passt/dhcp} (98%)
 rename test/{ndp/passt => passt/ndp} (95%)
 rename test/{shutdown/passt => passt/shutdown} (75%)
 rename test/{tcp/passt => passt/tcp} (95%)
 rename test/{udp/passt => passt/udp} (88%)
 rename test/{icmp/passt_in_ns => passt_in_ns/icmp} (94%)
 rename test/{shutdown/passt_in_ns => passt_in_ns/shutdown} (75%)
 rename test/{tcp/passt_in_ns => passt_in_ns/tcp} (97%)
 rename test/{udp/passt_in_ns => passt_in_ns/udp} (97%)
 rename test/{dhcp/pasta => pasta/dhcp} (96%)
 rename test/{ndp/pasta => pasta/ndp} (95%)
 rename test/{tcp/pasta => pasta/tcp} (95%)
 rename test/{udp/pasta => pasta/udp} (74%)

-- 
2.37.3


             reply	other threads:[~2022-09-08  6:15 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-08  6:15 David Gibson [this message]
2022-09-08  6:15 ` [PATCH v2 01/32] test: Correctly match "background" with "wait" commands David Gibson
2022-09-08  6:15 ` [PATCH v2 02/32] test: Context execution helpers David Gibson
2022-09-08  6:15 ` [PATCH v2 03/32] test: Allow a tmux pane to watch commands executed in contexts David Gibson
2022-09-08  6:15 ` [PATCH v2 04/32] test: Integration of old-style pane execution and new context execution David Gibson
2022-09-08  6:15 ` [PATCH v2 05/32] test: Issue host commands via context for most tests David Gibson
2022-09-08  6:15 ` [PATCH v2 06/32] test: Use new-style contexts for passt pane in the pasta and passt tests David Gibson
2022-09-08  6:15 ` [PATCH v2 07/32] test: Add nsholder utility David Gibson
2022-09-08  6:15 ` [PATCH v2 08/32] test: Extend context system to run commands in namespace for pasta tests David Gibson
2022-09-08  6:15 ` [PATCH v2 09/32] test: Use context system for guest commands David Gibson
2022-09-08  6:15 ` [PATCH v2 10/32] test: Use context system for two_guests tests David Gibson
2022-09-08  6:16 ` [PATCH v2 11/32] test: Use new-style command issue for passt_in_ns tests David Gibson
2022-09-08  6:16 ` [PATCH v2 12/32] Don't store UID & GID persistently in the context structure David Gibson
2022-09-08  6:16 ` [PATCH v2 13/32] Split checking for root from dropping root privilege David Gibson
2022-09-08  6:16 ` [PATCH v2 14/32] Consolidate determination of UID/GID to run as David Gibson
2022-09-08  6:16 ` [PATCH v2 15/32] Safer handling if we can't open /proc/self/uid_map David Gibson
2022-09-08  6:16 ` [PATCH v2 16/32] Move self-isolation code into a separate file David Gibson
2022-09-08  6:16 ` [PATCH v2 17/32] Consolidate validation of pasta namespace options David Gibson
2022-09-08  6:16 ` [PATCH v2 18/32] Clean up and rename conf_ns_open() David Gibson
2022-09-08  6:16 ` [PATCH v2 19/32] Correctly handle --netns-only in pasta_start_ns() David Gibson
2022-09-08  6:16 ` [PATCH v2 20/32] Handle userns isolation and dropping root at the same time David Gibson
2022-09-08  6:16 ` [PATCH v2 21/32] Allow --userns when pasta spawns a command David Gibson
2022-09-08  6:16 ` [PATCH v2 22/32] test: Group tests by context then protocol, rather than the reverse David Gibson
2022-09-08  6:16 ` [PATCH v2 23/32] test: Remove unused variable FFMPEG_PID_FILE David Gibson
2022-09-08  6:16 ` [PATCH v2 24/32] test: Actually run cleanup function David Gibson
2022-09-08  6:16 ` [PATCH v2 25/32] test: Create common state directories for temporary files David Gibson
2022-09-08  6:16 ` [PATCH v2 26/32] test: Move context temporary files to state dir David Gibson
2022-09-08  6:16 ` [PATCH v2 27/32] test: Dont regnerate small test file in pasta/tcp David Gibson
2022-09-08  6:16 ` [PATCH v2 28/32] test: Use paths in __STATEDIR__ instead of 'temp' and 'tempdir' directives David Gibson
2022-09-08  6:16 ` [PATCH v2 29/32] test: Move pause temporary file to state directory David Gibson
2022-09-08  6:16 ` [PATCH v2 30/32] test: Store pcap files in $LOGDIR instead of /tmp David Gibson
2022-09-08  6:16 ` [PATCH v2 31/32] test: Move pidfiles and nsholder sockets into state directory David Gibson
2022-09-08  6:16 ` [PATCH v2 32/32] test: Move video processing files to $STATEBASE 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=20220908061621.2430844-1-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).