1#!/bin/sh 2# 3# Check descriptor set parsing syntax. 4# 5# Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org> 6# Copyright (c) 2016-2018 The strace developers. 7# All rights reserved. 8# 9# Redistribution and use in source and binary forms, with or without 10# modification, are permitted provided that the following conditions 11# are met: 12# 1. Redistributions of source code must retain the above copyright 13# notice, this list of conditions and the following disclaimer. 14# 2. Redistributions in binary form must reproduce the above copyright 15# notice, this list of conditions and the following disclaimer in the 16# documentation and/or other materials provided with the distribution. 17# 3. The name of the author may not be used to endorse or promote products 18# derived from this software without specific prior written permission. 19# 20# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 21# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 22# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 24# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 25# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 29# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 31. "${srcdir=.}/syntax.sh" 32 33check_fd_qualify() 34{ 35 check_e "invalid descriptor '$1'" -e"read=$2" 36 check_e "invalid descriptor '$1'" -e "read=$2" 37 check_e "invalid descriptor '$1'" -e"write=$2" 38 check_e "invalid descriptor '$1'" -e "write=$2" 39} 40 41for arg in '' , ,, ,,, ; do 42 check_fd_qualify "$arg" "$arg" 43 check_fd_qualify "!$arg" "!$arg" 44done 45 46for arg in -1 -42 \ 47 not_fd \ 48 2147483648 \ 49 4294967296 \ 50 ; do 51 check_fd_qualify "$arg" "$arg" 52 check_fd_qualify "$arg" "1,$arg" 53 check_fd_qualify "$arg" "$arg,1" 54 check_fd_qualify "$arg" "!$arg" 55done 56 57for arg in ! all none; do 58 check_fd_qualify "$arg" "1,$arg" 59 check_fd_qualify "!$arg" "1,!$arg" 60done 61