From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id B23448D97 for ; Thu, 26 Apr 2018 18:08:19 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 52BF5406C745; Thu, 26 Apr 2018 16:08:19 +0000 (UTC) Received: from ktraynor.remote.csb (unknown [10.36.118.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6D8A9215CDC8; Thu, 26 Apr 2018 16:08:17 +0000 (UTC) To: Arnon Warshavsky , thomas@monjalon.net, anatoly.burakov@intel.com, wenzhuo.lu@intel.com, declan.doherty@intel.com, jerin.jacob@caviumnetworks.com, bruce.richardson@intel.com, ferruh.yigit@intel.com Cc: dev@dpdk.org References: <1524663944-30376-11-git-send-email-arnon@qwilt.com> <1524723664-30510-1-git-send-email-arnon@qwilt.com> <1524723664-30510-11-git-send-email-arnon@qwilt.com> From: Kevin Traynor Organization: Red Hat Message-ID: <22f61f91-9755-520c-9ba1-d93a312a43e3@redhat.com> Date: Thu, 26 Apr 2018 17:08:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <1524723664-30510-11-git-send-email-arnon@qwilt.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Thu, 26 Apr 2018 16:08:19 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Thu, 26 Apr 2018 16:08:19 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'ktraynor@redhat.com' RCPT:'' Subject: Re: [dpdk-dev] [PATCH v9 10/10] devtools: prevent new instances of rte_panic and rte_exit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2018 16:08:20 -0000 I think the first line of the commit msg ^^^ should change as it no longer prevents but just warns On 04/26/2018 07:21 AM, Arnon Warshavsky wrote: > This patch adds a new function that is called > per every checked patch, > and alerts for new instances of rte_panic/rte_exit. > The check excludes comments, and alerts in the case > of a positive balance between additions and removals. > Seems to drop the patch name if it finds a match > Signed-off-by: Arnon Warshavsky > --- > devtools/checkpatches.sh | 95 +++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 94 insertions(+), 1 deletion(-) > > diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh > index 7676a6b..48b2685 100755 > --- a/devtools/checkpatches.sh > +++ b/devtools/checkpatches.sh > @@ -61,6 +61,91 @@ print_usage () { > END_OF_HELP > } > > +check_forbidden_additions() { # > + # --------------------------------- > + #This awk script receives a list of expressions to monitor > + #and a list of folders to search these expressions in > + # - No search is done inside comments > + # - Both additions and removals of the expressions are checked > + # A positive balance of additions fails the check > + read -d '' awk_script << 'EOF' > + BEGIN{ > + split(FOLDERS,deny_folders," "); > + split(EXPRESSIONS,deny_expr," "); > + in_file=0; > + in_comment=0; > + count=0; > + comment_start="/*" > + comment_end="*/" > + } > + # search for add/remove instances in current file > + # state machine assumes the comments structure is enforced by > + # checkpatches.pl > + (in_file) { > + # comment start > + if (index($0,comment_start) > 0){ > + in_comment = 1 > + } > + # non comment code > + if (in_comment == 0) { > + for (i in deny_expr) { > + forbidden_added = "^\+.*" deny_expr[i]; > + forbidden_removed="^-.*" deny_expr[i]; > + current = expressions[deny_expr[i]] > + if ($0 ~ forbidden_added) { > + count = count + 1; > + expressions[deny_expr[i]] = current + 1 > + } > + if ($0 ~ forbidden_removed) { > + count = count - 1; > + expressions[deny_expr[i]] = current - 1 > + } > + } > + } > + > + # comment end > + if (index($0,comment_end) > 0) { > + in_comment = 0 > + } > + } > + # switch to next file , check if the balance of add/remove > + # of previous filehad new additions > + ($0 ~ "^\+\+\+ b/") { > + in_file = 0; > + if (count > 0){ > + exit; > + } > + for (i in deny_folders){ > + re = "^\+\+\+ b/" deny_folders[i]; > + if ($0 ~ deny_folders[i]) { > + in_file = 1 > + last_file = $0 > + } > + } > + } > + END{ > + if (count > 0){ > + print "Warning: in " substr(last_file,6) ":" > + print "are you sure you want to add the following:" > + for (key in expressions) { > + if (expressions[key] > 0) { > + print key > + } > + } > + exit 1 > + } > + } > +EOF > + # --------------------------------- > + > + # refrain from new additions of rte_panic() and rte_exit() > + # under lib and net > + # multiple folders and expressions are separated by spaces > + awk -v FOLDERS="lib net" \ > + -v EXPRESSIONS="rte_panic\\\( rte_exit\\\(" \ > + "$awk_script" - > +} > + > number=0 > quiet=false > verbose=false > @@ -89,11 +174,19 @@ check () { # > total=$(($total + 1)) > ! $verbose || printf '\n### %s\n\n' "$3" > if [ -n "$1" ] ; then > + cat "$1" | check_forbidden_additions > + [ $? -eq 0 ] || return 0 > report=$($DPDK_CHECKPATCH_PATH $options "$1" 2>/dev/null) > elif [ -n "$2" ] ; then > - report=$(git format-patch --find-renames --no-stat --stdout -1 $commit | > + params=$(echo "--find-renames --no-stat --stdout -1") > + body=$(git format-patch $params $commit) > + echo "$body" | check_forbidden_additions > + [ $? -eq 0 ] || return 0 > + report=$(echo "$body" | > $DPDK_CHECKPATCH_PATH $options - 2>/dev/null) > else > + check_forbidden_additions - > + [ $? -eq 0 ] || return 0 > report=$($DPDK_CHECKPATCH_PATH $options - 2>/dev/null) > fi > [ $? -ne 0 ] || return 0 >