1# 2# Automated Testing Framework (atf) 3# 4# Copyright (c) 2007, 2008 The NetBSD Foundation, Inc. 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 1. Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 2. Redistributions in binary form must reproduce the above copyright 13# notice, this list of conditions and the following disclaimer in the 14# documentation and/or other materials provided with the distribution. 15# 16# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28# 29 30function warn(msg) { 31 print FILENAME "[" FNR "]: " msg > "/dev/stderr" 32 error = 1 33} 34 35BEGIN { 36 skip = 0 37 error = 0 38} 39 40/NO_CHECK_STYLE_BEGIN/ { 41 skip = 1 42 next 43} 44 45/NO_CHECK_STYLE_END/ { 46 skip = 0 47 next 48} 49 50/NO_CHECK_STYLE/ { 51 next 52} 53 54{ 55 if (skip) 56 next 57} 58 59/#ifdef/ { 60 warn("Undesired usage of #ifdef; use #if defined()") 61} 62 63/#ifndef/ { 64 warn("Undesired usage of #ifndef; use #if !defined()") 65} 66 67/assert[ \t]*\(/ { 68 warn("Use the macros in sanity.h instead of assert"); 69} 70 71/getprogname/ { 72 warn("getprogname(3) is not portable"); 73} 74 75/include.*assert.h/ { 76 warn("Do not include assert.h"); 77} 78 79/setprogname/ { 80 warn("setprogname(3) is not portable"); 81} 82 83/\/\// { 84 warn("Do not use C99-style comments"); 85} 86 87END { 88 if (skip) 89 warn("Missing NO_CHECK_STYLE_END"); 90 if (error) 91 exit 1 92} 93 94# vim: syntax=awk:expandtab:shiftwidth=4:softtabstop=4 95