/
githubmirror
/
strace
Обзор
Документация
Войти
/
githubmirror
/
strace
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/filtering_syscall-syntax.test
138 строк
4 KB
Dmitry V. Levin
tests: fix injection tests on ia64 architecture
19 ноя 2022, 11:00
19 ноя 2022, 11:00
940a51f
Код
Авторство
О чём код?
#!/bin/sh # # Check syscall set parsing syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin <ldv@strace.io> # Copyright (c) 2017 Nikolay Marchuk <marchuk.nikolay.a@gmail.com> # Copyright (c) 2018-2022 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${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'" --trace="$2" check_e "invalid system call '$1'" -e trace="$2" check_e "invalid system call '$1'" -eabbrev="$2" check_e "invalid system call '$1'" --abbrev="$2" check_e "invalid system call '$1'" -e abbrev="$2" check_e "invalid system call '$1'" -everbose="$2" check_e "invalid system call '$1'" --verbose="$2" check_e "invalid system call '$1'" -e verbose="$2" check_e "invalid system call '$1'" -eraw="$2" check_e "invalid system call '$1'" --raw="$2" check_e "invalid system call '$1'" -e raw="$2" check_e "invalid system call '$1'" -einject="$2" check_e "invalid system call '$1'" --inject="$2" check_e "invalid system call '$1'" -e inject="$2" check_e "invalid system call '$1'" -einject="$2:" check_e "invalid system call '$1'" -einject="$2::" check_e "invalid system call '$1'" -einject="$2:::" check_e "invalid system call '$1'" --inject="$2:" check_e "invalid system call '$1'" --inject="$2::" check_e "invalid system call '$1'" --inject="$2:::" check_e "invalid system call '$1'" -e inject="$2:" check_e "invalid system call '$1'" -e inject="$2::" check_e "invalid system call '$1'" -e inject="$2:::" check_e "invalid system call '$1'" -einject="$2:when=3" check_e "invalid system call '$1'" --inject="$2:when=3" check_e "invalid system call '$1'" -e inject="$2:when=3" check_e "invalid system call '$1'" -efault="$2" check_e "invalid system call '$1'" --fault="$2" check_e "invalid system call '$1'" -e fault="$2" check_e "invalid system call '$1'" -efault="$2:" check_e "invalid system call '$1'" -efault="$2::" check_e "invalid system call '$1'" -efault="$2:::" check_e "invalid system call '$1'" --fault="$2:" check_e "invalid system call '$1'" --fault="$2::" check_e "invalid system call '$1'" --fault="$2:::" check_e "invalid system call '$1'" -e fault="$2:" check_e "invalid system call '$1'" -e fault="$2::" check_e "invalid system call '$1'" -e fault="$2:::" check_e "invalid system call '$1'" -efault="$2:when=4" check_e "invalid system call '$1'" --fault="$2:when=4" check_e "invalid system call '$1'" -e fault="$2:when=4" } pers=$(print_current_personality_designator) for arg in '' , ,, ,,, ; do check_syscall "$arg" "$arg" check_syscall "!$arg" "!$arg" done case "$STRACE_ARCH" in alpha) invalid_scno1=299 invalid_scno2=404 ;; *) invalid_scno1=415 invalid_scno2=501 ;; esac case "$STRACE_ARCH" in ia64) valid_scno=1025 ;; *) valid_scno=1 ;; esac for arg in -1 -2 -3 -4 -5 \ invalid_syscall_name \ 0x 0y \ 32767 \ 2147483647 \ 2147483648 \ 4294967295 \ 4294967296 \ $invalid_scno1 \ $invalid_scno2 \ /non_syscall \ % %not_a_class \ ; do check_syscall "$arg" "$arg" check_syscall "$arg" "!$arg" check_syscall "$arg" "$valid_scno,$arg" check_syscall "$arg@$pers" "$arg@$pers" done for arg in '!chdir' none; do check_syscall "$arg" "$valid_scno,$arg" done # invalid syscall, multiple syscalls for arg in %desc \ %file \ %memory \ %process \ %network \ chdir \ $valid_scno \ all \ ?32767 \ ?invalid \ ?%not_a_class \ ?/non_syscall \ ; do for pfx in '' '!'; do for token in "$arg" "$arg@$pers"; do check_syscall nonsense "${pfx}$token,nonsense" check_syscall nonsense "${pfx}nonsense,$token" done done done 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'