From: <ai...@us...> - 2008-03-09 21:45:37
|
Revision: 8260 http://plplot.svn.sourceforge.net/plplot/?rev=8260&view=rev Author: airwin Date: 2008-03-09 14:45:43 -0700 (Sun, 09 Mar 2008) Log Message: ----------- Initial commit of script that compares API lists from various parts of our source tree to make sure they are complete. Added Paths: ----------- trunk/scripts/check_api_completeness.sh Added: trunk/scripts/check_api_completeness.sh =================================================================== --- trunk/scripts/check_api_completeness.sh (rev 0) +++ trunk/scripts/check_api_completeness.sh 2008-03-09 21:45:43 UTC (rev 8260) @@ -0,0 +1,144 @@ +#!/bin/bash +# This Linux-only script creates a sorted list of our API from several +# independent locations within our source tree and finds all the +# inconsistencies between them. + +# This script should be run from the top-level source tree. + +# Prepare API list from include/plplot.h to be compared with all others. +grep '^#define.*pl.*c_pl' include/plplot.h |\ +grep -v plParseInternalOpts |\ +tr '\t' " " |\ +tr -s " " |\ +cut --delimiter=" " --fields=2 |\ +sort \ +>| /tmp/plplot_api.txt + +case $1 in + docbook) + # Prepare API list from doc/docbook/src/api.xml + # and compare with previous + echo "documentation API differences (if any)" + grep '<sect1.*id="pl.*".*renderas="sect.*">$' doc/docbook/src/api.xml |\ + cut --delimiter='"' --fields=2 |\ + sort |\ + diff -au /tmp/plplot_api.txt - + ;; + + swig) + # Prepare API list from bindings/swig-support/plplotcapi.i + # and compare with previous + echo "swig API differences (if any)" + # The grep -v '[A-Z]' stanza gets rid of some of the non-public API that + # is exposed for the swig-generated bindings, and similarly for the list + # of commands that are excluded. + + grep '^pl.*(' bindings/swig-support/plplotcapi.i |\ + cut --delimiter='(' --fields=1 |\ + grep -v '[A-Z]' |\ + grep -v pl_cmd |\ + grep -v pldid2pc |\ + grep -v pldip2dc |\ + grep -v plf2eval |\ + grep -v plf2eval2 |\ + grep -v plf2evalr |\ + grep -v plfcont |\ + grep -v plfshade |\ + grep -v plgesc |\ + grep -v plgfile |\ + grep -v plsexit |\ + grep -v plsfile |\ + grep -v plsxwin |\ + grep -v pltr0f |\ + grep -v pltr2f |\ + grep -v pltr2p |\ + sort |\ + diff -au /tmp/plplot_api.txt - + ;; + + octave) + # Prepare API list from bindings/octave/plplot_octave.h.in + # and compare with previous. + echo "octave API differences (if any)" + grep '^#define.*pl.*c_pl' bindings/octave/plplot_octave.h.in |\ + grep -v plParseInternalOpts |\ + tr '\t' " " |\ + tr -s " " |\ + cut --delimiter=" " --fields=2 |\ + sort |\ + diff -au /tmp/plplot_api.txt - + ;; + + f77) + # Prepare API list from bindings/f77/plstubs.h + # and compare with previous + echo "f77 API differences (if any)" + # After obtaining the basic name with paranthesis appended, we get rid of + # that paranthesis and any trailing underscores or "7"s. We then do a unique + # sort to get rid of duplicates, and specifically exclude some added special + # fortran functions (whose original form may have had a "7" appended). + grep 'FNAME.*,pl.*)' bindings/f77/plstubs.h |\ + cut --delimiter="," --fields=2 |\ + sed -e 's?)??' -e 's?_$??' -e 's?7$??' |\ + sort -u |\ + grep -v plclr |\ + grep -v 'plcol$' |\ + grep -v plcon0 |\ + grep -v plcon1 |\ + grep -v plcon2 |\ + grep -v plshade0 |\ + grep -v plshade2 |\ + grep -v plshades0 |\ + grep -v plshades1 |\ + grep -v plshades2 |\ + grep -v plvec0 |\ + grep -v plvec1 |\ + grep -v plvec2 |\ + diff -au /tmp/plplot_api.txt - + ;; + + f95) + # Prepare API list from bindings/f95/plstubs.h + # and compare with previous + echo "f95 API differences (if any)" + # After obtaining the basic name with paranthesis appended, we get rid of + # that paranthesis and any trailing "_", "f77", and "7". We then do a unique + # sort to get rid of duplicates, and specifically exclude some added special + # fortran functions (whose original form may have had a "7" appended). + grep 'FNAME.*,pl.*)' bindings/f95/plstubs.h |\ + cut --delimiter="," --fields=2 |\ + sed -e 's?)??' -e 's?_$??' -e 's?f77$??' -e 's?7$??' |\ + sort -u |\ + grep -v plclr |\ + grep -v 'plcol$' |\ + grep -v plcon0 |\ + grep -v plcon1 |\ + grep -v plcon2 |\ + grep -v plscmap1l2 |\ + grep -v plscmap1la2 |\ + grep -v plshade0 |\ + grep -v plshade2 |\ + grep -v plshades0 |\ + grep -v plshades1 |\ + grep -v plshades2 |\ + grep -v plvec0 |\ + grep -v plvec1 |\ + grep -v plvec2 |\ + diff -au /tmp/plplot_api.txt - + ;; + + all) + $0 docbook + $0 swig + $0 octave + $0 f77 + $0 f95 + ;; + + *) + echo "First argument was $1" + echo "Instead, it must be one of the following:" + echo "docbook, swig, octave, f77, f95, or all" + ;; +esac +#rm /tmp/plplot_api.txt Property changes on: trunk/scripts/check_api_completeness.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-03-09 23:04:20
|
Revision: 8264 http://plplot.svn.sourceforge.net/plplot/?rev=8264&view=rev Author: airwin Date: 2008-03-09 16:04:21 -0700 (Sun, 09 Mar 2008) Log Message: ----------- Ignore officially deprecated results. Modified Paths: -------------- trunk/scripts/check_api_completeness.sh Modified: trunk/scripts/check_api_completeness.sh =================================================================== --- trunk/scripts/check_api_completeness.sh 2008-03-09 22:44:15 UTC (rev 8263) +++ trunk/scripts/check_api_completeness.sh 2008-03-09 23:04:21 UTC (rev 8264) @@ -6,11 +6,19 @@ # This script should be run from the top-level source tree. # Prepare API list from include/plplot.h to be compared with all others. +# Be sure to remove officially deprecated functions. grep '^#define.*pl.*c_pl' include/plplot.h |\ grep -v plParseInternalOpts |\ tr '\t' " " |\ tr -s " " |\ cut --delimiter=" " --fields=2 |\ +grep -v 'plclr$' |\ +grep -v 'plcol$' |\ +grep -v 'plhls$' |\ +grep -v 'plHLS$' |\ +grep -v 'plpage$' |\ +grep -v 'plrgb$' |\ +grep -v 'plrgb1$' |\ sort \ >| /tmp/plplot_api.txt @@ -31,7 +39,8 @@ echo "swig API differences (if any)" # The grep -v '[A-Z]' stanza gets rid of some of the non-public API that # is exposed for the swig-generated bindings, and similarly for the list - # of commands that are excluded. + # of commands that are excluded. The grep -v stanzas also get rid of + # deprecated API that is mentioned but excluded with #if 0 ... #endif grep '^pl.*(' bindings/swig-support/plplotcapi.i |\ cut --delimiter='(' --fields=1 |\ @@ -52,6 +61,9 @@ grep -v pltr0f |\ grep -v pltr2f |\ grep -v pltr2p |\ + grep -v 'plhls$' |\ + grep -v 'plrgb$' |\ + grep -v 'plrgb1$' |\ sort |\ diff -au /tmp/plplot_api.txt - ;; @@ -77,6 +89,7 @@ # that paranthesis and any trailing underscores or "7"s. We then do a unique # sort to get rid of duplicates, and specifically exclude some added special # fortran functions (whose original form may have had a "7" appended). + # We also remove the plhls, plrgb, and plrgb1 deprecated functions. grep 'FNAME.*,pl.*)' bindings/f77/plstubs.h |\ cut --delimiter="," --fields=2 |\ sed -e 's?)??' -e 's?_$??' -e 's?7$??' |\ @@ -94,6 +107,9 @@ grep -v plvec0 |\ grep -v plvec1 |\ grep -v plvec2 |\ + grep -v 'plhls$' |\ + grep -v 'plrgb$' |\ + grep -v 'plrgb1$' |\ diff -au /tmp/plplot_api.txt - ;; @@ -105,6 +121,7 @@ # that paranthesis and any trailing "_", "f77", and "7". We then do a unique # sort to get rid of duplicates, and specifically exclude some added special # fortran functions (whose original form may have had a "7" appended). + # We also remove the plhls, plrgb, and plrgb1 deprecated functions. grep 'FNAME.*,pl.*)' bindings/f95/plstubs.h |\ cut --delimiter="," --fields=2 |\ sed -e 's?)??' -e 's?_$??' -e 's?f77$??' -e 's?7$??' |\ @@ -124,6 +141,9 @@ grep -v plvec0 |\ grep -v plvec1 |\ grep -v plvec2 |\ + grep -v 'plhls$' |\ + grep -v 'plrgb$' |\ + grep -v 'plrgb1$' |\ diff -au /tmp/plplot_api.txt - ;; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-03-09 23:29:23
|
Revision: 8265 http://plplot.svn.sourceforge.net/plplot/?rev=8265&view=rev Author: airwin Date: 2008-03-09 16:29:18 -0700 (Sun, 09 Mar 2008) Log Message: ----------- Add in test of the completeness of PLStream.java. Modified Paths: -------------- trunk/scripts/check_api_completeness.sh Modified: trunk/scripts/check_api_completeness.sh =================================================================== --- trunk/scripts/check_api_completeness.sh 2008-03-09 23:04:21 UTC (rev 8264) +++ trunk/scripts/check_api_completeness.sh 2008-03-09 23:29:18 UTC (rev 8265) @@ -68,6 +68,22 @@ diff -au /tmp/plplot_api.txt - ;; + java) + # Prepare API list from bindings/java/PLStream.java + # and compare with previous. + echo "java API differences (if any)" + # The grep -v '[A-Z]' stanza gets rid of some of the non-public API that + # is exposed. + # Also get rid of the deprecated plhls from the comparison. + grep 'plplotjavac.pl.*(' bindings/java/PLStream.java |\ + cut --delimiter='(' --fields=1 |\ + cut --delimiter='.' --fields=2 |\ + sort -u |\ + grep -v '[A-Z]' |\ + grep -v 'plhls$' |\ + diff -au /tmp/plplot_api.txt - + ;; + octave) # Prepare API list from bindings/octave/plplot_octave.h.in # and compare with previous. @@ -150,6 +166,7 @@ all) $0 docbook $0 swig + $0 java $0 octave $0 f77 $0 f95 @@ -158,7 +175,7 @@ *) echo "First argument was $1" echo "Instead, it must be one of the following:" - echo "docbook, swig, octave, f77, f95, or all" + echo "docbook, swig, java, octave, f77, f95, or all" ;; esac #rm /tmp/plplot_api.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-04-07 20:54:43
|
Revision: 8360 http://plplot.svn.sourceforge.net/plplot/?rev=8360&view=rev Author: smekal Date: 2008-04-07 13:54:41 -0700 (Mon, 07 Apr 2008) Log Message: ----------- Added checks for c++ bindings. There are still some issues to iron out. Modified Paths: -------------- trunk/scripts/check_api_completeness.sh Modified: trunk/scripts/check_api_completeness.sh =================================================================== --- trunk/scripts/check_api_completeness.sh 2008-04-07 01:30:33 UTC (rev 8359) +++ trunk/scripts/check_api_completeness.sh 2008-04-07 20:54:41 UTC (rev 8360) @@ -163,6 +163,19 @@ diff -au /tmp/plplot_api.txt - ;; + c++) + # Prepare API list from bindings/c++/plstream.h + # and compare with previous. + echo "c++ API differences (if any)" + grep 'plstream::' bindings/c++/plstream.cc |\ + cut --delimiter='(' --fields=1 |\ + cut --delimiter=':' --fields=3 |\ + sed 's/[^ ]*/pl&/' |\ + sort -u |\ + grep -v '[A-Z]' |\ + diff -au /tmp/plplot_api.txt - + ;; + all) $0 docbook $0 swig @@ -170,12 +183,13 @@ $0 octave $0 f77 $0 f95 + $0 c++ ;; *) echo "First argument was $1" echo "Instead, it must be one of the following:" - echo "docbook, swig, java, octave, f77, f95, or all" + echo "docbook, swig, java, octave, f77, f95, c++ or all" ;; esac #rm /tmp/plplot_api.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-04-07 22:36:35
|
Revision: 8361 http://plplot.svn.sourceforge.net/plplot/?rev=8361&view=rev Author: airwin Date: 2008-04-07 15:36:42 -0700 (Mon, 07 Apr 2008) Log Message: ----------- For C++ stanza, ignore commented out API and demand the C++ line that defines a function has a left parenthesis in it. Modified Paths: -------------- trunk/scripts/check_api_completeness.sh Modified: trunk/scripts/check_api_completeness.sh =================================================================== --- trunk/scripts/check_api_completeness.sh 2008-04-07 20:54:41 UTC (rev 8360) +++ trunk/scripts/check_api_completeness.sh 2008-04-07 22:36:42 UTC (rev 8361) @@ -168,6 +168,8 @@ # and compare with previous. echo "c++ API differences (if any)" grep 'plstream::' bindings/c++/plstream.cc |\ + grep -v '//' |\ + grep '(' |\ cut --delimiter='(' --fields=1 |\ cut --delimiter=':' --fields=3 |\ sed 's/[^ ]*/pl&/' |\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |