]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tools: finer-grained error codes for checkpatch
authorQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 23 Feb 2018 15:58:17 +0000 (10:58 -0500)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 23 Feb 2018 16:02:19 +0000 (11:02 -0500)
* 2 for errors
* 1 for warnings
* 0 for clean
* Suppress all report text for a clean result
* Remove check for const structs from perl script
* Remove grep suppression for that check from shell script

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
tools/checkpatch.pl
tools/checkpatch.sh

index fe771ebbba6ed37aaf7a8f54ae38a172df39c247..a952de89474d48061eea3b0bd3769c1c5a2d7cf4 100755 (executable)
@@ -55,7 +55,6 @@ my $min_conf_desc_length = 4;
 my $spelling_file = "$D/spelling.txt";
 my $codespell = 0;
 my $codespellfile = "/usr/share/codespell/dictionary.txt";
-my $conststructsfile = "$D/const_structs.checkpatch";
 my $typedefsfile = "";
 my $color = "auto";
 my $allow_c99_comments = 1;
@@ -685,10 +684,6 @@ sub read_words {
        return 0;
 }
 
-my $const_structs = "";
-read_words(\$const_structs, $conststructsfile)
-    or warn "No structs that should be const will be found - file '$conststructsfile': $!\n";
-
 my $typeOtherTypedefs = "";
 if (length($typedefsfile)) {
        read_words(\$typeOtherTypedefs, $typedefsfile)
@@ -6197,14 +6192,6 @@ sub process {
                             "please use device_initcall() or more appropriate function instead of __initcall() (see include/linux/init.h)\n" . $herecurr);
                }
 
-# check for various structs that are normally const (ops, kgdb, device_tree)
-# and avoid what seem like struct definitions 'struct foo {'
-               if ($line !~ /\bconst\b/ &&
-                   $line =~ /\bstruct\s+($const_structs)\b(?!\s*\{)/) {
-                       WARN("CONST_STRUCT",
-                            "struct $1 should normally be const\n" . $herecurr);
-               }
-
 # use of NR_CPUS is usually wrong
 # ignore definitions of NR_CPUS and usage to define arrays as likely right
                if ($line =~ /\bNR_CPUS\b/ &&
index f55692096fc45159956dd3853db6611704425a77..930c8e2df6bddb8a56c2ff6ff05ee9955ae04724 100755 (executable)
@@ -69,15 +69,20 @@ else
   done
   echo "Done."
   for file in /tmp/f1/*_cp; do
-    echo "Report for $(basename $file _cp)" 1>&2
-    echo "===============================================" 1>&2
     if [ -a /tmp/f2/$(basename $file) ]; then
-      diff $file /tmp/f2/$(basename $file) | grep -v "normally be const" | grep -A3 "ERROR\|WARNING" 1>&2
+      result=$(diff $file /tmp/f2/$(basename $file) | grep -A3 "ERROR\|WARNING")
     else
-      cat $file | grep -v "normally be const" | grep -A3 "ERROR\|WARNING" 1>&2
+      result=$(cat $file | grep -A4 "ERROR\|WARNING")
     fi
     if [ "$?" -eq "0" ]; then
-      stat=1
+      echo "Report for $(basename $file _cp)" 1>&2
+      echo "===============================================" 1>&2
+      echo "$result" 1>&2
+      if echo $result | grep -q "ERROR"; then
+        stat=2
+      elif [ "$stat" -eq "0" ]; then
+        stat=1
+      fi
     fi
   done
 fi