I have now (revision 9997) completed an essential part of the implementation
of the test_noninteractive target in the new CMake-based build system for
the installed examples.

To try this out you must have CMake-2.6.4 installed on your system. (2.6.4
has some essential bug-fixes concerning transitive use of EXPORTS compared
to 2.6.0 so I thought it simplest to require 2.6.4 rather than try to figure
out some workarounds for 2.6.0.) By the time this new build system for the
installed examples has been adopted by a substantial fraction of our users,
we will probably be requiring 2.6.4 in any case for our principal build
system.

After "make install" from the build tree, cd to the top of the installed
examples tree and

mkdir ../build_dir
cd ../build_dir
cmake ../examples
make -j4 test_noninteractive

to do the equivalent of the portion of ctest that compares all enabled
language test results against the corresponding C results (both PostScript
and stdout).  The -j4 option allows my GNU make to take advantage of my
multiprocessor box to provide results much faster than cmake.  YMMV for
other build tools supported by CMake through the CMake generators system.

Here are the results I got from the above make command:

[...]
[ 97%] Generating compare
c++
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
f77
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
f95
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
java
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
octave
   Missing examples            :  19
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
python
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
tcl
   Missing examples            :
   Differing postscript output :  21
   Missing stdout              :
   Differing stdout            :  21
perl
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            :  14
ada
   Missing examples            :
   Differing postscript output :  17
   Missing stdout              :
   Differing stdout            : 
adathick
   Missing examples            :
   Differing postscript output :  17
   Missing stdout              :
   Differing stdout            : 
ocaml
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
lua
   Missing examples            :
   Differing postscript output :
   Missing stdout              :
   Differing stdout            : 
d
   Missing examples            :  01 02 09 14 14a 15 16 17 18 19 20 21 22 26 28 
31
   Differing postscript output :  03 12 13 30
   Missing stdout              :
   Differing stdout            : 
make[3]: *** [compare] Error 1
make[2]: *** [CMakeFiles/test_noninteractive.dir/all] Error 2
make[1]: *** [CMakeFiles/test_noninteractive.dir/rule] Error 2
make: *** [test_noninteractive] Error 2

The error will disappear whenever we achieve clean comparisons.
Alternatively, if that goal seems unrealistic, we could turn off the
error return in test_diff.sh.

The next steps are to finish the equivalent of the rest of ctest (generate
results for all supported non-interactive devices), and to implement the
test_interactive target that is currently only implemented with the
traditional Makefile+pkg-config approach.

Even without those add-ons this is already a very nice system for building
and testing the installed examples (and indirectly all languages where
PLplot has been implemented, see summary above) because the dependencies are
handled much better than in the traditional Makefile+pkg-config approach.

I request testing of this new method for building and testing the installed
examples not only on Unix platforms, but also especially on Windows
platforms where it should be possible to use some of the cmake generators
available for Windows.  Of course, I don't expect Windows to work right out
of the box.  But I do expect that whatever changes are required in the new
build system for installed examples in the Windows case will be much smaller
than those required for the build-tree since the organization of the install
tree is much simpler (e.g., all libraries are in one location and similarly
for the headers) than the build-tree, and essentially the exact same scripts
are being run as in the build-tree case.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to