[PATCH v8 0/4] Stage output and filter on syscall return statuses
Dmitry V. Levin
ldv at altlinux.org
Fri Jul 12 01:36:33 UTC 2019
On Thu, Jul 11, 2019 at 04:08:06PM +0200, Paul Chaignon wrote:
> The first patch adds the -Z option; the second implements the output
> staging; the third introduces the -e status=set option, and the last adds
> five new test cases.
>
> In addition to the test cases in this patchset, I performed several manual
> tests over the entire test suite. First, I set -e status to default to
> the empty set (using 'none') and checked that none of the existing tests
> were returning syscalls. Second, I set -e status to default to the
> complete set (explicitly, not using 'all') and checked that all tests were
> succeeding. Finally, I added a dummy entry to the status set, set -e
> status to default to the complete set minus that entry, and checked all
> tests were succeeding again. This last test differs from the previous
> because the output is only staged when the -e status set in incomplete.
> With this third check, the threads-execve test failed because the syscalls
> were printed out in a different order (expected and mentioned in the man
> page).
>
> Changelogs:
> Changes in v8:
> - Avoid marking staged syscalls as unfinished/resumed.
> - Skip kernels <3.1 for status=none and status=unfinished tests.
> - Remove unnecessary sleeps in multithreaded tests.
> - Fix racy status=detached test.
> - Add single-thread status=unfinished and status=none tests. Renamed
> multithreaded tests to status-unfinished-threads and
> status-none-threads.
> - Run multithreaded tests in a loop until they succeed.
> - Minor fixes to man page and commit messages.
> Changes in v7:
> - Rebase on master.
> Changes in v6:
> - Improved man page wording.
> - Use ARRAY_SIZE() in filter_qualify.c.
> - Fix racy status-unfinished.c test.
> - Remove restriction on traced syscalls for detached, unfinished, and
> none tests.
> - Minor fixes in tests.
> - Add NEWS entries.
> Changes in v5:
> - Test case for status=detached.
> - Print warning when both -Z and -z are used.
> - Fix -z and -Z aliases to -estatus.
> - Fix memory leak.
> - Fix comment formatting, indentations, and list orderings.
> - Refactor popcount functions.
> - Rename __MAX_STATUS to NUMBER_OF_STATUSES.
> - Fix man page formatting.
> - Trace exit_group in multithreads test cases.
> - Refactor test cases based on chdir(2).
> Changes in v4:
> - Title change from "Stage output for -z and new -Z options".
> - Add -e status=set option.
> - Fix for stage output under execve switch.
> - Remove most HAVE_OPEN_MEMSTREAM guards.
> - Fix for filtering in raw(tcp) case.
> - Simplify test cases for failed and successful.
> - Add test cases for all, none, and unfinished statuses.
> Changes in v3:
> - Refactor/rename functions in stage_output.c (use bool drop).
> - Move staging start/end to func syscall_entering_trace/
> syscall_exiting trace.
> - Add -z/-Z option to strace man page (strace.1.in).
> - Rename test binaries to strace-z/strace-Z.
> - Swap _NR_open to _NR_chdir for test cases.
> Changes in v2:
> - Fix stage_output.c added to wrong patch.
>
> Paul Chaignon (4):
> Add -Z option to print only failing syscalls
> Stage output for -z and -Z options
> Implement -e status=set option
> tests: check status qualifier
>
> Makefile.am | 1 +
> NEWS | 3 ++
> configure.ac | 1 +
> defs.h | 33 ++++++++++++-
> filter_qualify.c | 33 +++++++++++++
> number_set.c | 17 +++++++
> number_set.h | 13 +++++
> signal.c | 19 --------
> stage_output.c | 64 ++++++++++++++++++++++++
> strace.1.in | 54 ++++++++++++++++++++
> strace.c | 73 ++++++++++++++++++++++------
> syscall.c | 32 +++++++-----
> tests/.gitignore | 7 +++
> tests/Makefile.am | 9 ++++
> tests/gen_tests.in | 5 ++
> tests/pure_executables.list | 5 ++
> tests/status-all.c | 24 +++++++++
> tests/status-detached.expected | 1 +
> tests/status-detached.test | 18 +++++++
> tests/status-failed.c | 24 +++++++++
> tests/status-none-threads.c | 53 ++++++++++++++++++++
> tests/status-none-threads.test | 44 +++++++++++++++++
> tests/status-none.c | 18 +++++++
> tests/status-successful.c | 24 +++++++++
> tests/status-unfinished-threads.c | 55 +++++++++++++++++++++
> tests/status-unfinished-threads.test | 12 +++++
> tests/status-unfinished.c | 19 ++++++++
> tests/status.c | 21 ++++++++
> tests/tests.h | 3 ++
> 29 files changed, 640 insertions(+), 45 deletions(-)
> create mode 100644 stage_output.c
> create mode 100644 tests/status-all.c
> create mode 100644 tests/status-detached.expected
> create mode 100755 tests/status-detached.test
> create mode 100644 tests/status-failed.c
> create mode 100644 tests/status-none-threads.c
> create mode 100755 tests/status-none-threads.test
> create mode 100644 tests/status-none.c
> create mode 100644 tests/status-successful.c
> create mode 100644 tests/status-unfinished-threads.c
> create mode 100755 tests/status-unfinished-threads.test
> create mode 100644 tests/status-unfinished.c
> create mode 100644 tests/status.c
This is now merged into master. Thanks for making it happen!
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20190712/9d64b39a/attachment.bin>
More information about the Strace-devel
mailing list