[PATCH v8 01/12] tests: improve syscall set syntax testing
Dmitry V. Levin
ldv at altlinux.org
Tue Aug 22 15:57:45 UTC 2017
On Tue, Aug 22, 2017 at 01:01:42PM +0700, Nikolay Marchuk wrote:
> * tests/filtering_syscall-syntax.test: New file.
> * tests/options-syntax.test: Move syscall set syntax testing to
> filtering_syscall-syntax.test.
> * tests/qual_fault-syntax.test: Likewise.
> * tests/qual_inject-syntax.test: Likewise.
> * tests/Makefile.am (MISC_TESTS): Add filtering_syscall-syntax.test.
> ---
> tests/Makefile.am | 1 +
> tests/filtering_syscall-syntax.test | 133 ++++++++++++++++++++++++++++++++++++
> tests/options-syntax.test | 17 -----
> tests/qual_fault-syntax.test | 17 +----
> tests/qual_inject-syntax.test | 18 +----
> 5 files changed, 136 insertions(+), 50 deletions(-)
> create mode 100755 tests/filtering_syscall-syntax.test
>
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 42a66c46..09fcc5ed 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -258,6 +258,7 @@ MISC_TESTS = \
> detach-stopped.test \
> filter-unavailable.test \
> fflush.test \
> + filtering_syscall-syntax.test \
> get_regs.test \
> interactive_block.test \
> ksysent.test \
> diff --git a/tests/filtering_syscall-syntax.test b/tests/filtering_syscall-syntax.test
> new file mode 100755
> index 00000000..78c1da7f
> --- /dev/null
> +++ b/tests/filtering_syscall-syntax.test
> @@ -0,0 +1,133 @@
> +#!/bin/sh
> +#
> +# Check syscall set parsing syntax.
> +#
> +# Copyright (c) 2016-2017 Dmitry V. Levin <ldv at altlinux.org>
> +# Copyright (c) 2017 Nikolay Marchuk <marchuk.nikolay.a at gmail.com>
> +# All rights reserved.
> +#
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions
> +# are met:
> +# 1. Redistributions of source code must retain the above copyright
> +# notice, this list of conditions and the following disclaimer.
> +# 2. Redistributions in binary form must reproduce the above copyright
> +# notice, this list of conditions and the following disclaimer in the
> +# documentation and/or other materials provided with the distribution.
> +# 3. The name of the author may not be used to endorse or promote products
> +# derived from this software without specific prior written permission.
> +#
> +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
> +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
> +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
> +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
> +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +. "${srcdir=.}/syntax.sh"
> +
> +check_syscall()
> +{
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e"$2"
> + check_e "invalid system call '$1'" -e "$2"
> + check_e "invalid system call '$1'" -etrace="$2"
> + check_e "invalid system call '$1'" -e trace="$2"
> + check_e "invalid system call '$1'" -e abbrev="$2"
> + check_e "invalid system call '$1'" -e verbose="$2"
> + check_e "invalid system call '$1'" -e raw="$2"
> + check_e "invalid system call '$1'" -e inject="$2"
The test FAILs on HEAD with the following dignostics:
-../../strace: invalid system call ''
+../../strace: invalid inject argument ''
> + check_e "invalid system call '$1'" -e inject="$2:when=3"
> + check_e "invalid system call '$1'" -e fault="$2"
> + check_e "invalid system call '$1'" -e fault="$2:when=4"
> +}
> +
> +check_syscall_new()
Why check_syscall_new?
> +{
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e "syscall $2"
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e "(syscall $2)"
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e "((syscall $2))"
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e "((syscall none) or syscall $2)"
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e "((syscall all) and syscall $2)"
> + [ -z "$2" ] || check_e "invalid system call '$1'" -e "trace(syscall $2)"
> +}
Note a lot of redundancy here.
Are two subsequent space symbols after "syscall" intended?
--
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/20170822/14be7fd7/attachment.bin>
More information about the Strace-devel
mailing list