> Date: Sun, 28 Dec 2008 22:18:44 +0100 > From: jema...@gnu.org > > > 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: ge...@gnu.org-20081230173312-axeey3fg7dihb121 # target_branch: file:///home/gerel/PROJECTS/libgnupdf/trunk/ # testament_sha1: 063f33cd8fe0d3ae33afcf5d618a7f39de0ea0c6 # timestamp: 2008-12-30 14:33:30 -0300 # base_revision_id: jema...@gnu.org-20081228170109-n64p2pz38f7sfhrq # # 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 <ge...@gnu.org> + + * 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 <jema...@gnu.org> * 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