[ Fixed ENOPATCH ] On Tue, Jun 12, 2018 at 11:57:13AM +0200, Tom de Vries wrote: > [ was: Re: [MAINTAINERS, committed] Remove redundant write-after-approval > entries ] > > On Tue, Jun 12, 2018 at 10:26:31AM +0200, Martin Liška wrote: > > Hi. > > > > Thanks for the script, it also found me in Write After Approval section. > > Thus I'll install following patch. > > > > Tom what about installing the script into contrib? > > I've renamed the script to contrib/maintainers-verify.sh. > > Also I've added a regression test that runs it: > ... > Running src/gcc/testsuite/gcc.src/maintainers.exp ... > PASS: maintainers-verify.sh > ... > > When failing (by reverting your patch on MAINTAINERS), it shows in gcc.log: > ... > Running src/gcc/testsuite/gcc.src/maintainers.exp ... > Redundant in write approval: Martin Liska > FAIL: maintainers-verify.sh > ... > > OK for trunk? > > Thanks, > - Tom
[contrib] Add contrib/maintainers-verify.sh --- contrib/maintainers-verify.sh | 45 +++++++++++++++++++++++++++++++++++ gcc/testsuite/gcc.src/maintainers.exp | 35 +++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/contrib/maintainers-verify.sh b/contrib/maintainers-verify.sh new file mode 100755 index 00000000000..226c158fdaa --- /dev/null +++ b/contrib/maintainers-verify.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +# Copyright (C) 2018 Free Software Foundation, Inc. +# +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GCC 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +if [ "$1" != "" ]; then + f="$1" +else + f=./MAINTAINERS +fi + +grep @ $f \ + | sed 's/[\t][\t]*/\t/g' \ + | awk -F '\t' \ + " +{ + if (NF == 2) { + name=\$1 + email=\$2 + if (names[name] == 1) { + printf \"Redundant in write approval: %s\n\", name + } + } else if (NF == 3 ) { + name=\$2 + email=\$3 + names[name] = 1 + } +} +" diff --git a/gcc/testsuite/gcc.src/maintainers.exp b/gcc/testsuite/gcc.src/maintainers.exp new file mode 100644 index 00000000000..89a062fb7ad --- /dev/null +++ b/gcc/testsuite/gcc.src/maintainers.exp @@ -0,0 +1,35 @@ +# Copyright (C) 2018 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +proc gcc_src_run_maintainers_verify_sh {} { + set script maintainers-verify.sh + + global srcdir + set rootdir $srcdir/../.. + set contrib $rootdir/contrib + + set maintainers $rootdir/MAINTAINERS + + set verify_output [exec $contrib/$script $maintainers] + if { "$verify_output" == "" } { + pass "$script" + } else { + send_log "$verify_output\n" + fail "$script" + } +} + +gcc_src_run_maintainers_verify_sh