[PATCH v10 10/16] tests: check error handling of syscall filter
Nikolay Marchuk
marchuk.nikolay.a at gmail.com
Mon Aug 28 08:54:47 UTC 2017
* tests/filtering_syscall-syntax.test: Add checks of syscall filter.
* tests/qual_fault-syntax.test: Move checks with ':' to filtering_syscall-syntax.test
* tests/qual_inject-syntax.test: Likewise.
---
tests/filtering_syscall-syntax.test | 39 +++++++++++++++++++++++++++++++++++--
tests/qual_fault-syntax.test | 4 ----
tests/qual_inject-syntax.test | 4 ----
3 files changed, 37 insertions(+), 10 deletions(-)
diff --git a/tests/filtering_syscall-syntax.test b/tests/filtering_syscall-syntax.test
index 07a62140..560b7bf0 100755
--- a/tests/filtering_syscall-syntax.test
+++ b/tests/filtering_syscall-syntax.test
@@ -45,9 +45,28 @@ check_syscall()
check_e "invalid system call '$1'" -e fault="$2:when=4"
}
+# Check different variations of new syntax.
+check_syscall_new()
+{
+ if [ -n "$2" ]; then
+ check_e "invalid system call '$1'" -e "syscall $2"
+ check_e "invalid system call '$1'" -e "(syscall $2)"
+ check_e "invalid system call '$1'" -e "((syscall $2))"
+ check_e "invalid system call '$1'" -e "((syscall none) or syscall $2)"
+ check_e "invalid system call '$1'" -e "((syscall all) and syscall $2)"
+ check_e "invalid system call '$1'" -e "trace(syscall $2)"
+ fi
+}
+
for arg in '' , ,, ,,, ; do
check_syscall "$arg" "$arg"
check_syscall "!$arg" "!$arg"
+ check_syscall_new "$arg" "$arg"
+done
+
+for arg in : :: ::: ; do
+ check_syscall "" "$arg"
+ check_syscall "!" "!$arg"
done
for arg in -1 -2 -3 -4 -5 \
@@ -63,6 +82,16 @@ for arg in -1 -2 -3 -4 -5 \
; do
check_syscall "$arg" "$arg"
check_syscall "$arg" "!$arg"
+ check_syscall_new "$arg" "$arg"
+done
+
+for arg in desc \
+ file \
+ memory \
+ process \
+ network \
+ ; do
+ check_syscall_new "$arg" "$arg"
done
# invalid syscall, multiple syscalls
@@ -79,13 +108,14 @@ for arg in %desc \
?/non_syscall \
; do
check_syscall nonsense "$arg,nonsense"
- check_syscall nonsense "!$arg,nonsense"
check_syscall nonsense "nonsense,$arg"
- check_syscall nonsense "!nonsense,$arg"
+ check_syscall_new nonsense "$arg,nonsense"
+ check_syscall_new nonsense "nonsense,$arg"
done
for arg in \! \!open none all -1; do
check_syscall "$arg" "1,$arg"
+ check_syscall_new "$arg" "1,$arg"
done
check_e_using_grep 'regcomp: \+id: [[:alpha:]].+' -e trace='/+id'
@@ -93,3 +123,8 @@ 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(syscall /+id)'
+check_e_using_grep 'regcomp: \*id: [[:alpha:]].+' -e 'trace(syscall /*id)'
+check_e_using_grep 'regcomp: \{id: [[:alpha:]].+' -e 'trace(syscall /{id)'
+check_e_using_grep 'regcomp: \(id: [[:alpha:]].+' -e 'trace(syscall /\(id)'
+check_e_using_grep 'regcomp: \[id: [[:alpha:]].+' -e 'trace(syscall /[id)'
diff --git a/tests/qual_fault-syntax.test b/tests/qual_fault-syntax.test
index 1a545b6e..7198afff 100755
--- a/tests/qual_fault-syntax.test
+++ b/tests/qual_fault-syntax.test
@@ -40,10 +40,6 @@ fail_with()
"strace -e fault=$* failed to handle an argument error properly"
}
-for arg in : :: ::: ; do
- check_e "invalid system call ''" -e fault="$arg"
-done
-
for arg in chdir:42 \!chdir:42 \
chdir:42:when=7 \
chdir:invalid \
diff --git a/tests/qual_inject-syntax.test b/tests/qual_inject-syntax.test
index 3866bdcf..17c18fde 100755
--- a/tests/qual_inject-syntax.test
+++ b/tests/qual_inject-syntax.test
@@ -40,10 +40,6 @@ fail_with()
"strace -e inject=$* failed to handle an argument error properly"
}
-for arg in : :: ::: ; do
- check_e "invalid system call ''" -e inject="$arg"
-done
-
for arg in 42 chdir \
chdir:42 \!chdir:42 \
chdir:42:when=7 \
--
2.11.0
More information about the Strace-devel
mailing list