1#!/bin/sh 2# Check the set of headers with conformtest expectations for a given standard. 3# Copyright (C) 2014-2022 Free Software Foundation, Inc. 4# This file is part of the GNU C Library. 5 6# The GNU C Library is free software; you can redistribute it and/or 7# modify it under the terms of the GNU Lesser General Public 8# License as published by the Free Software Foundation; either 9# version 2.1 of the License, or (at your option) any later version. 10 11# The GNU C Library is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14# Lesser General Public License for more details. 15 16# You should have received a copy of the GNU Lesser General Public 17# License along with the GNU C Library; if not, see 18# <https://www.gnu.org/licenses/>. 19 20set -e 21 22std=$1 23CC=$2 24expected_list=$3 25all_data_files=$4 26 27new_list= 28 29for f in $all_data_files; do 30 h=${f#data/} 31 h=${h%-data} 32 exp=$($CC -D$std -x c -E $f | sed -e '/^#/d' -e '/^[ ]*$/d') 33 if [ "$exp" ]; then 34 new_list="$new_list $h" 35 fi 36done 37 38echo "Headers with expectations for $std: $new_list" 39echo "Expected list: $expected_list" 40 41rc=0 42 43for h in $expected_list; do 44 case " $new_list " in 45 (*" $h "*) 46 ;; 47 (*) 48 echo "Missing expectations for $h." 49 rc=1 50 ;; 51 esac 52done 53 54for h in $new_list; do 55 case " $expected_list " in 56 (*" $h "*) 57 ;; 58 (*) 59 echo "Spurious expectations for $h." 60 rc=1 61 ;; 62 esac 63done 64 65exit $rc 66