
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.miscdebris.net/plplot_wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Airwin</id>
		<title>PLplotWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.miscdebris.net/plplot_wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Airwin"/>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Special:Contributions/Airwin"/>
		<updated>2026-05-03T17:01:39Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.4</generator>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Octave&amp;diff=2312</id>
		<title>Install Octave</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Octave&amp;diff=2312"/>
				<updated>2010-12-21T08:50:46Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Plplot supports bindings and test examples.  To include this powerful component of PLplot for Windows you must download and install Octave for Windows.&lt;br /&gt;
&lt;br /&gt;
Download the Windows Octave installer from http://prdownloads.sourceforge.net/octave/Octave_Windows%20-%20MinGW/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe&lt;br /&gt;
&lt;br /&gt;
Run that executable (under wine that is done with the &amp;quot;wine Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe command), and choose all defaults except the install prefix which should refer to a unique location so that octave can easily be removed later without interfering with anything else.  In my case I chose to use Z:\home\wine\newstart\octave\Octave\3.2.4_gcc-4.4.0.  In other words, I replaced the C: in the default prefix by Z:\home\wine\newstart\octave, but you are free to use anything you like.  Let&amp;#039;s call that install prefix OCTAVE_PREFIX (e.g., OCTAVE_PREFIX=Z:\home\wine\newstart\octave\Octave\3.2.4_gcc-4.4.0 in my case).  Then to help cmake locate octave on your Windows machine you have to set the following environment variables:&lt;br /&gt;
* PATH=$PATH:$OCTAVE_PREFIX/bin (Location of octave.exe and liboctave.dll.)&lt;br /&gt;
* CMAKE_INCLUDE_PATH=$OCTAVE_PREFIX/include/octave-3.2.4/octave:$CMAKE_INCLUDE_PATH (Location of octave.h.)&lt;br /&gt;
* CMAKE_LIBRARY_PATH=$OCTAVE_PREFIX/lib/octave-3.2.4:$CMAKE_LIBRARY_PATH (Location of liboctave.dll.a)&lt;br /&gt;
&lt;br /&gt;
(PATH is always predefined, but in case CMAKE_INCLUDE_PATH is not predefined, then drop the trailing &amp;quot;:$CMAKE_INCLUDE_PATH&amp;quot; in that definition, and in case CMAKE_LIBRARY_PATH is not defined drop the trailing &amp;quot;:$CMAKE_LIBRARY_PATH&amp;quot; in that definition.)&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2311</id>
		<title>Specifics for various platforms</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2311"/>
				<updated>2010-12-20T23:46:58Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Free and open-source tools to help build a powerful version of PLplot on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before reading this section you should consult [[Building_PLplot]] to obtain generic build instructions.&lt;br /&gt;
==== Linux ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[List of Debian/Ubuntu packages]] - in order to be able to configure and compile the PLplot library this page contains a list of Debian/Ubuntu packages needed.&lt;br /&gt;
* [[Additional notes for ifort users]]&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
* [[Mac OSX]] instructions&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== Free and open-source tools to help build a powerful version of PLplot on Windows =====&lt;br /&gt;
&lt;br /&gt;
* [[Install MinGW/MSYS]]&lt;br /&gt;
* [[Install SWIG]]&lt;br /&gt;
* [[Install Python]]&lt;br /&gt;
* [[Install Lua]]&lt;br /&gt;
* [[Install Tcl]]&lt;br /&gt;
* [[Install Octave]]&lt;br /&gt;
* [[Install 3rd party libraries]]&lt;br /&gt;
&lt;br /&gt;
===== Instructions per Windows platform =====&lt;br /&gt;
&lt;br /&gt;
* [[Configure PLplot for Visual CXX]]&lt;br /&gt;
* [[Configure PLplot for MinGW/CLI]]&lt;br /&gt;
* [[Configure PLplot for cygwin]]&lt;br /&gt;
* [[Configure PLplot for Borland CXX 5.5 (free command line tools)]]&lt;br /&gt;
* [[Configure PLplot for Borland Turbo C++ Explorer Edition (free IDE and compiler)]]&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Tcl&amp;diff=2310</id>
		<title>Install Tcl</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Tcl&amp;diff=2310"/>
				<updated>2010-12-18T05:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To take advantage of PLplot&amp;#039;s first-class Tcl bindings and examples, it is necessary to install Tcl on Windows.  (Note, PLplot&amp;#039;s Tk bindings currently depend on X so that Tcl-related component of PLplot will automatically get excluded from Windows builds of PLplot.)&lt;br /&gt;
&lt;br /&gt;
The following directions work on the Linux wine version of Windows.  For the Microsoft version of Windows, drop the &amp;quot;wine&amp;quot; from all the following commands and run the *.exe files directly from MSYS-bash instead.&lt;br /&gt;
&lt;br /&gt;
* Download the ActiveState Windows version of Tcl from http://downloads.activestate.com/ActiveTcl/releases/8.5.9.1/ActiveTcl8.5.9.1.294121-win32-ix86-threaded.exe&lt;br /&gt;
* Install that version using the &amp;quot;wine ActiveTcl8.5.9.1.294121-win32-ix86-threaded.exe&amp;quot; command.  I chose Z:\home\wine\newstart\tcl\Tcl as the prefix, but choose any unique location that is convenient for you.  Everything else I chose was default.  The installer encountered one error near the end concerning not being able to find Win32_init, and it ended up by aborting the TEApot setup.  This may be a wine idiosyncrasy, but in any case this error did not matter to the subsequent PLplot build.  Under bash the above prefix can be referred to using the variable &amp;quot;$TCL_PREFIX=/z/home/wine/newstart/tcl/Tcl&amp;quot;.  Set this variable to whatever you have chosen to use for the prefix in the above installer.&lt;br /&gt;
&lt;br /&gt;
To make Tcl accessible to the PLplot CMake-based build system, set the following environment variables (where I assume here those environment variables have been set previously which is always the case for PATH and usually the case for the other two).&lt;br /&gt;
&lt;br /&gt;
* PATH=$TCL_PREFIX/bin:$PATH&lt;br /&gt;
* CMAKE_INCLUDE_PATH=$TCL_PREFIX/include:$CMAKE_INCLUDE_PATH&lt;br /&gt;
* CMAKE_LIBRARY_PATH=$TCL_PREFIX/lib:$CMAKE_LIBRARY_PATH&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Tcl&amp;diff=2309</id>
		<title>Install Tcl</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Tcl&amp;diff=2309"/>
				<updated>2010-12-18T05:03:34Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To take advantage of PLplot&amp;#039;s first-class Tcl bindings and examples, it is necessary to install Tcl on Windows.  (Note, PLplot&amp;#039;s Tk bindings currently depend on X so that Tcl-related component of PLplot will automatically get excluded from Windows builds of PLplot.)&lt;br /&gt;
&lt;br /&gt;
The following directions work on the Linux wine version of Windows.  For the Microsoft version of Windows, drop the &amp;quot;wine&amp;quot; from all the following commands and run the *.exe files directly from MSYS-bash instead or the native Windows command-line.&lt;br /&gt;
&lt;br /&gt;
* Download the ActiveState Windows version of Tcl from http://downloads.activestate.com/ActiveTcl/releases/8.5.9.1/ActiveTcl8.5.9.1.294121-win32-ix86-threaded.exe&lt;br /&gt;
* Install that version using the &amp;quot;wine ActiveTcl8.5.9.1.294121-win32-ix86-threaded.exe&amp;quot; command.  I chose Z:\home\wine\newstart\tcl\Tcl as the prefix, but choose any unique location that is convenient for you.  Everything else I chose was default.  The installer encountered one error near the end concerning not being able to find Win32_init, and it ended up by aborting the TEApot setup.  This may be a wine idiosyncrasy, but in any case this error did not matter to the subsequent PLplot build.  Under bash the above prefix can be referred to using the variable &amp;quot;$TCL_PREFIX=/z/home/wine/newstart/tcl/Tcl&amp;quot;.  Set this variable to whatever you have chosen to use for the prefix in the above installer.&lt;br /&gt;
&lt;br /&gt;
To make Tcl accessible to the PLplot CMake-based build system, set the following environment variables (where I assume here those environment variables have been set previously which is always the case for PATH and usually the case for the other two).&lt;br /&gt;
&lt;br /&gt;
* PATH=$TCL_PREFIX/bin:$PATH&lt;br /&gt;
* CMAKE_INCLUDE_PATH=$TCL_PREFIX/include:$CMAKE_INCLUDE_PATH&lt;br /&gt;
* CMAKE_LIBRARY_PATH=$TCL_PREFIX/lib:$CMAKE_LIBRARY_PATH&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2308</id>
		<title>Specifics for various platforms</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2308"/>
				<updated>2010-12-18T04:39:31Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Free and open-source tools to help build a powerful version of PLplot on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before reading this section you should consult [[Building_PLplot]] to obtain generic build instructions.&lt;br /&gt;
==== Linux ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[List of Debian/Ubuntu packages]] - in order to be able to configure and compile the PLplot library this page contains a list of Debian/Ubuntu packages needed.&lt;br /&gt;
* [[Additional notes for ifort users]]&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
* [[Mac OSX]] instructions&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== Free and open-source tools to help build a powerful version of PLplot on Windows =====&lt;br /&gt;
&lt;br /&gt;
* [[Install MinGW/MSYS]]&lt;br /&gt;
* [[Install SWIG]]&lt;br /&gt;
* [[Install Python]]&lt;br /&gt;
* [[Install Lua]]&lt;br /&gt;
* [[Install Tcl]]&lt;br /&gt;
* [[Install 3rd party libraries]]&lt;br /&gt;
&lt;br /&gt;
===== Instructions per Windows platform =====&lt;br /&gt;
&lt;br /&gt;
* [[Configure PLplot for Visual CXX]]&lt;br /&gt;
* [[Configure PLplot for MinGW/CLI]]&lt;br /&gt;
* [[Configure PLplot for cygwin]]&lt;br /&gt;
* [[Configure PLplot for Borland CXX 5.5 (free command line tools)]]&lt;br /&gt;
* [[Configure PLplot for Borland Turbo C++ Explorer Edition (free IDE and compiler)]]&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2307</id>
		<title>Specifics for various platforms</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2307"/>
				<updated>2010-12-18T03:50:22Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Free and open-source tools to help build PLplot on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before reading this section you should consult [[Building_PLplot]] to obtain generic build instructions.&lt;br /&gt;
==== Linux ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[List of Debian/Ubuntu packages]] - in order to be able to configure and compile the PLplot library this page contains a list of Debian/Ubuntu packages needed.&lt;br /&gt;
* [[Additional notes for ifort users]]&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
* [[Mac OSX]] instructions&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== Free and open-source tools to help build a powerful version of PLplot on Windows =====&lt;br /&gt;
&lt;br /&gt;
* [[Install MinGW/MSYS]]&lt;br /&gt;
* [[Install SWIG]]&lt;br /&gt;
* [[Install Python]]&lt;br /&gt;
* [[Install Lua]]&lt;br /&gt;
* [[Install 3rd party libraries]]&lt;br /&gt;
&lt;br /&gt;
===== Instructions per Windows platform =====&lt;br /&gt;
&lt;br /&gt;
* [[Configure PLplot for Visual CXX]]&lt;br /&gt;
* [[Configure PLplot for MinGW/CLI]]&lt;br /&gt;
* [[Configure PLplot for cygwin]]&lt;br /&gt;
* [[Configure PLplot for Borland CXX 5.5 (free command line tools)]]&lt;br /&gt;
* [[Configure PLplot for Borland Turbo C++ Explorer Edition (free IDE and compiler)]]&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Lua&amp;diff=2306</id>
		<title>Install Lua</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Lua&amp;diff=2306"/>
				<updated>2010-12-18T03:47:45Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order for the high-class Lua bindings and examples for PLplot to work you must install Lua on your Windows platform.&lt;br /&gt;
&lt;br /&gt;
The Lua build only takes a minute or so.  Thus the simplest way to install Lua  is to first [[Install MinGW/MSYS|install MinGW/MSYS]] (if you haven&amp;#039;t done so already). Then use that compiler and associated build tools to build Lua on Windows with the following steps:&lt;br /&gt;
* Put both MinGW and MSYS on your PATH.  This puts all sorts of command-line tools at your fingertips that will be used in the further steps.&lt;br /&gt;
* Set the LUA_PREFIX variable which points to the directory used for all further steps.  Under bash (available as part of MSYS), I set &amp;quot;LUA_PREFIX=/z/home/wine/newstart/lua/&amp;quot;, but use whatever is convenient for you.&lt;br /&gt;
* Create that directory if it doesn&amp;#039;t exist already and change directory to that location using the following commands:&lt;br /&gt;
** mkdir -p $LUA_PREFIX&lt;br /&gt;
** cd $LUA_PREFIX&lt;br /&gt;
* Download http://www.lua.org/ftp/lua-5.1.4.tar.gz in that location.&lt;br /&gt;
* Unpack, build, and install Lua using the following commands (where that last &amp;quot;cp -a&amp;quot; command works around a bug in the lua-5.1.4 build system for MinGW/MSYS):&lt;br /&gt;
** tar zxf lua-5.1.4.tar.gz   &lt;br /&gt;
** cd lua-5.1.4&lt;br /&gt;
** make mingw &amp;gt;&amp;amp; make_mingw.out&lt;br /&gt;
** make install INSTALL_TOP=$LUA_PREFIX/install &amp;gt;&amp;amp; make_install.out&lt;br /&gt;
** cp -a src/lua51.dll $LUA_PREFIX/install/bin&lt;br /&gt;
&lt;br /&gt;
To make Lua accessible to the PLplot CMake-based build system, you must put the lua command on your PATH (using &amp;quot;PATH=$LUA_PREFIX/install/bin:$PATH&amp;quot;) and use the following cmake options for your PLplot build:&lt;br /&gt;
* -DLUA_INCLUDE_DIR:PATH=$LUA_PREFIX/install/include&lt;br /&gt;
* -DLUA_LIBRARY:FILEPATH=$LUA_PREFIX/install/lib/liblua.a&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Lua&amp;diff=2305</id>
		<title>Install Lua</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Lua&amp;diff=2305"/>
				<updated>2010-12-18T03:45:51Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: First complete version of page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order for the high-class Lua bindings and examples for PLplot to work you must install Lua on your Windows platform.&lt;br /&gt;
&lt;br /&gt;
The Lua build only takes a minute or so.  Thus the simplest way to install Lua  is to first [[Install MinGW/MSYS|install MinGW/MSYS]] (if you haven&amp;#039;t done so already). Then use that compiler and associated build tools to build Lua on Windows with the following steps:&lt;br /&gt;
* Put both MinGW and MSYS on your PATH.  This puts all sorts of command-line tools at your fingertips that will be used in the further steps.&lt;br /&gt;
* Set the LUA_PREFIX variable which points to the directory used for all further steps.  Under bash (available as part of MSYS), I set &amp;quot;LUA_PREFIX=/z/home/wine/newstart/lua/&amp;quot;, but use whatever is convenient for you.&lt;br /&gt;
* Create that directory if it doesn&amp;#039;t exist already and change directory to that location using the following commands:&lt;br /&gt;
** mkdir -p $LUA_PREFIX&lt;br /&gt;
** cd $LUA_PREFIX&lt;br /&gt;
* Download http://www.lua.org/ftp/lua-5.1.4.tar.gz in that location.&lt;br /&gt;
* Unpack, build, and install Lua using the following commands (where that last &amp;quot;cp -a&amp;quot; command works around a bug in the lua-5.1.4 build system for MinGW/MSYS):&lt;br /&gt;
** tar zxf lua-5.1.4.tar.gz   &lt;br /&gt;
** cd lua-5.1.4&lt;br /&gt;
** make mingw &amp;gt;&amp;amp; make_mingw.out&lt;br /&gt;
** make install INSTALL_TOP=$LUA_PREFIX/install &amp;gt;&amp;amp; make_install.out&lt;br /&gt;
** cp -a src/lua51.dll $LUA_PREFIX/install/bin&lt;br /&gt;
&lt;br /&gt;
To make Lua accessible to the PLplot CMake-based build system, you must put the lua command on your PATH (using &amp;quot;PATH=$LUA_PREFIX/install/bin:$PATH&amp;quot;) and use the following cmake options:&lt;br /&gt;
* -DLUA_INCLUDE_DIR:PATH=$LUA_PREFIX/install/include&lt;br /&gt;
* -DLUA_LIBRARY:FILEPATH=$LUA_PREFIX/install/lib/liblua.a&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Lua&amp;diff=2304</id>
		<title>Install Lua</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Lua&amp;diff=2304"/>
				<updated>2010-12-18T03:10:33Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order for the high-class Lua bindings and examples for PLplot to work you must install Lua on your Windows platform.&lt;br /&gt;
&lt;br /&gt;
The simplest way to do this is to first [[Install MinGW/MSYS|install MinGW/MSYS]], then use that compiler and associated build tools to build Lua on Windows with the following steps:&lt;br /&gt;
&lt;br /&gt;
* Download and unpack http://www.lua.org/ftp/lua-5.1.4.tar.gz&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_SWIG&amp;diff=2303</id>
		<title>Install SWIG</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_SWIG&amp;diff=2303"/>
				<updated>2010-12-18T03:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PLplot uses SWIG to generate bindings for Java (not currently available for modern MinGW, but promised for the future), Python, and Lua.&lt;br /&gt;
&lt;br /&gt;
Download http://prdownloads.sourceforge.net/swig/swigwin/swigwin-1.3.40/swigwin-1.3.40.zip and unpack it.  The result is a subdirectory called swigwin-1.3.40 in your current location.  To give access to swig from the PLplot CMake-based build system, put that subdirectory on your PATH.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2302</id>
		<title>Specifics for various platforms</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2302"/>
				<updated>2010-12-18T02:44:29Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Free and open-source tools to help build PLplot on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before reading this section you should consult [[Building_PLplot]] to obtain generic build instructions.&lt;br /&gt;
==== Linux ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[List of Debian/Ubuntu packages]] - in order to be able to configure and compile the PLplot library this page contains a list of Debian/Ubuntu packages needed.&lt;br /&gt;
* [[Additional notes for ifort users]]&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
* [[Mac OSX]] instructions&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== Free and open-source tools to help build PLplot on Windows =====&lt;br /&gt;
&lt;br /&gt;
* [[Install MinGW/MSYS]]&lt;br /&gt;
* [[Install SWIG]]&lt;br /&gt;
* [[Install Python]]&lt;br /&gt;
* [[Install Lua]]&lt;br /&gt;
* [[Install 3rd party libraries]]&lt;br /&gt;
&lt;br /&gt;
===== Instructions per Windows platform =====&lt;br /&gt;
&lt;br /&gt;
* [[Configure PLplot for Visual CXX]]&lt;br /&gt;
* [[Configure PLplot for MinGW/CLI]]&lt;br /&gt;
* [[Configure PLplot for cygwin]]&lt;br /&gt;
* [[Configure PLplot for Borland CXX 5.5 (free command line tools)]]&lt;br /&gt;
* [[Configure PLplot for Borland Turbo C++ Explorer Edition (free IDE and compiler)]]&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python&amp;diff=2301</id>
		<title>Install Python</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python&amp;diff=2301"/>
				<updated>2010-12-13T22:39:06Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python2 is the high-level language of choice for many scientific programmers so the PLplot developers have made sure their Python2 bindings and their standard set of 33 Python examples to test and illustrate those bindings are supported in a first-class way.  To make this powerful component of PLplot available on Windows, it is necessary to download a Windows version of Python and NumPy (the subset of SciPy that allows arithmetic operations on scientific arrays at C speeds from Python).&lt;br /&gt;
&lt;br /&gt;
To obtain the latest version of Python2 for Windows, download the Python installer from http://www.python.org/ftp/python/2.7.1/python-2.7.1.msi.  (These instructions assume you have a 32-bit Windows platform which, e.g., is the standard choice for the wine platform even on 64-bit machines.  If you prefer the 64-bit choice for Python, then explore the parent directory of the above URL for MSI files with &amp;quot;amd64&amp;quot; in their name.)  Run the MSI installer.  I don&amp;#039;t know how to do that on Microsoft Windows, but on wine the command is &amp;quot;wine msiexec /i python-2.7.1.msi&amp;quot;.  After the installer GUI comes up, I recommend making all default choices _except_ for the installation prefix where I suggest you choose something unique which allows you to easily remove and replace Python installations when you need to without interfering with other downloaded software packages.  From here on I assume that prefix is called $PYTHON_PREFIX.&lt;br /&gt;
&lt;br /&gt;
To obtain the latest version of NumPy. download the NumPy installer from http://prdownloads.sourceforge.net/numpy/NumPy/1.5.1/numpy-1.5.1-win32-superpack-python2.7.exe and run it.  (For example, on wine you run that installer with the &amp;quot;wine numpy-1.5.1-win32-superpack-python2.7.exe&amp;quot; command, and I assume you do the same on the Microsoft Windows command-line by dropping &amp;quot;wine&amp;quot; from the command.  When the NumPy installer GUI comes up, my experience is it automatically finds the Python2 installation above for whatever you have chosen for $PYTHON_PREFIX so that I was able to use the default choice in all cases.&lt;br /&gt;
&lt;br /&gt;
After installation of Python2 and Numpy, the remaining steps are to inform CMake (the build system software used by PLplot) of the location of those installs.  To do that prepend the following data to the indicated environment variables which are assumed to be set already.  That assumption is correct in the PATH case, but if CMAKE_LIBRARY_PATH and/or CMAKE_INCLUDE_PATH have not been set up before then drop &amp;quot;:$CMAKE_LIBRARY_PATH&amp;quot; and/or $CMAKE_INCLUDE_PATH from the following commands and use the &amp;quot;export CMAKE_LIBRARY_PATH&amp;quot; and &amp;quot;export CMAKE_INCLUDE_PATH&amp;quot; commands as appropriate.&lt;br /&gt;
&lt;br /&gt;
PATH=$PYTHON_PREFIX:$PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_LIBRARY_PATH=$PYTHON_PREFIX/libs:$CMAKE_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=$PYTHON_PREFIX/Lib/site-packages/numpy/core/include/numpy:$CMAKE_INCLUDE_PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=$PYTHON_PREFIX/include:$CMAKE_INCLUDE_PATH&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python&amp;diff=2300</id>
		<title>Install Python</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python&amp;diff=2300"/>
				<updated>2010-12-13T22:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python2 is the high-level language of choice for many scientific programmers so the PLplot developers have made sure their Python2 bindings and their standard set of 33 Python examples to test and illustrate those bindings are supported in a first-class way.  To make this powerful component of PLplot available on Windows, it is necessary to download a Windows version of Python and NumPy (the subset of SciPy that allows arithmetic operations on scientific arrays at C speeds from Python).&lt;br /&gt;
&lt;br /&gt;
To obtain the latest version of Python2 for Windows, download the Python installer from http://www.python.org/ftp/python/2.7.1/python-2.7.1.msi.  (These instructions assume you have a 32-bit Windows platform which, e.g., is the standard choice for the wine platform even on 64-bit machines.  If you prefer the 64-bit choice for Python, then explore the above URL for MSI files with AMD64 in their name.)  Run the MSI installer.  I don&amp;#039;t know how to do that on Microsoft Windows, but on wine the command is &amp;quot;wine msiexec /i python-2.7.1.msi&amp;quot;.  After the installer GUI comes up, I recommend making all default choices _except_ for the installation prefix where I suggest you choose something unique which allows you to easily remove and replace Python installations when you need to without interfering with other downloaded software packages.  From here on I assume that prefix is called $PYTHON_PREFIX.&lt;br /&gt;
&lt;br /&gt;
To obtain the latest version of NumPy. download the NumPy installer from http://prdownloads.sourceforge.net/numpy/NumPy/1.5.1/numpy-1.5.1-win32-superpack-python2.7.exe and run it.  (For example, on wine you run that installer with the &amp;quot;wine numpy-1.5.1-win32-superpack-python2.7.exe&amp;quot; command, and I assume you do the same on the Microsoft Windows command-line by dropping &amp;quot;wine&amp;quot; from the command.  When the NumPy installer GUI comes up, my experience is it automatically finds the Python2 installation above for whatever you have chosen for $PYTHON_PREFIX so that I was able to use the default choice in all cases.&lt;br /&gt;
&lt;br /&gt;
After installation of Python2 and Numpy, the remaining steps are to inform CMake (the build system software used by PLplot) of the location of those installs.  To do that prepend the following data to the indicated environment variables which are assumed to be set already.  That assumption is correct in the PATH case, but if CMAKE_LIBRARY_PATH and/or CMAKE_INCLUDE_PATH have not been set up before then drop &amp;quot;:$CMAKE_LIBRARY_PATH&amp;quot; and/or $CMAKE_INCLUDE_PATH from the following commands and use the &amp;quot;export CMAKE_LIBRARY_PATH&amp;quot; and &amp;quot;export CMAKE_INCLUDE_PATH&amp;quot; commands as appropriate.&lt;br /&gt;
&lt;br /&gt;
PATH=$PYTHON_PREFIX:$PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_LIBRARY_PATH=$PYTHON_PREFIX/libs:$CMAKE_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=$PYTHON_PREFIX/Lib/site-packages/numpy/core/include/numpy:$CMAKE_INCLUDE_PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=$PYTHON_PREFIX/include:$CMAKE_INCLUDE_PATH&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python&amp;diff=2299</id>
		<title>Install Python</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python&amp;diff=2299"/>
				<updated>2010-12-13T22:00:10Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Install Python and make it available to PLplot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python2 is the high-level language of choice for many scientific programmers so the PLplot developers have made sure their Python2 bindings and their standard set of 33 Python examples to test and illustrate those bindings are supported in a first-class way.  To make this powerful component of PLplot available on Windows, it is necessary to download a Windows version of Python and NumPy (the subset of SciPy that allows arithimetic operations on scientific arrays at C speeds from Python).&lt;br /&gt;
&lt;br /&gt;
To obtain the latest version of Python2 for Windows, download the Python installer from [http://www.python.org/ftp/python/2.7.1/python-2.7.1.msi].  (These instructions assume you have a 32-bit Windows platform which, e.g., is the standard choice for the wine platform even on 64-bit machines.  If you prefer the 64-bit choice for Python, then explore the above URL for MSI files with AMD64 in their name.)  Run the MSI installer.  I don&amp;#039;t know how to do that on Microsoft Windows, but on wine the command is &amp;quot;wine msiexec /i python-2.7.1.msi&amp;quot;.  After the installer GUI comes up, I recommend making all default choices _except_ for the installation prefix where I suggest you choose something unique which allows you to easily remove and replace Python installations when you need to without interfering with other downloaded software packages.  From here on I assume that prefix is called $PYTHON_PREFIX.&lt;br /&gt;
&lt;br /&gt;
To obtain the latest version of NumPy. download the NumPy installer from [http://prdownloads.sourceforge.net/numpy/NumPy/1.5.1/numpy-1.5.1-win32-superpack-python2.7.exe] and run it.  (For example, on wine you run that installer with the &amp;quot;wine numpy-1.5.1-win32-superpack-python2.7.exe&amp;quot; command&amp;quot;, and I assume you do the same on Windows command-line by dropping &amp;quot;wine&amp;quot; from the command.  When the NumPy installer GUI comes up, my experience is it automatically finds the Python2 installation above whatever you have chosen for $PYTHON_PREFIX so that I was able to use the default choice in all cases.&lt;br /&gt;
&lt;br /&gt;
After installation of Python2 and Numpy, the remaining steps are to inform CMake (the build system software used by PLplot) of the location of those installs.  Set the following environment variables (assumed to be set previously to other values) to do that:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PATH=$PYTHON_PREFIX:$PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_LIBRARY_PATH=$PYTHON_PREFIX/libs:$CMAKE_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=$PYTHON_PREFIX/Lib/site-packages/numpy/core/include/numpy:$CMAKE_INCLUDE_PATH&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=$PYTHON_PREFIX/include:$CMAKE_INCLUDE_PATH&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2298</id>
		<title>Specifics for various platforms</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2298"/>
				<updated>2010-12-13T19:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Free and open-source tools to help build PLplot on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before reading this section you should consult [[Building_PLplot]] to obtain generic build instructions.&lt;br /&gt;
==== Linux ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[List of Debian/Ubuntu packages]] - in order to be able to configure and compile the PLplot library this page contains a list of Debian/Ubuntu packages needed.&lt;br /&gt;
* [[Additional notes for ifort users]]&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
* [[Mac OSX]] instructions&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== Free and open-source tools to help build PLplot on Windows =====&lt;br /&gt;
&lt;br /&gt;
* [[Install MinGW/MSYS]]&lt;br /&gt;
* [[Install Python]]&lt;br /&gt;
* [[Install 3rd party libraries]]&lt;br /&gt;
&lt;br /&gt;
===== Instructions per Windows platform =====&lt;br /&gt;
&lt;br /&gt;
* [[Configure PLplot for Visual CXX]]&lt;br /&gt;
* [[Configure PLplot for MinGW/CLI]]&lt;br /&gt;
* [[Configure PLplot for cygwin]]&lt;br /&gt;
* [[Configure PLplot for Borland CXX 5.5 (free command line tools)]]&lt;br /&gt;
* [[Configure PLplot for Borland Turbo C++ Explorer Edition (free IDE and compiler)]]&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_MinGW/MSYS&amp;diff=2297</id>
		<title>Install MinGW/MSYS</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_MinGW/MSYS&amp;diff=2297"/>
				<updated>2010-12-13T19:35:18Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Add note about supported languages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MinGW consists mostly of a port of gcc (the GNU compiler collection) to Windows.  The languages of interest to PLplot that are currently supported by the latest MinGW are C, C++, Fortran, and Ada.  (Java has historically been supported by MinGW, but there currently is no Java support for the modern version of MinGW.)  MinGW also includes some minimal additional build tools such as a special form of make (mingw32-make) which relies internally mostly on standard Windows capabilities to help build software but which externally provides &amp;quot;make&amp;quot; functionality. Thus, it is possible to build software with mingw32-make without reference to any additional build tools other than the remainder of MinGW and standard Windows (either the Microsoft or wine version) platform capabilities.  To use MinGW alone to build software, specify the CMake &amp;quot;MinGW Makefiles&amp;quot; generator.  Just like gcc (and wine), MinGW is free and open source software.&lt;br /&gt;
&lt;br /&gt;
MSYS is a port of many additional Unix build tools to Windows beyond the minimal set associated with MinGW.  For example, MSYS includes an MSYS version of GNU make which uses bash and many other MSYS tools internally to provide make-like functionality.  To use the combined capabilities of MinGW and MSYS to build software, specify the CMake &amp;quot;MSYS Makefiles&amp;quot; generator.  Just like MinGW, MSYS is free and open source software.&lt;br /&gt;
&lt;br /&gt;
To install both MinGW and MSYS on Windows or wine use [http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/ the automated modern installer].  That installer requires about 5 minutes to download and install all the components of MinGW and MSYS that you need.  The bin directories for MinGW and MSYS are kept entirely separate by the automatic installer so with some PATH manipulations you can access any combination of MinGW and/or MSYS that you like from a Windows (either the Microsoft or wine version) platform.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2296</id>
		<title>Install 3rd party libraries</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2296"/>
				<updated>2010-12-13T07:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In contrast to Linux, where installing development files for certain 3rd party libraries is only a matter of seconds (depending on the distribution), in Windows much more work needs to be done. In the following we provide extensive instructions how to install 3rd party libraries with the corresponding development files so that the PLplot library can use them.&lt;br /&gt;
&lt;br /&gt;
You actually need none of these libraries to get PLplot compiled - they are only needed for added interpolation choices ([[#QHull Library|QHull]]) for the core PLplot library or as dependencies of some device drivers.&lt;br /&gt;
&lt;br /&gt;
== QHull Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
QHull is a library/program to determine the convex hull of a set of &lt;br /&gt;
points in n dimensions. The CSIRO library that is part of PLplot uses this for certain&lt;br /&gt;
interpolation methods (convex hulls in n dimensions are related to Voronoi&lt;br /&gt;
diagrams and Delaunay triangulations in n-1 dimensions). For further information visi http://www.qhull.org/ .&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.qhull.org/download/qhull-2003.1.zip QHull for windows]&lt;br /&gt;
* Unzip qhull-2003.1.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libqhull&amp;lt;/tt&amp;gt; into the new directory (qhull-2003.1)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set QHULLDIR=path-to\qhull-2003.1\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%QHULLDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%QHULLDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the qhull library and headers.&lt;br /&gt;
&lt;br /&gt;
== AGG Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The AGG (Anti-Grain Graphics) Library is used by the wxWidgets driver (so there is no need for this library, if you don&amp;#039;t use this driver) to display the plots nicely antialized. Note, that from Version 2.5 on, the AGG library is now GPL, so for the time being Version 2.4 should be used for binary packages of PLplot, which is free also for commercial applications. Visit http://www.antigrain.com for further information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
* Download [http://www.antigrain.com/agg-2.4.zip AGG v2.4 Windows]&lt;br /&gt;
* Unzip agg-2.4.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libagg&amp;lt;/tt&amp;gt; into the new directory (agg-2.4)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set AGGDIR=path-to\agg-2.4\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%AGGDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%AGGDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the agg library and headers.&lt;br /&gt;
&lt;br /&gt;
== GTK+ Libraries ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
== Qt4 Libraries ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
== GD Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The gd library is needed by the gd driver of PLplot to produce png, jpeg or gif files. See http://www.boutell.com/gd/ for details.  Note, however, that the PLplot gd device driver has been deprecated since the release of PLplot-5.9.3 for reasons given in that release announcement and subsequent release announcements.  The PLplot gd device driver will likely be eventually removed and much better alternatives are the cairo and qt device drivers which depend on the external [[#GTK+ Libraries |GTK+]] and [[#Qt4 Libraries |Qt4]] libraries.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download the gd library for Windows from http://www.boutell.com/gd/ . The latest version is [http://www.boutell.com/gd/http/gdwin32.zip 2.0.33] (Windows dll).&lt;br /&gt;
* Unzip the archive to a suitable place.&lt;br /&gt;
* The package provides a dll and an import library for the MinGW compiler. To obtain an import library for the MSVC compiler run the &amp;lt;tt&amp;gt;makemsvcimport.bat&amp;lt;/tt&amp;gt; batch file in a CLI with the correct environment settings for MSVC.&lt;br /&gt;
* In order to let cmake find the gd library files you need to set environment variables (best in batch file - see above), e.g.&lt;br /&gt;
 set GDLIBDIR=C:\DevZone\gdwin32&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%GDLIBDIR%&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%GDLIBDIR%&lt;br /&gt;
&lt;br /&gt;
CMake should than be able to find the gd library and headers and the gd driver (png, gif, jpeg) will be automatically compiled into the library.&lt;br /&gt;
&lt;br /&gt;
== Freetype Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well. http://www.freetype.org reveals more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://download.savannah.gnu.org/releases/freetype/ft221.zip Freetype library]&lt;br /&gt;
* Unzip the ft221.zip package in a suitable place&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than for MinGW (call &amp;lt;tt&amp;gt;mingw32.make&amp;lt;/tt&amp;gt; twice!):&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 copy objs\freetype.a objs\libfreetype.a&lt;br /&gt;
* Or for Visual C++ (you need to use GNU-Make not nmake - download it from http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.tar.gz?download or http://gnuwin32.sourceforge.net/packages/make.htm):&lt;br /&gt;
 path_to_gnu_make\mingw32-make setup visualc&lt;br /&gt;
 path_to_gnu_make\mingw32-make&lt;br /&gt;
* For Visual C++ 2005 you need to change line 69 of &amp;lt;tt&amp;gt;freetype-2.2.1\builds\compiler\visualc.mk&amp;lt;/tt&amp;gt; to&lt;br /&gt;
    CFLAGS ?= /nologo /c /Ox /W3 /WX /D_CRT_SECURE_NO_DEPRECATE&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set FREETYPEDIR=C:\freetype-2.2.1&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%FREETYPEDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%FREETYPEDIR%\objs&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the freetype library and headers.&lt;br /&gt;
&lt;br /&gt;
== wxWidgets Library ==&lt;br /&gt;
&lt;br /&gt;
See [[wxWidgets]] for other instructions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
wxWidgets is a cross platform GUI toolkit which also provides other common classes as wxString, wxMap etc. and is known to work well on Windows, Linux and MacOSX. The wxWidgets toolkit is used for the wxWidgets driver. Version 2.6.x and 2.8.x of wxWidgets can be used for the wxWidgets driver. Surf to http://www.wxwidgets.org for more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.3.zip wxWidgets 2.6.3 library as zip] (exe installer is also available, wxWidgets 2.8.0 has problems with MinGW in the moment)&lt;br /&gt;
* Unzip the wxMSW-2.6.3.zip package in a suitable place&lt;br /&gt;
* The following instructions will build a shared, unicode, release version of wxWidgets. If you use plplot within your wxWidgets application you have already a wxWidgets library ready for use - see &amp;lt;tt&amp;gt;cmake-2.4.5\share\modules\FindwxWidgets.cmake&amp;lt;/tt&amp;gt; for the options for your special wxWidgets library.&lt;br /&gt;
* Cd into &amp;lt;tt&amp;gt;wxWidgets-2.6.3\build\msw&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Than for MinGW:&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (MinGW)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\gcc_dll;%PATH%&lt;br /&gt;
* Or for Visual C++:&lt;br /&gt;
 nmake -f makefile.vc SHARED=0 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (Visual C++)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\vc_dll;%PATH%&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the wxWidgets library and headers, if you additionally set the following cmake options for MinGW:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/gcc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;br /&gt;
and for Visual C++:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/vc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2295</id>
		<title>Install 3rd party libraries</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2295"/>
				<updated>2010-12-13T07:50:41Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Drop cd (since handled internally now), update GD to inform about its deprecation, add placeholders for GTK+, and Qt4.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In contrast to Linux, where installing development files for certain 3rd party libraries is only a matter of seconds (depending on the distribution), in Windows much more work needs to be done. In the following we provide extensive instructions how to install 3rd party libraries with the corresponding development files so that the PLplot library can use them.&lt;br /&gt;
&lt;br /&gt;
You actually need none of these libraries to get PLplot compiled - they are only needed for added interpolation choices ([[#QHull Library|QHull]]) for the core PLplot library or as dependencies of some device drivers.&lt;br /&gt;
&lt;br /&gt;
== QHull Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
QHull is a library/program to determine the convex hull of a set of &lt;br /&gt;
points in n dimensions. The CSIRO library that is part of PLplot uses this for certain&lt;br /&gt;
interpolation methods (convex hulls in n dimensions are related to Voronoi&lt;br /&gt;
diagrams and Delaunay triangulations in n-1 dimensions). For further information visi http://www.qhull.org/ .&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.qhull.org/download/qhull-2003.1.zip QHull for windows]&lt;br /&gt;
* Unzip qhull-2003.1.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libqhull&amp;lt;/tt&amp;gt; into the new directory (qhull-2003.1)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set QHULLDIR=path-to\qhull-2003.1\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%QHULLDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%QHULLDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the qhull library and headers.&lt;br /&gt;
&lt;br /&gt;
== AGG Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The AGG (Anti-Grain Graphics) Library is used by the wxWidgets driver (so there is no need for this library, if you don&amp;#039;t use this driver) to display the plots nicely antialized. Note, that from Version 2.5 on, the AGG library is now GPL, so for the time being Version 2.4 should be used for binary packages of PLplot, which is free also for commercial applications. Visit http://www.antigrain.com for further information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
* Download [http://www.antigrain.com/agg-2.4.zip AGG v2.4 Windows]&lt;br /&gt;
* Unzip agg-2.4.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libagg&amp;lt;/tt&amp;gt; into the new directory (agg-2.4)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set AGGDIR=path-to\agg-2.4\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%AGGDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%AGGDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the agg library and headers.&lt;br /&gt;
&lt;br /&gt;
== GTK+ Libraries ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
== Qt4 Libraries ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
== GD Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The gd library is needed by the gd driver of PLplot to produce png, jpeg or gif files. See http://www.boutell.com/gd/ for details.  Note, however, that the PLplot gd device driver has been deprecated since the release of PLplot-5.9.3 for reasons given in that release announcement and subsequent release announcements.  The PLplot gd device driver will likely be eventually removed and much better alternatives are the cairo and qt device drivers which depend on the external [[GTK+ Libraries|GTK+]] and [[Qt4 Libraries|Qt4]] libraries.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download the gd library for Windows from http://www.boutell.com/gd/ . The latest version is [http://www.boutell.com/gd/http/gdwin32.zip 2.0.33] (Windows dll).&lt;br /&gt;
* Unzip the archive to a suitable place.&lt;br /&gt;
* The package provides a dll and an import library for the MinGW compiler. To obtain an import library for the MSVC compiler run the &amp;lt;tt&amp;gt;makemsvcimport.bat&amp;lt;/tt&amp;gt; batch file in a CLI with the correct environment settings for MSVC.&lt;br /&gt;
* In order to let cmake find the gd library files you need to set environment variables (best in batch file - see above), e.g.&lt;br /&gt;
 set GDLIBDIR=C:\DevZone\gdwin32&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%GDLIBDIR%&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%GDLIBDIR%&lt;br /&gt;
&lt;br /&gt;
CMake should than be able to find the gd library and headers and the gd driver (png, gif, jpeg) will be automatically compiled into the library.&lt;br /&gt;
&lt;br /&gt;
== Freetype Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well. http://www.freetype.org reveals more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://download.savannah.gnu.org/releases/freetype/ft221.zip Freetype library]&lt;br /&gt;
* Unzip the ft221.zip package in a suitable place&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than for MinGW (call &amp;lt;tt&amp;gt;mingw32.make&amp;lt;/tt&amp;gt; twice!):&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 copy objs\freetype.a objs\libfreetype.a&lt;br /&gt;
* Or for Visual C++ (you need to use GNU-Make not nmake - download it from http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.tar.gz?download or http://gnuwin32.sourceforge.net/packages/make.htm):&lt;br /&gt;
 path_to_gnu_make\mingw32-make setup visualc&lt;br /&gt;
 path_to_gnu_make\mingw32-make&lt;br /&gt;
* For Visual C++ 2005 you need to change line 69 of &amp;lt;tt&amp;gt;freetype-2.2.1\builds\compiler\visualc.mk&amp;lt;/tt&amp;gt; to&lt;br /&gt;
    CFLAGS ?= /nologo /c /Ox /W3 /WX /D_CRT_SECURE_NO_DEPRECATE&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set FREETYPEDIR=C:\freetype-2.2.1&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%FREETYPEDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%FREETYPEDIR%\objs&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the freetype library and headers.&lt;br /&gt;
&lt;br /&gt;
== wxWidgets Library ==&lt;br /&gt;
&lt;br /&gt;
See [[wxWidgets]] for other instructions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
wxWidgets is a cross platform GUI toolkit which also provides other common classes as wxString, wxMap etc. and is known to work well on Windows, Linux and MacOSX. The wxWidgets toolkit is used for the wxWidgets driver. Version 2.6.x and 2.8.x of wxWidgets can be used for the wxWidgets driver. Surf to http://www.wxwidgets.org for more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.3.zip wxWidgets 2.6.3 library as zip] (exe installer is also available, wxWidgets 2.8.0 has problems with MinGW in the moment)&lt;br /&gt;
* Unzip the wxMSW-2.6.3.zip package in a suitable place&lt;br /&gt;
* The following instructions will build a shared, unicode, release version of wxWidgets. If you use plplot within your wxWidgets application you have already a wxWidgets library ready for use - see &amp;lt;tt&amp;gt;cmake-2.4.5\share\modules\FindwxWidgets.cmake&amp;lt;/tt&amp;gt; for the options for your special wxWidgets library.&lt;br /&gt;
* Cd into &amp;lt;tt&amp;gt;wxWidgets-2.6.3\build\msw&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Than for MinGW:&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (MinGW)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\gcc_dll;%PATH%&lt;br /&gt;
* Or for Visual C++:&lt;br /&gt;
 nmake -f makefile.vc SHARED=0 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (Visual C++)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\vc_dll;%PATH%&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the wxWidgets library and headers, if you additionally set the following cmake options for MinGW:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/gcc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;br /&gt;
and for Visual C++:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/vc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_MinGW/MSYS&amp;diff=2294</id>
		<title>Install MinGW/MSYS</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_MinGW/MSYS&amp;diff=2294"/>
				<updated>2010-12-13T07:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MinGW consists mostly of a port of gcc (the GNU compiler collection) to Windows.  MinGW also includes some minimal additional build tools such as a special form of make (mingw32-make) which relies internally mostly on standard Windows capabilities to help build software but which externally provides &amp;quot;make&amp;quot; functionality. Thus, it is possible to build software with mingw32-make without reference to any additional build tools other than the remainder of MinGW and standard Windows (either the Microsoft or wine version) platform capabilities.  To use MinGW alone to build software, specify the CMake &amp;quot;MinGW Makefiles&amp;quot; generator.  Just like gcc (and wine), MinGW is free and open source software.&lt;br /&gt;
&lt;br /&gt;
MSYS is a port of many additional Unix build tools to Windows beyond the minimal set associated with MinGW.  For example, MSYS includes an MSYS version of GNU make which uses bash and many other MSYS tools internally to provide make-like functionality.  To use the combined capabilities of MinGW and MSYS to build software, specify the CMake &amp;quot;MSYS Makefiles&amp;quot; generator.  Just like MinGW, MSYS is free and open source software.&lt;br /&gt;
&lt;br /&gt;
To install both MinGW and MSYS on Windows or wine, use [http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/ the automated modern installer].  That installer requires about 5 minutes to download and install all the components of MinGW and MSYS that you need.  The bin directories for MinGW and MSYS are kept entirely separate by the automatic installer so with some PATH manipulations you can access any combination of MinGW and/or MSYS that you like from a Windows (either the Microsoft or wine version) platform.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_MinGW/MSYS&amp;diff=2293</id>
		<title>Install MinGW/MSYS</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_MinGW/MSYS&amp;diff=2293"/>
				<updated>2010-12-13T06:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Introduce MinGW and MSYS and give installation instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MinGW consists mostly of a port of gcc (the GNU compiler collection) to Windows.  MinGW also includes some minimal additional build tools such as a special form of make (mingw32-make) which relies internally mostly on standard Windows capabilities to help build software but which externally provides &amp;quot;make&amp;quot; functionality. Thus, it is possible to build software with mingw32-make without reference to any additional build tools other than the remainder of MinGW and standard Windows (either the Microsoft or wine version) platform capabilities.  To use MinGW alone to build software, specify the CMake &amp;quot;MinGW Makefiles&amp;quot; generator.  Just like gcc (and wine), MinGW is free and open source software.&lt;br /&gt;
&lt;br /&gt;
MSYS is a port of many additional Unix build tools to Windows beyond the minimal set associated with MinGW.  For example, MSYS includes an MSYS version of GNU make which uses bash and many other MSYS tools internally to provide make-like functionality.  To use the combined capabilities of MinGW and MSYS to build software, specify the CMake &amp;quot;MSYS Makefiles&amp;quot; generator.  Just like MinGW, MSYS is free and open source software.&lt;br /&gt;
&lt;br /&gt;
To install both MinGW and MSYS on Windows or wine, use the modern installer downloadable from sourceforge.net/projects/mingw/files/Automated MinGW Installer/mingw-get-inst/.  The modern installer requires about 5 minutes to download and install all the components of MinGW and MSYS that you need.  The bin directories for MinGW and MSYS are kept entirely separate by the automatic installer so with some PATH manipulations you can access any combination of MinGW and/or MSYS that you like from a Windows (either the Microsoft or wine version) platform.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2292</id>
		<title>Specifics for various platforms</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Specifics_for_various_platforms&amp;diff=2292"/>
				<updated>2010-12-13T06:08:39Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before reading this section you should consult [[Building_PLplot]] to obtain generic build instructions.&lt;br /&gt;
==== Linux ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[List of Debian/Ubuntu packages]] - in order to be able to configure and compile the PLplot library this page contains a list of Debian/Ubuntu packages needed.&lt;br /&gt;
* [[Additional notes for ifort users]]&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
* [[Mac OSX]] instructions&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
===== Free and open-source tools to help build PLplot on Windows =====&lt;br /&gt;
&lt;br /&gt;
* [[Install MinGW/MSYS]]&lt;br /&gt;
* [[Install 3rd party libraries]]&lt;br /&gt;
&lt;br /&gt;
===== Instructions per Windows platform =====&lt;br /&gt;
&lt;br /&gt;
* [[Configure PLplot for Visual CXX]]&lt;br /&gt;
* [[Configure PLplot for MinGW/CLI]]&lt;br /&gt;
* [[Configure PLplot for cygwin]]&lt;br /&gt;
* [[Configure PLplot for Borland CXX 5.5 (free command line tools)]]&lt;br /&gt;
* [[Configure PLplot for Borland Turbo C++ Explorer Edition (free IDE and compiler)]]&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2291</id>
		<title>Install 3rd party libraries</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2291"/>
				<updated>2010-12-13T03:59:51Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In contrast to Linux, where installing development files for certain 3rd party libraries is only a matter of seconds (depending on the distribution), in Windows much more work needs to be done. In the following we provide extensive instructions how to install 3rd party libraries with the corresponding development files so that the PLplot library can use them.&lt;br /&gt;
&lt;br /&gt;
You actually need none of these libraries to get PLplot compiled - they are only needed for added interpolation choices ([[#QHull Library|QHull]]) for the core PLplot library or as dependencies of some device drivers.&lt;br /&gt;
&lt;br /&gt;
== QHull Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
QHull is a library/program to determine the convex hull of a set of &lt;br /&gt;
points in n dimensions. The CSIRO library that is part of PLplot uses this for certain&lt;br /&gt;
interpolation methods (convex hulls in n dimensions are related to Voronoi&lt;br /&gt;
diagrams and Delaunay triangulations in n-1 dimensions). For further information visi http://www.qhull.org/ .&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.qhull.org/download/qhull-2003.1.zip QHull for windows]&lt;br /&gt;
* Unzip qhull-2003.1.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libqhull&amp;lt;/tt&amp;gt; into the new directory (qhull-2003.1)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set QHULLDIR=path-to\qhull-2003.1\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%QHULLDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%QHULLDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the qhull library and headers.&lt;br /&gt;
&lt;br /&gt;
== AGG Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The AGG (Anti-Grain Graphics) Library is used by the wxWidgets driver (so there is no need for this library, if you don&amp;#039;t use this driver) to display the plots nicely antialized. Note, that from Version 2.5 on, the AGG library is now GPL, so for the time being Version 2.4 should be used for binary packages of PLplot, which is free also for commercial applications. Visit http://www.antigrain.com for further information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
* Download [http://www.antigrain.com/agg-2.4.zip AGG v2.4 Windows]&lt;br /&gt;
* Unzip agg-2.4.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libagg&amp;lt;/tt&amp;gt; into the new directory (agg-2.4)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set AGGDIR=path-to\agg-2.4\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%AGGDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%AGGDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the agg library and headers.&lt;br /&gt;
&lt;br /&gt;
== CD Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The CD library is needed for the cgm driver. The CGM format is vector-based and is widely used as an interchange format between drawing and plotting programs.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
* Download [http://prdownloads.sourceforge.net/plplot/cd1.3.tar.gz?download CD library]&lt;br /&gt;
* Untar cd1.3.tar.gz package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libcd&amp;lt;/tt&amp;gt; into the new directory (cd1.3)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set CDDIR=path-to\cd1.3\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%CDDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%CDDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the cd library and headers.&lt;br /&gt;
&lt;br /&gt;
== GD Libary ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The gd library is needed by the gd driver of PLplot to produce png, jpeg or gif files. See http://www.boutell.com/gd/ for details.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download the gd library for Windows from http://www.boutell.com/gd/ . The latest version is [http://www.boutell.com/gd/http/gdwin32.zip 2.0.33] (Windows dll).&lt;br /&gt;
* Unzip the archive to a suitable place.&lt;br /&gt;
* The package provides a dll and an import library for the MinGW compiler. To obtain an import library for the MSVC compiler run the &amp;lt;tt&amp;gt;makemsvcimport.bat&amp;lt;/tt&amp;gt; batch file in a CLI with the correct environment settings for MSVC.&lt;br /&gt;
* In order to let cmake find the gd library files you need to set environment variables (best in batch file - see above), e.g.&lt;br /&gt;
 set GDLIBDIR=C:\DevZone\gdwin32&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%GDLIBDIR%&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%GDLIBDIR%&lt;br /&gt;
&lt;br /&gt;
CMake should than be able to find the gd library and headers and the gd driver (png, gif, jpeg) will be automatically compiled into the library.&lt;br /&gt;
&lt;br /&gt;
== Freetype Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well. http://www.freetype.org reveals more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://download.savannah.gnu.org/releases/freetype/ft221.zip Freetype library]&lt;br /&gt;
* Unzip the ft221.zip package in a suitable place&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than for MinGW (call &amp;lt;tt&amp;gt;mingw32.make&amp;lt;/tt&amp;gt; twice!):&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 copy objs\freetype.a objs\libfreetype.a&lt;br /&gt;
* Or for Visual C++ (you need to use GNU-Make not nmake - download it from http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.tar.gz?download or http://gnuwin32.sourceforge.net/packages/make.htm):&lt;br /&gt;
 path_to_gnu_make\mingw32-make setup visualc&lt;br /&gt;
 path_to_gnu_make\mingw32-make&lt;br /&gt;
* For Visual C++ 2005 you need to change line 69 of &amp;lt;tt&amp;gt;freetype-2.2.1\builds\compiler\visualc.mk&amp;lt;/tt&amp;gt; to&lt;br /&gt;
    CFLAGS ?= /nologo /c /Ox /W3 /WX /D_CRT_SECURE_NO_DEPRECATE&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set FREETYPEDIR=C:\freetype-2.2.1&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%FREETYPEDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%FREETYPEDIR%\objs&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the freetype library and headers.&lt;br /&gt;
&lt;br /&gt;
== wxWidgets Library ==&lt;br /&gt;
&lt;br /&gt;
See [[wxWidgets]] for other instructions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
wxWidgets is a cross platform GUI toolkit which also provides other common classes as wxString, wxMap etc. and is known to work well on Windows, Linux and MacOSX. The wxWidgets toolkit is used for the wxWidgets driver. Version 2.6.x and 2.8.x of wxWidgets can be used for the wxWidgets driver. Surf to http://www.wxwidgets.org for more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.3.zip wxWidgets 2.6.3 library as zip] (exe installer is also available, wxWidgets 2.8.0 has problems with MinGW in the moment)&lt;br /&gt;
* Unzip the wxMSW-2.6.3.zip package in a suitable place&lt;br /&gt;
* The following instructions will build a shared, unicode, release version of wxWidgets. If you use plplot within your wxWidgets application you have already a wxWidgets library ready for use - see &amp;lt;tt&amp;gt;cmake-2.4.5\share\modules\FindwxWidgets.cmake&amp;lt;/tt&amp;gt; for the options for your special wxWidgets library.&lt;br /&gt;
* Cd into &amp;lt;tt&amp;gt;wxWidgets-2.6.3\build\msw&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Than for MinGW:&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (MinGW)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\gcc_dll;%PATH%&lt;br /&gt;
* Or for Visual C++:&lt;br /&gt;
 nmake -f makefile.vc SHARED=0 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (Visual C++)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\vc_dll;%PATH%&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the wxWidgets library and headers, if you additionally set the following cmake options for MinGW:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/gcc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;br /&gt;
and for Visual C++:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/vc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2290</id>
		<title>Install 3rd party libraries</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Install_3rd_party_libraries&amp;diff=2290"/>
				<updated>2010-12-13T03:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In opposition to Linux, where installing development files for certain 3rd party libraries is only a matter of seconds (depending on the distribution), in Windows much more work needs to be done. In the following we provide extensive instructions how to install 3rd party libraries with the corresponding development files so that the PLplot library can use them.&lt;br /&gt;
&lt;br /&gt;
You actually need none of these libraries to get PLplot compiled - they are needed for drivers or some features which are not available than.&lt;br /&gt;
&lt;br /&gt;
== QHull Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
QHull is a library/program to determine the convex hull of a set of &lt;br /&gt;
points in n dimensions. The CSIRO library that is part of PLplot uses this for certain&lt;br /&gt;
interpolation methods (convex hulls in n dimensions are related to Voronoi&lt;br /&gt;
diagrams and Delaunay triangulations in n-1 dimensions). For further information visi http://www.qhull.org/ .&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.qhull.org/download/qhull-2003.1.zip QHull for windows]&lt;br /&gt;
* Unzip qhull-2003.1.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libqhull&amp;lt;/tt&amp;gt; into the new directory (qhull-2003.1)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set QHULLDIR=path-to\qhull-2003.1\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%QHULLDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%QHULLDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the qhull library and headers.&lt;br /&gt;
&lt;br /&gt;
== AGG Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The AGG (Anti-Grain Graphics) Library is used by the wxWidgets driver (so there is no need for this library, if you don&amp;#039;t use this driver) to display the plots nicely antialized. Note, that from Version 2.5 on, the AGG library is now GPL, so for the time being Version 2.4 should be used for binary packages of PLplot, which is free also for commercial applications. Visit http://www.antigrain.com for further information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
* Download [http://www.antigrain.com/agg-2.4.zip AGG v2.4 Windows]&lt;br /&gt;
* Unzip agg-2.4.zip package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libagg&amp;lt;/tt&amp;gt; into the new directory (agg-2.4)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set AGGDIR=path-to\agg-2.4\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%AGGDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%AGGDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the agg library and headers.&lt;br /&gt;
&lt;br /&gt;
== CD Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The CD library is needed for the cgm driver. The CGM format is vector-based and is widely used as an interchange format between drawing and plotting programs.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
* Download [http://prdownloads.sourceforge.net/plplot/cd1.3.tar.gz?download CD library]&lt;br /&gt;
* Untar cd1.3.tar.gz package in a suitable place&lt;br /&gt;
* Copy the custom &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;plplot\cmake\external\libcd&amp;lt;/tt&amp;gt; into the new directory (cd1.3)&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than (e.g. for MSVC):&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake -G &amp;quot;NMake Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=local ..&lt;br /&gt;
 nmake install&lt;br /&gt;
* a static library will be built and the library and the include files will copied into &amp;lt;tt&amp;gt;build\local\lib&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;build\local\include&amp;lt;/tt&amp;gt; respectively - a shared library can only be build with MinGW or Cygwin&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set CDDIR=path-to\cd1.3\build\local&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%CDDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%CDDIR%\lib&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the cd library and headers.&lt;br /&gt;
&lt;br /&gt;
== GD Libary ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The gd library is needed by the gd driver of PLplot to produce png, jpeg or gif files. See http://www.boutell.com/gd/ for details.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download the gd library for Windows from http://www.boutell.com/gd/ . The latest version is [http://www.boutell.com/gd/http/gdwin32.zip 2.0.33] (Windows dll).&lt;br /&gt;
* Unzip the archive to a suitable place.&lt;br /&gt;
* The package provides a dll and an import library for the MinGW compiler. To obtain an import library for the MSVC compiler run the &amp;lt;tt&amp;gt;makemsvcimport.bat&amp;lt;/tt&amp;gt; batch file in a CLI with the correct environment settings for MSVC.&lt;br /&gt;
* In order to let cmake find the gd library files you need to set environment variables (best in batch file - see above), e.g.&lt;br /&gt;
 set GDLIBDIR=C:\DevZone\gdwin32&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%GDLIBDIR%&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%GDLIBDIR%&lt;br /&gt;
&lt;br /&gt;
CMake should than be able to find the gd library and headers and the gd driver (png, gif, jpeg) will be automatically compiled into the library.&lt;br /&gt;
&lt;br /&gt;
== Freetype Library ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well. http://www.freetype.org reveals more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://download.savannah.gnu.org/releases/freetype/ft221.zip Freetype library]&lt;br /&gt;
* Unzip the ft221.zip package in a suitable place&lt;br /&gt;
* Cd into the new directory&lt;br /&gt;
* Than for MinGW (call &amp;lt;tt&amp;gt;mingw32.make&amp;lt;/tt&amp;gt; twice!):&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 mingw32-make&lt;br /&gt;
 copy objs\freetype.a objs\libfreetype.a&lt;br /&gt;
* Or for Visual C++ (you need to use GNU-Make not nmake - download it from http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.tar.gz?download or http://gnuwin32.sourceforge.net/packages/make.htm):&lt;br /&gt;
 path_to_gnu_make\mingw32-make setup visualc&lt;br /&gt;
 path_to_gnu_make\mingw32-make&lt;br /&gt;
* For Visual C++ 2005 you need to change line 69 of &amp;lt;tt&amp;gt;freetype-2.2.1\builds\compiler\visualc.mk&amp;lt;/tt&amp;gt; to&lt;br /&gt;
    CFLAGS ?= /nologo /c /Ox /W3 /WX /D_CRT_SECURE_NO_DEPRECATE&lt;br /&gt;
* set environment variables&lt;br /&gt;
 set FREETYPEDIR=C:\freetype-2.2.1&lt;br /&gt;
 set CMAKE_INCLUDE_PATH=%FREETYPEDIR%\include&lt;br /&gt;
 set CMAKE_LIBRARY_PATH=%FREETYPEDIR%\objs&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the freetype library and headers.&lt;br /&gt;
&lt;br /&gt;
== wxWidgets Library ==&lt;br /&gt;
&lt;br /&gt;
See [[wxWidgets]] for other instructions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
wxWidgets is a cross platform GUI toolkit which also provides other common classes as wxString, wxMap etc. and is known to work well on Windows, Linux and MacOSX. The wxWidgets toolkit is used for the wxWidgets driver. Version 2.6.x and 2.8.x of wxWidgets can be used for the wxWidgets driver. Surf to http://www.wxwidgets.org for more information.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.3.zip wxWidgets 2.6.3 library as zip] (exe installer is also available, wxWidgets 2.8.0 has problems with MinGW in the moment)&lt;br /&gt;
* Unzip the wxMSW-2.6.3.zip package in a suitable place&lt;br /&gt;
* The following instructions will build a shared, unicode, release version of wxWidgets. If you use plplot within your wxWidgets application you have already a wxWidgets library ready for use - see &amp;lt;tt&amp;gt;cmake-2.4.5\share\modules\FindwxWidgets.cmake&amp;lt;/tt&amp;gt; for the options for your special wxWidgets library.&lt;br /&gt;
* Cd into &amp;lt;tt&amp;gt;wxWidgets-2.6.3\build\msw&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Than for MinGW:&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (MinGW)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\gcc_dll;%PATH%&lt;br /&gt;
* Or for Visual C++:&lt;br /&gt;
 nmake -f makefile.vc SHARED=0 UNICODE=1 BUILD=release&lt;br /&gt;
* set environment variables (Visual C++)&lt;br /&gt;
 set WXWIN=C:\wxWidgets-2.6.3&lt;br /&gt;
 set PATH=%WXWIN%\lib\vc_dll;%PATH%&lt;br /&gt;
&lt;br /&gt;
CMake is now able to find the wxWidgets library and headers, if you additionally set the following cmake options for MinGW:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/gcc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;br /&gt;
and for Visual C++:&lt;br /&gt;
  -DwxWidgets_LIB_DIR=%WXWIN%/lib/vc_dll -DwxWidgets_CONFIGURATION=mswu -DENABLE_MIX_CXX=ON&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2278</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2278"/>
				<updated>2010-10-02T23:01:26Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11233 || 2.6.4 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11233 || 2.6.4 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11233 || 2.6.4 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcef A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11233 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11233 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11233 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Hazen Babcock || 11019 || 2.6.4 || Ubuntu Intrepid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || a B C&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Andrew Ross || 11024 || 2.8.0 || Ubuntu Lucid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || c d &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from the default list for this platform that are missing from this test.  &lt;br /&gt;
&lt;br /&gt;
d. All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
e. Java, Python, Octave, Perl/PDL, LUA, and OCaml bindings/examples require shared PLplot libraries in order to work so were not available for testing for this static PLplot libraries case.&lt;br /&gt;
&lt;br /&gt;
f. The psttfc and psttf devices were tested using a pre-release version (revision 160) of libLASi 1.1.1.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;br /&gt;
&lt;br /&gt;
B. test_noninteractive hangs at unpredictable points in the Qt device driver tests.&lt;br /&gt;
&lt;br /&gt;
C. We also see this bug in Qt 4.6.2 - http://bugreports.qt.nokia.com/browse/QTBUG-8537&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2277</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2277"/>
				<updated>2010-08-20T19:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11147 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11147 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11147 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcef A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Hazen Babcock || 11019 || 2.6.4 || Ubuntu Intrepid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || a B C&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Andrew Ross || 11024 || 2.8.0 || Ubuntu Lucid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || c d &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from the default list for this platform that are missing from this test.  &lt;br /&gt;
&lt;br /&gt;
d. All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
e. Java, Python, Octave, Perl/PDL, LUA, and OCaml bindings/examples require shared PLplot libraries in order to work so were not available for testing for this static PLplot libraries case.&lt;br /&gt;
&lt;br /&gt;
f. The psttfc and psttf devices were tested using a pre-release version (revision 160) of libLASi 1.1.1.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;br /&gt;
&lt;br /&gt;
B. test_noninteractive hangs at unpredictable points in the Qt device driver tests.&lt;br /&gt;
&lt;br /&gt;
C. We also see this bug in Qt 4.6.2 - http://bugreports.qt.nokia.com/browse/QTBUG-8537&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2276</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2276"/>
				<updated>2010-08-20T19:55:18Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11147 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11147 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11147 || 2.8.2 || Debian Squeeze&lt;br /&gt;
|-&lt;br /&gt;
|1.28.1/1.8.10 || 4.6.3 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Hazen Babcock || 11019 || 2.6.4 || Ubuntu Intrepid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || a B C&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Andrew Ross || 11024 || 2.8.0 || Ubuntu Lucid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || c d &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from the default list for this platform that are missing from this test.  &lt;br /&gt;
&lt;br /&gt;
d. All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
e. Java, Python, Octave, Perl/PDL, LUA, and OCaml bindings/examples require shared PLplot libraries in order to work so were not available for testing for this static PLplot libraries case.&lt;br /&gt;
&lt;br /&gt;
f. The psttfc and psttf devices were tested using a pre-release version (revision 160) of libLASi 1.1.1.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;br /&gt;
&lt;br /&gt;
B. test_noninteractive hangs at unpredictable points in the Qt device driver tests.&lt;br /&gt;
&lt;br /&gt;
C. We also see this bug in Qt 4.6.2 - http://bugreports.qt.nokia.com/browse/QTBUG-8537&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2271</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2271"/>
				<updated>2010-06-01T15:52:03Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 11049 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcdf A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Hazen Babcock || 11019 || 2.6.4 || Ubuntu Intrepid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || a B C&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Andrew Ross || 11024 || 2.8.0 || Ubuntu Lucid&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.2 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|no || no || no || c d &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from the default list for this platform that are missing from this test.  &lt;br /&gt;
&lt;br /&gt;
d. All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
e. Java, Python, Octave, Perl/PDL, LUA, and OCaml bindings/examples require shared PLplot libraries in order to work so were not available for testing for this static PLplot libraries case.&lt;br /&gt;
&lt;br /&gt;
f. The psttfc and psttf devices were tested using a pre-release version (revision 160) of libLASi 1.1.1.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;br /&gt;
&lt;br /&gt;
B. test_noninteractive hangs at unpredictable points in the Qt device driver tests.&lt;br /&gt;
&lt;br /&gt;
C. We also see this bug in Qt 4.6.2 - http://bugreports.qt.nokia.com/browse/QTBUG-8537&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2254</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2254"/>
				<updated>2010-04-30T21:13:22Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Added test reports for static libraries Linux (Debian Lenny) case&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || no || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abce A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from the default list for this platform that are missing from this test.  &lt;br /&gt;
&lt;br /&gt;
d. All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
e. Java, Python, Octave, Perl/PDL, LUA, and OCaml bindings/examples require shared PLplot libraries in order to work so were not available for testing for this static PLplot libraries case.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2253</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2253"/>
				<updated>2010-04-30T18:37:30Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abcd A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from the default list that are missing from this test.  &lt;br /&gt;
&lt;br /&gt;
d. All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2252</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2252"/>
				<updated>2010-04-30T06:52:01Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Add two more reports for the case of no dynamic drivers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from default list that are missing from this test.  All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2251</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2251"/>
				<updated>2010-04-30T05:49:08Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: 2.6.4 report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.6.4 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from default list that are missing from this test.  All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2250</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2250"/>
				<updated>2010-04-30T02:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10954 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from default list that are missing from this test.  All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2249</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2249"/>
				<updated>2010-04-30T01:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10953 || 2.8.1 || Debian Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from default list that are missing from this test.  All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2248</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2248"/>
				<updated>2010-04-30T01:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! test_ noninteractive? !! test_ interactive? !! ctest?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10953 || 2.8.1 || Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || no&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from default list that are missing from this test.  All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2247</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2247"/>
				<updated>2010-04-30T01:09:50Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Add notes for first report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! ctest? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10953 || 2.8.1 || Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || no || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing notes (lower case notes concern configuration and build options while upper case notes concern errors):&lt;br /&gt;
&lt;br /&gt;
a. Testing done on 64-bit (AMD64) hardware.&lt;br /&gt;
&lt;br /&gt;
b. Used parallel make option (-j4) for all builds, installs, and test targets.&lt;br /&gt;
&lt;br /&gt;
c. All suitable dependent libraries have been installed on the system so there are no device drivers from default list that are missing from this test.  All compilers and bindings-related development packages have been installed on the system so there are no bindings that are missing from this test.&lt;br /&gt;
&lt;br /&gt;
A. No obvious configure, build, or install errors.  No run-time errors in tests other than those noted in additional &amp;quot;upper-case&amp;quot; notes (if any).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2246</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2246"/>
				<updated>2010-04-30T00:30:12Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Perfect table formatting.  This completes first report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! Pango/Cairo version !! Qt version !! Shared libraries? !! Dynamic drivers?&lt;br /&gt;
|-&lt;br /&gt;
! Build? !! ctest? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! Traditional Installed examples? !! test_ noninteractive? !! test_ interactive?&lt;br /&gt;
|-&lt;br /&gt;
! CMake-based Installed examples? !! test_ noninteractive? !! test_ interactive? !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; valign=&amp;quot;center&amp;quot;|Alan W. Irwin || 10953 || 2.8.1 || Lenny&lt;br /&gt;
|-&lt;br /&gt;
|system || 4.6.1 || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|yes || no || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
|no || no || no &lt;br /&gt;
|-&lt;br /&gt;
|yes || yes || yes || abc AB&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2245</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2245"/>
				<updated>2010-04-29T23:35:11Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Testing Reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+Table of test reports for PLplot&lt;br /&gt;
|-&lt;br /&gt;
!tester !! PLplot revision !! CMake version !! Platform &lt;br /&gt;
|-&lt;br /&gt;
! !! Pango/Cairo version !! Qt version !! Shared libraries !! Dynamic drivers !! Platform notes&lt;br /&gt;
|-&lt;br /&gt;
! !! Build? !! ctest? !! test_noninteractive? !! test_interactive&lt;br /&gt;
|-&lt;br /&gt;
! !! Installed examples? !! Traditional !! test_noninteractive? !! test_interactive !! Test notes&lt;br /&gt;
|-&lt;br /&gt;
|Alan W. Irwin || 10953 || 2.8.1 || Lenny&lt;br /&gt;
|-&lt;br /&gt;
| ||system || 4.6.1 || yes || yes|| abc&lt;br /&gt;
|-&lt;br /&gt;
| ||yes || no || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
| ||yes || no || yes || yes || AB&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2244</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2244"/>
				<updated>2010-04-29T22:40:57Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: Add Testing Reports Section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;br /&gt;
&lt;br /&gt;
===Testing Reports===&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2237</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2237"/>
				<updated>2010-03-15T05:54:45Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Invocation of tests in the build tree using the new testing framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2236</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2236"/>
				<updated>2010-03-15T05:53:49Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Invocation of legacy tests in the build tree */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
 ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2235</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2235"/>
				<updated>2010-03-15T05:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Legacy tests of the installed examples (Unix-only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests (Unix-only) of the PLplot installation ====&lt;br /&gt;
&lt;br /&gt;
You can test the PLplot installation on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;br /&gt;
&lt;br /&gt;
==== Cross-platform tests of the PLplot installation using the new test framework ====&lt;br /&gt;
&lt;br /&gt;
Here is an example under Unix of how to test the PLplot installation using the new testing framework.  &lt;br /&gt;
(Those using Windows platforms should be able to infer the equivalent of these commands.)&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/build_dir&lt;br /&gt;
 cd /tmp/build_dir&lt;br /&gt;
 cmake $prefix/share/plplot$plplot_version/examples &lt;br /&gt;
 make -j4 test_diff_psc &amp;gt;&amp;amp; make_test_diff_psc.out&lt;br /&gt;
 make -j4 test_noninteractive &amp;gt;&amp;amp; make_test_noninteractive.out&lt;br /&gt;
 make -j4 test_interactive &amp;gt;&amp;amp; make_test_interactive.out&lt;br /&gt;
&lt;br /&gt;
Note these targets are essentially identical to the targets described above for the new test framework for the build tree because the same bash (or win-bash) scripts and essentially the same CMake logic is used to set up these targets.  Similarly, all other fine-grained targets (which you can discover using the&lt;br /&gt;
&lt;br /&gt;
 make help |grep test&lt;br /&gt;
&lt;br /&gt;
command) for the new test framework are available in this context as well.  N.B. the test_noninteractive and test_interactive targets available here are more comprehensive than the same-named targets in the legacy installation test case and are implemented in a quite different (cross-platform) way with much&lt;br /&gt;
better dependencies.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2234</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2234"/>
				<updated>2010-03-15T05:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Invocation of tests in the build tree using the new testing framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are finer grained.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three comprehensive test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests of the installed examples (Unix-only) ====&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2233</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2233"/>
				<updated>2010-03-15T05:29:21Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Invocation of tests in the build tree using new testing framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using the new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are divided in a much finer-grained manner.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three important test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests of the installed examples (Unix-only) ====&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2232</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2232"/>
				<updated>2010-03-15T05:28:35Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Legacy tests of the installed examples (Unix-only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are divided in a much finer-grained manner.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three important test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests of the installed examples (Unix-only) ====&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above legacy &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  The results are similar to those of the test_interactive target implemented with our new test framework, but the implementation is very different (depending on a GNU-bash script rather than standard CMake cross-platform commands).&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2231</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2231"/>
				<updated>2010-03-15T05:25:05Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Install tree tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are divided in a much finer-grained manner.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three important test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Tests of the PLplot installation ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the installation using a legacy test system (implemented with Make, pkg-config, and GNU-bash) or our new test framework (implemented with CMake and bash [or win-bash]).&lt;br /&gt;
&lt;br /&gt;
==== Legacy tests of the installed examples (Unix-only) ====&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot. Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.  However, since make is required for this installed-examples implementation, it cannot be run on Windows.&lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  There is currently no counterpart for this test in the build tree.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2230</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2230"/>
				<updated>2010-03-15T05:13:14Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Invocation of tests in build tree using new testing framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in the build tree using new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are divided in a much finer-grained manner.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three important test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this target excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Install tree tests ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot so the same remarks hold about the comprehensive nature of the test, the size (2GB) of the files produced, the comparison of results for various language interfaces with the C result for -dev psc, locale issues, and testing non-psc results using the viewer appropriate for the format.  Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.&lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  There is currently no counterpart for this test in the build tree.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2229</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2229"/>
				<updated>2010-03-15T05:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Invocation of legacy tests in build tree */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in the build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in build tree using new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are divided in a much finer-grained manner.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three important test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Install tree tests ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot so the same remarks hold about the comprehensive nature of the test, the size (2GB) of the files produced, the comparison of results for various language interfaces with the C result for -dev psc, locale issues, and testing non-psc results using the viewer appropriate for the format.  Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.&lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  There is currently no counterpart for this test in the build tree.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2228</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2228"/>
				<updated>2010-03-15T05:09:26Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their installed-examples-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Testing Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The legacy test for the build tree requires ctest (available as part of CMake) and bash on Unix systems or [http://win-bash.sourceforge.net/ win-bash] on Windows.  The legacy test for the installed examples tree works only on Unix (Linux, Mac OS X, and presumably legacy Unix) and requires GNU-bash, make, and pkg-config.&lt;br /&gt;
&lt;br /&gt;
In contrast to our legacy testing system, the new testing framework is essentially identical for both the build tree and installed examples tree.  It just requires CMake (using any generator that is suitable for the Unix or Windows platform that is being used for the test), and bash on Unix or win-bash on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option.  Such tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below both for the legacy and new testing methods.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  &lt;br /&gt;
&lt;br /&gt;
Results for -dev psc are a special case.  To illustrate this, here are typical -dev psc results for example 1.&lt;br /&gt;
&lt;br /&gt;
x01a.psc, x01c.psc, x01cxx.psc, x01d.psc, x01f.psc, x01f95.psc, x01j.psc, x01lua.psc, x01o.psc, x01ocaml.psc, x01p.psc, x01pdl.psc, and x01t.psc.&lt;br /&gt;
&lt;br /&gt;
These correspond to Ada, C, C++, D, Fortran 77, Fortran 95, Java, Lua, Octave, OCaml, Python, Perl/PDL, and Tcl -dev psc (colour PostScript) results for our standard example 1. The test referred to above compares everything in this list, but x01c.psc against that file so rendering errors only need to be looked for in x01c.psc (with your favorite Postscript viewing application), and any of these files which the report shows are different from x01c.psc. And similarly for the -dev psc results for the rest of our 31 standard examples.&lt;br /&gt;
&lt;br /&gt;
Here are typical plot file results from our standard example 1 for devices other than -dev psc.&lt;br /&gt;
&lt;br /&gt;
x01c.pdfcairo, x01c.ps, x01c.psttf, x01c.psttfc, x01c01.bmpqt, x01c01.epsqt, x01c01.jpgqt, x01c01.pdfqt, x01c01.pngcairo, x01c01.pngqt, x01c01.ppmqt, x01c01.svg, x01c01.svgcairo, x01c01.svgqt, x01c01.tiffqt, and x01c01.xfig.&lt;br /&gt;
&lt;br /&gt;
Since different devices are involved in all cases, these should be looked at individually for rendering errors (and similarly for the remaining 31 standard examples).  Note such visual inspection is a huge job so we certainly don&amp;#039;t expect it of our testers very often, but once every year or so and especially for newer examples that haven&amp;#039;t been checked before is worth doing.  On Unix platforms a general all-purpose viewer for all these file formats is the ImageMagick display application.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy tests in build tree ====&lt;br /&gt;
&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
==== Invocation of tests in build tree using new testing framework ====&lt;br /&gt;
&lt;br /&gt;
One advantage of the new testing framework is that it has full dependencies implemented (unlike ctest which requires &amp;quot;make all&amp;quot; to be run first).  &lt;br /&gt;
&lt;br /&gt;
A second advantage of the new testing framework is that for Generators with parallel execution ability, you can save a lot of time on hardware with more than one cpu by using the parallel execution options (e.g., the -j option for GNU make).  &lt;br /&gt;
&lt;br /&gt;
A final advantage of the new testing framework is the tests are divided in a much finer-grained manner.  To see all the tests that are possible run&lt;br /&gt;
&lt;br /&gt;
make help |grep test&lt;br /&gt;
&lt;br /&gt;
(On platforms with CMake generators other than make, you will have to do something equivalent to this search to find all test targets.)  &lt;br /&gt;
&lt;br /&gt;
Three important test targets are test_diff_psc, test_noninteractive and test_interactive.&lt;br /&gt;
&lt;br /&gt;
test_diff_psc generates all -dev psc results and compares them with the same report that is obtained from ctest.  Note this excludes anything but -dev psc results.&lt;br /&gt;
&lt;br /&gt;
test_noninteractive runs test_diff_psc as well as every other PLplot example that produces a file.  (Note that test_noninteractive is somewhat more comprehensive than legacy ctest and considerably more comprehensive than the test_diff_psc target.)&lt;br /&gt;
&lt;br /&gt;
test_interactive runs all interactive devices for the standard C examples as well as all special interactive examples.  Very little user-intervention is required to run these tests because, where possible, the PLplot -np (no-pause) command-line option is used for these tests.&lt;br /&gt;
&lt;br /&gt;
=== Install tree tests ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot so the same remarks hold about the comprehensive nature of the test, the size (2GB) of the files produced, the comparison of results for various language interfaces with the C result for -dev psc, locale issues, and testing non-psc results using the viewer appropriate for the format.  Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.&lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  There is currently no counterpart for this test in the build tree.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2227</id>
		<title>Testing PLplot</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Testing_PLplot&amp;diff=2227"/>
				<updated>2010-03-15T02:48:50Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Build tree tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We encourage those who build PLplot to test both their build-tree version and their install-tree version and report any problems back to either the plplot-general or plplot-devel mailing lists.&lt;br /&gt;
&lt;br /&gt;
=== Build-tree tests ===&lt;br /&gt;
&lt;br /&gt;
Build-tree tests can only be performed if cmake is invoked with the -DBUILD_TEST=ON option (which roughly doubles the build time because all the examples must be built).&lt;br /&gt;
&lt;br /&gt;
Build-tree tests are done from the top-level directory of the build tree (the directory where you invoke cmake command that configures the build of PLplot).  The methods for invoking these tests are given below.  These tests include executing all our 31 standard examples for all language interfaces and non-interactive device drivers that we currently support.  This is a comprehensive test of the PLplot build.  For example, our standard examples exercise virtually all of the PLplot API.  Furthermore, this series of tests generates more than 2GB of plot files in various formats.  The tests also include&lt;br /&gt;
a comparison of PostScript (-dev psc) results and stdout from each language interface to PLplot with the corresponding results for C.  In general, these results are identical which is a stringent test of our language bindings. (Note it is the user&amp;#039;s responsibility to insure the locales are consistent for all languages since inconsistent locales can produce inconsistent stdout results which have nothing to do with PLplot bindings or examples issues.)&lt;br /&gt;
&lt;br /&gt;
You should search test results for obvious errors such as segfaults.  In addition, you can test for rendering errors by viewing the file results using an appropriate viewer.  Here are typical file results for example 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The results not generated by -dev psc should be tested for rendering errors by viewing them with a viewer appropriate for each particular file type that is generated.  &lt;br /&gt;
&lt;br /&gt;
==== Invocation of legacy build-tree tests ====&lt;br /&gt;
After running &amp;quot;make all&amp;quot; from the top-level of the build tree, then run&lt;br /&gt;
&lt;br /&gt;
ctest --verbose &amp;gt;&amp;amp; ctest.out&lt;br /&gt;
&lt;br /&gt;
This creates test plot file results in the plplot-test subdirectory of the build tree, and ctest.out should contain a table of comparisons of Postscript results from each of our standard examples and each of our language bindings against the corresponding C versions.&lt;br /&gt;
&lt;br /&gt;
=== Tests on Windows ===&lt;br /&gt;
&lt;br /&gt;
Since the tests are done using bash scripts, there is some work needed to make the tests run in Windows. First download [http://win-bash.sourceforge.net/ win-bash]&lt;br /&gt;
&lt;br /&gt;
=== Install tree tests ===&lt;br /&gt;
&lt;br /&gt;
After PLplot has been configured (with &amp;quot;cmake&amp;quot;), built (with &amp;quot;make&amp;quot;), and installed (with &amp;quot;make install&amp;quot;), you can test the PLplot install on Unix systems by doing the following commands:&lt;br /&gt;
&lt;br /&gt;
 cp -a $prefix/share/plplot$plplot_version/examples /tmp&lt;br /&gt;
 cd /tmp/examples&lt;br /&gt;
 make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
 make test_interactive&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;$prefix&amp;quot; is the installation prefix chosen at the configuration stage, and $plplot_version is the PLplot version (currently 5.9.4).  The effect of the above &amp;quot;cp&amp;quot; and &amp;quot;cd&amp;quot; commands is to copy the examples subtree of the install tree to /tmp and build and test the examples in the copied subtree to keep a clean install tree.  However, an alternative is to replace those two commands with&lt;br /&gt;
&lt;br /&gt;
 cd $prefix/share/plplot$plplot_version/examples&lt;br /&gt;
&lt;br /&gt;
and build and test the install-tree examples right in the examples subtree of the install tree with the above &amp;quot;make&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you build and test the examples in a copy of the examples subtree of the install tree or directly in that subtree, check all the *.out files for any errors.  &lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_noninteractive&amp;quot; command does the same tests for the installed PLplot version as ctest does for the build-tree version of PLplot so the same remarks hold about the comprehensive nature of the test, the size (2GB) of the files produced, the comparison of results for various language interfaces with the C result for -dev psc, locale issues, and testing non-psc results using the viewer appropriate for the format.  Although the tests are the same, the Makefile implementation is different from the ctest implementation in the build tree so that in particular you can do these install tree tests in parallel using the (GNU-)make -j option to greatly speed up these tests on a multi-processor computer.&lt;br /&gt;
&lt;br /&gt;
N.B. the above &amp;quot;make test_interactive&amp;quot; command executes our interactive examples.  There is currently no counterpart for this test in the build tree.&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	<entry>
		<id>http://www.miscdebris.net/plplot_wiki/index.php?title=Linux&amp;diff=2217</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="http://www.miscdebris.net/plplot_wiki/index.php?title=Linux&amp;diff=2217"/>
				<updated>2009-12-23T16:55:00Z</updated>
		
		<summary type="html">&lt;p&gt;Airwin: /* Compiling the PLplot examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compiling plplot on GNU-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
[[List of Debian/Ubuntu packages]] provides a list of packages needed to configure and compile PLplot successfully.  The Debian/Ubuntu package names should be a rough guide for the names of required packages for other Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=== Quick recipe for building and installing PLplot from a tarball ===&lt;br /&gt;
&lt;br /&gt;
This quick method should be relevant for most Linux users.  Assume the path /home/yourname/plplot exists and is empty, and assume you have put the latest released PLplot version string into the &amp;quot;PL_VERSION&amp;quot; environment variable (as of this writing do that using &amp;quot;export PL_VERSION=5.9.5&amp;quot;).   Then do the following steps:&lt;br /&gt;
&lt;br /&gt;
# cd /home/yourname/plplot&lt;br /&gt;
# rm -rf plplot-$PL_VERSION build_dir install_directory&lt;br /&gt;
# tar -zxf plplot-$PL_VERSION.tar.gz &lt;br /&gt;
# mkdir build_directory&lt;br /&gt;
# cd build_directory&lt;br /&gt;
# cmake  \ -DCMAKE_INSTALL_PREFIX:PATH=/home/yourname/plplot/install_directory \ ../plplot-$PL_VERSION &amp;gt;&amp;amp; cmake.out&lt;br /&gt;
# less cmake.out&lt;br /&gt;
# make VERBOSE=1 &amp;gt;&amp;amp; make.out&lt;br /&gt;
# less make.out&lt;br /&gt;
# make VERBOSE=1 install make_install.out&lt;br /&gt;
# less make_install.out &lt;br /&gt;
&lt;br /&gt;
Step (1) changes your directory to the correct starting directory; step(2) removes the stale source, build, and install trees (note be careful with rm -rf since that is a powerful and potentially dangerous command); step (3) unpacks the tarball into the plplot-$PL_VERSION subdirectory of your starting directory; step (4) creates a new subdirectory where the configuration and build steps will be done; step (5) changes to that subdirectory; step (6) configures PLplot using the cmake application and captures the resulting output in the cmake.out file. (n.b. the &amp;quot;../plplot-$PL_VERSION&amp;quot; refers to the top of the source directory tree); step (7) lets you look at that captured output for any error or warning messages; step (8) builds PLplot and captures the resulting output in the  make.out file; step (9) lets you look at that captured output for any error or warning messages; step (10) installs PLplot in the /home/yourname/plplot/install_directory specified in step (6) as the install prefix and captures the resulting output in the make_install.out file; and step (11) lets you look at that captured output for any error or warning messages.&lt;br /&gt;
&lt;br /&gt;
To summarize, the various directories are:&lt;br /&gt;
&lt;br /&gt;
# the source-tree with top-level directory /home/yourname/plplot/plplot-PL_VERSION&lt;br /&gt;
# the build-tree directory, /home/yourname/plplot/build_directory&lt;br /&gt;
# the install-tree directory, /home/yourname/plplot/install_directory&lt;br /&gt;
&lt;br /&gt;
For more details consult [[Building_PLplot#Generic Unix instructions for our build system|the generic Unix instructions for our build system]].&lt;br /&gt;
&lt;br /&gt;
=== Other options ===&lt;br /&gt;
&lt;br /&gt;
The Python and Java interfaces to PLplot are generated with SWIG so if you want those interfaces you must install SWIG.  If SWIG is installed and cmake cannot find it, then you must help cmake out by specifying the directory where swig.swg (an important SWIG file) is located using the CMAKE_INCLUDE_PATH environment variable.  For example, one of our users reported success with finding SWIG and generating our Python and Java interfaces for Arch Linux by specifying&lt;br /&gt;
&lt;br /&gt;
CMAKE_INCLUDE_PATH=/usr/share/swig/1.3.27&lt;br /&gt;
&lt;br /&gt;
Normally,  though, such extraordinary measures are not required on Linux.&lt;br /&gt;
&lt;br /&gt;
== Compiling the PLplot examples ==&lt;br /&gt;
&lt;br /&gt;
Following the previous quick recipe for building and installing PLplot, here is how to compile the examples and test them:&lt;br /&gt;
&lt;br /&gt;
# cd \ /home/yourname/plplot/install_directory/share/plplot$PL_VERSION/examples&lt;br /&gt;
# make test_noninteractive &amp;gt;&amp;amp; make_test.out&lt;br /&gt;
# less make_test.out&lt;br /&gt;
&lt;br /&gt;
The test takes a significant amount of time and a large number of plot files (pdf, png, xfig,...) that consume a couple of gigabytes of disk space are generated.  For more details consult [[Testing_PLplot|Testing PLplot]].&lt;/div&gt;</summary>
		<author><name>Airwin</name></author>	</entry>

	</feed>