pdf-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pdf-devel] Re: Improvements for the API consistency report


From: gerel
Subject: [pdf-devel] Re: Improvements for the API consistency report
Date: Tue, 30 Dec 2008 09:46:18 -0800 (PST)

 > Date: Sun, 28 Dec 2008 22:18:44 +0100
 > From: address@hidden
 > 
 >     > Would it be possible for the check-api-doc-consistency.pl to tell if a
 >     > given function has unit tests defined (at least one) in torture/unit,
 >     > and the number of tests? 
 > 
 >    Yes, it is possible. I only need to be 100% sure that a function named 
 > 'pdf_bla'
 >    has its unit tests defined in a file named 'pdf_bla.c' at 
 > "torture/unit/...".
 >    I believe we're using that norm for every test case but I'm not 100% sure.
 > 
 > Yes, we are. Also, the unit tests for a given function pdf_bla are
 > always named pdf_bla_NNN where NNN is a number.

Here is a patch for the feature.
The output now is as follows: "pdf_bla() ... ok (xx tests)". Notice that we only
count tests for consistent functions.

##
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: address@hidden
# target_branch: file:///home/gerel/PROJECTS/libgnupdf/trunk/
# testament_sha1: 063f33cd8fe0d3ae33afcf5d618a7f39de0ea0c6
# timestamp: 2008-12-30 14:33:30 -0300
# base_revision_id: address@hidden
# 
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog   2008-12-28 17:01:09 +0000
+++ ChangeLog   2008-12-30 17:33:12 +0000
@@ -1,3 +1,10 @@
+2008-12-30  Gerardo E. Gidoni  <address@hidden>
+
+       * configure.ac: added check-api-doc-consistency.pl.in.
+
+       * prmgt/check-api-doc-consistency.pl.in: new feature, count tests
+       cases for each consistent function.
+
 2008-12-28  Jose E. Marchesi  <address@hidden>
 
        * doc/gnupdf.texi (Creation and Destruction of Functions):

=== modified file 'configure.ac'
--- configure.ac        2008-12-28 16:45:48 +0000
+++ configure.ac        2008-12-30 17:33:12 +0000
@@ -267,7 +267,7 @@
 AC_SUBST(GNUPDF_VERSION)
 
 dnl Generate output files
-AC_OUTPUT(Makefile lib/Makefile src/Makefile torture/Makefile 
torture/unit/Makefile doc/Makefile utils/Makefile prmgt/Makefile 
prmgt/apic2wiki prmgt/testlog2wiki prmgt/docfuncs prmgt/tsdfuncs 
src/extract-public-hdr build-aux/Makefile prmgt/get-test-data.sh 
prmgt/srcinfo-extractor.pl doc/version.texi)
+AC_OUTPUT(Makefile lib/Makefile src/Makefile torture/Makefile 
torture/unit/Makefile doc/Makefile utils/Makefile prmgt/Makefile 
prmgt/apic2wiki prmgt/testlog2wiki prmgt/docfuncs prmgt/tsdfuncs 
src/extract-public-hdr build-aux/Makefile prmgt/get-test-data.sh 
prmgt/srcinfo-extractor.pl doc/version.texi prmgt/check-api-doc-consistency.pl)
 
 dnl Report configuration results
 

=== renamed file 'prmgt/check-api-doc-consistency.pl' => 
'prmgt/check-api-doc-consistency.pl.in'
--- prmgt/check-api-doc-consistency.pl  2008-12-28 02:38:02 +0000
+++ prmgt/check-api-doc-consistency.pl.in       2008-12-30 17:33:12 +0000
@@ -17,18 +17,19 @@
 
 use warnings;
 use strict;
+use File::Find;
 
 ##
 # This script takes every procedure documented on the texinfo document 
"gnupdf.texi"
 # and match it with the procedures implemented in the header files.
 ###
 
-my $TOPDIR="..";
-
+my $TOPDIR="@abs_top_builddir@";
 my $SRCDIR = $TOPDIR."/src";
 my $INFODIR = $TOPDIR."/doc";
 my $MAKEFILE = $SRCDIR."/Makefile.am";
 my $INFODOC = $INFODIR ."/gnupdf.texi";
+my $TESTDIR = $TOPDIR."/torture/unit";
 
 my @ALLSRCS = ();
 
@@ -197,22 +198,37 @@
 }
 
 
+sub count_tests
+{
+    my $filename = shift;
+    my $count=0;
+    open (FILE, $filename);
+    while (<FILE>)
+    {
+        $count += ($_ =~ m/\s*START_TEST/);
+    }
+    close(FILE);
+    return $count;
+}
+
 sub show_help
 {
     print "\nUusage: $0 [OPT]\n";
     print "OPT is one of:\n";
+    print "\t -f:\tshow failing checks only.\n";
     print "\t -h:\tprint this help.\n";
-    print "\t -f:\tshow failing checks only.\n";
     print "\t -i:\tignore variable names.\n";
-    print "\t -p:\tplain mode: do not print a resume.\n\n";
+    print "\t -p:\tplain mode: do not print a resume.\n";
+    print "\t -t:\tshow number of tests for successful checks.\n\n";
 }
 
 ##
 # MAIN PROGRAM
 ###
-my ($reg, $matched, $fails, $total, $showok,$plainmode, $ignorevars);
-
-
+my ($reg, $matched, $fails, $total, $showok,$plainmode, $ignorevars,
+    $counttests, $testfile);
+
+$counttests = 0;
 $showok = 1;
 $plainmode = 0;
 $ignorevars = 0;
@@ -229,6 +245,9 @@
 if (grep ($_ eq '-i', @ARGV)) {
     $ignorevars = 1;
 }
+if (grep ($_ eq '-t', @ARGV)) {
+    $counttests = 1;
+}
 
 
 # fill @ALLSRCS
@@ -261,7 +280,17 @@
     if ($matched)
     {
         if ($showok){
-            print "$docsig() ... ok\n";
+            print "$docsig() ... ok";
+            if ($counttests)
+            {
+                my $count=0;
+                $testfile = $docsig . ".c";
+                $testfile =~ s/_/-/g;
+                find(sub{$count = count_tests($_)
+                             if -r and m/$testfile/}, $TESTDIR);
+                print " ($count tests)";
+            }
+            print "\n";
         }
     }else{
         $fails++;

# Begin bundle
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
F+64KeAT2aZ9/CBCGn8H/xdyRThQkO70N1s=

###

cheers

-gerel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]