On Fri, Aug 11, 2017 at 05:43:46PM +0700, Nikolay Marchuk wrote: > * tests/filtering_syscall-syntax.test: New file. > * tests/syntax.sh: New file. > * tests/options-syntax.test: Move syscall syntax testing to > filtering_syscall-syntax.test. Move check_* functions to syntax.sh. > * tests/Makefile.am (MISC_TESTS): Add filtering_syscall-syntax.test. > (EXTRA_DIST): Add syntax.sh.
The commit message is out of sync with the change itself. > --- > tests/Makefile.am | 1 + > tests/filtering_syscall-syntax.test | 91 > +++++++++++++++++++++++++++++++++++++ > tests/options-syntax.test | 17 ------- > 3 files changed, 92 insertions(+), 17 deletions(-) > create mode 100755 tests/filtering_syscall-syntax.test > > diff --git a/tests/Makefile.am b/tests/Makefile.am > index f038226e..6b90d710 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -257,6 +257,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..698a894c > --- /dev/null > +++ b/tests/filtering_syscall-syntax.test > @@ -0,0 +1,91 @@ > +#!/bin/sh > +# > +# Check syscall set parsing syntax. > +# > +# Copyright (c) 2016-2017 Dmitry V. Levin <l...@altlinux.org> > +# Copyright (c) 2017 Nikolay Marchuk <marchuk.nikola...@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() > +{ > + 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" consider adding -equal=... (without space) variants, as well as -e "$2" [ -z "$2" ] || ... -e"$2" > +} > + > +# invalid syscall > +for arg in '' , ,, ,,, : :: ::: \! \!, \ > + invalid_syscall_name \ > + -1 -2 -3 -4 -5 \ > + 32767 \ > + 2147483647 \ > + 2147483648 \ > + 4294967295 \ > + 4294967296 \ > + /non_syscall \ > + % %not_a_class \ > + ; do > + check_syscall "$arg" "$arg" > +done > + > +# invalid syscall with inversion > +for arg in -1 -2 -3 -4 -5 \ > + invalid_syscall_name \ > + 32767 \ > + 2147483647 \ > + 2147483648 \ > + 4294967295 \ > + 4294967296 \ > + /non_syscall \ > + % %not_a_class \ > + ; do > + check_syscall "$arg" \!"$arg" > +done These two groups of tests have a lot in common. Could you reduce the redundancy, please? > + > +# invalid syscall, multiple syscalls > +for arg in file,nonsense \ > + \!desc,nonsense \ > + chdir,nonsense \ > + \!chdir,nonsense \ > + 1,nonsense \ > + \!1,nonsense \ > + ; do > + check_syscall "nonsense" "$arg" > +done for arg in file desc chdir 1; do check_syscall nonsense "$arg,nonsense" check_syscall nonsense "!$arg,nonsense" done - isn't it shorter and easier to read? > + > +# special cases > +check_syscall ":" \!: Why this case is special? isn't it an "invalid syscall with inversion"? > +check_syscall "!" 1,\! > +check_syscall "!open" 1,\!open > +check_syscall "none" 1,none > +check_syscall "all" 1,all for arg in \! \!open none all; do check_syscall "$arg" "1,$arg" done - isn't it shorter and easier to read? > + > +check_e_using_grep 'regcomp: \+id: [[:alpha:]].+' -e trace='/+id' > +check_e_using_grep 'regcomp: \*id: [[:alpha:]].+' -e trace='/*id' > +check_e_using_grep 'regcomp: \{id: [[:alpha:]].+' -e trace='/{id' > +check_e_using_grep 'regcomp: \(id: [[:alpha:]].+' -e trace='/(id' > +check_e_using_grep 'regcomp: \[id: [[:alpha:]].+' -e trace='/[id' > diff --git a/tests/options-syntax.test b/tests/options-syntax.test > index b4d9be70..47f6b66e 100755 > --- a/tests/options-syntax.test > +++ b/tests/options-syntax.test > @@ -37,17 +37,6 @@ check_e "Invalid process id: 'a'" -p 1,a > check_e "Syscall 'chdir' for -b isn't supported" -b chdir > check_e "Syscall 'chdir' for -b isn't supported" -b execve -b chdir > > -check_e "invalid system call '-1'" -e-1 > -check_e "invalid system call '-2'" -e -2 > -check_e "invalid system call '-3'" -etrace=-3 > -check_e "invalid system call '-4'" -e trace=-4 > -check_e "invalid system call '-5'" -e trace=1,-5 If you remove -e-1, -e -2, and -etrace=-3, please add them or their analogues somewhere else. -- ldv
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel