[Top][All Lists]
[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
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWe70N1sAA8v/gER0ACBV////
f6bfBL////tgB633t3rvNAAG973gAFBIAMkRkQnin6pmQn6p5TxNUeppkbyoxBkBkYTGp6gahRtI
eiNB6gADTQAAAAAGmgA01MkyFBo0GjTRpkaaZNBkAZAAYRpoGmokPUmJ6Ah6NRgmAjIYTRkwCek0
9ABw00wQyGmmRkwgGmgDCaNMmABA0EkQQAENBACMCTEngI9KeSaaHpNDYo0kCEjutyjbZn0VxNEK
kLFqGZFftvAhjs2vxRrRlSjjRiz2UBi7Or56QAKKXRn3YF8gAkKIlbQL4KWoNXdXjVGqipyJTOMN
V5rQCKUC/W7+DRg+unc/7sPB2E/n2n6b0J6GuTERR2OsAeEcFCUAJALIsgJ3uqTsgxVilTXaftlJ
oVJmQmVZCsZXAMQajRYOg9jNGRGNPw1aRKrsR9qm0sw8RH3Pr0398g7345Ysm6vYU4UlHivU5y2K
/zoDlC8VC6VzHWWEhJTJMq4qQNMJeHQgHKqAFCNSZrM2qivQ1DVv67YNbFGq2JYlnR6gRjPTOqzN
LHvQRDEAhJQD4G+4paW/dZW6UFlpV4HEXDJKTiizPO0ib63YVufGcafiaS3+PvJ3t7sKacsZnjE4
7XmN2bs+ckbegcA7T8Dv9lNwZxEVhX6AgerSVgfjChprU8MB9O/g0O2n2bd7Bt4L+RAwYBok2Xap
AHbibb88yRsZ7UCBIPvkkiMP4IQbyLDU6bPH27vbqBEmizxfDg/liApAxQIg4zDEApjSSiFCKRmY
QROg95EKQav2kC48uXjA5T7Gsx3MNZawLMZoKKDCRDIO2hjVfOooYRE4xH7aAFBpOVUssLcKw0Id
AYSgUswYkWEQI+TXCDTGg1AdxrMiBgOWDTbIr3SSGLnKqDYj3MIKggqZivYIBB30zggIFasnCgoH
URhVEkqLCMyAmPwf5B5+arGknVc8q2sQp5FIiUCbiMyZBQKzGPMcXJ9w18Cs5Cg7jqEdhK/FTuIh
ddwU7jQp78pjg2skVudAUmszNRYX3ubWC0rMIO+656R8lEqsKS+mQQ4zcNvNhKWJKIZFpVc5K0mQ
jqInWGmZne5gFRVB4IxMjAoLDUduWMq3aEtIFwTQMqTMuHICIktRaGskMUhShwqMCkpOMRebpRCV
FFdTW2NnQ4gk6HOmJjMpNjjTHsKaCqvfcSKRyYXE1utsKAdUFFxVSWEx4FpnpusCcN/LR1V25aAw
MivILxT9ePGTZVu8Uw7b4RxY7uoc3ynkQMBChrIHcwzCpGBVwhskmw4igFwAwNx7wFjSWDhLzOVp
5XbwvICiDTwXoqSChJm94vH4MgnMGJIGJRmMYNkbAcJAjPSkI+Gb0DHAgiF0KPnwB44A6YSj3zU6
FCZRnOIr2OuzGM2qBVXw2QgBb7guEAYDlF4hH0Pe4xE8f6F5X27V6igeWfgYwyICwPA+qC356Ced
WxfkHD9T8viijEDf+ZFettRWkfH5bs8BD+JxFhAcwPiMYc54kTCBSc5Rd8u2G7zy94gj0MfoGvg7
M/WfMyJhrG/a6ZMtqG/TOBT03Iu6M2a1x3OmVE+YD6ctFNTPac4P5xhgYYO28wLna1wYbFn7N+0l
yHQG44FSGKEeQhIbRLLuOkwvxKlDLqCwRHhssBi03aD77bjqa5gTM9lhsIOiKYbqLj9TlaXl4FdO
3zKwIfM83Mxa0IphUmmqQwHbHohxxEY+CBiTIVR90clxcMiXmTAX7b85+qwS4VWA/pbkNDGp2SV9
TAtphEDm494imtPy85rOMYY4Djh1hV5S7p5gctDpEbAzDMx+aYB+tNSqz6UEEVFdfs3805FGm+F+
4iRAGyEb4dhSwmO//l8yCGWxt2N/rEHz78RH2kE9jJMB73ICP55cIoJxZaw6dXKkvN5jsDo4eBB6
PalA8Jn1r+3UHp9OR25hIRqPYURSD/DI8pcu1/gYJwWS6KG0E13Mxu3EBDN3AELJ0ixRyU+lDfNx
IiA5IOo5xQJeHDoKGVqIiTlKSPSyNbvOiZrrkdmOdZKhGxc1dgzB4b7SYLTXbbTsDn4Hu9DPXjbY
x9wgPBd4O4RYIloW5KAPMCUv3cIKKemgePwOOmKURSGqcTMMnZJwkIJRXk6BtQ6C9jWPP6cE+zhW
C97hVJ0qeTa4XEEruwQQXPEV0n1VCOs5cAKMrJRVVURYwBhDyXESVufXxjOZfQhAmmCPdwXgTv5e
ZRpDaqG0KHQFnJQIAdMHqDSESggXcW+wEyA69u+zd3RW9lCIgpr5EuqK+BARhpqoiHkDGvFisGKR
1SiDei0hBeHE/bNspkRm3bjwhnb2YnOFHXENgW1HFmcmbIO5KhTRQcWaJpMisTCOPzzhGpLasnWb
Krdv1ZVyig5zuo6qpcXLcRXqEw/FhhDdOCW23eG7TfIcd3bg4sKQtsLpGkqncUK2wVu3AhMQxXRI
gjRgyJLaxAQXFOpjycptJxdWmYlDYbQYOPXr4GTGJlcrXEWsNzdXWao9OzwNdV4hhHMK/VyaghIR
F+64KeAT2aZ9/CBCGn8H/xdyRThQkO70N1s=
###
cheers
-gerel