#!/bin/sh # Check the set of headers with conformtest expectations for a given standard. # Copyright (C) 2014-2016 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # The GNU C Library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see # . set -e setglobal std = $1 setglobal CC = $2 setglobal expected_list = $3 setglobal all_data_files = $4 setglobal new_list = '' for f in [$all_data_files] { setglobal h = $(f#data/) setglobal h = $(h%-data) setglobal exp = $[$CC -D$std -x c -E $f | sed -e '/^#/d' -e '/^[ ]*$/d] if test $exp { setglobal new_list = ""$new_list $h"" } } echo "Headers with expectations for $std: $new_list" echo "Expected list: $expected_list" setglobal rc = '0' for h in [$expected_list] { match " $new_list " { with (*" $h "* with (* echo "Missing expectations for $h." setglobal rc = '1' } } for h in [$new_list] { match " $expected_list " { with (*" $h "* with (* echo "Spurious expectations for $h." setglobal rc = '1' } } exit $rc