CMake contract tests are a useful but obscure possibility with CMake.
They implement an informal test contract between CMake developers and
some software package developer to test the latest development version
of CMake every night in the standard way supplied by cmake with one
additional "contract" test added that that downloads, configures,
builds, and installs the software package using that latest
development version of CMake.  The results are automatically collected
by the ctest component of CMake as a dashboard that is uploaded to the 
open.cdash.org dashboard server
with results displayed at
<https://open.cdash.org/index.php?project=CMake>.

What CMake developers get out of such contracts is an integrated test
of CMake for a whole build system (as opposed to their normal "unit"
tests that just test tiny bits and pieces of CMake functionality).
What developers for a given package get out of such contracts is
nightly confirmation that a certain version of their software
identified by commit id works for the latest development version of
CMake.  The joint advantage for CMake and software package developers
is this contract process finds early in the CMake development process
bad CMake development ideas that would break the software package's
build system even if the unit tests are succeeding.

Currently, CMake implements contract tests for PLplot and two other
software packages as can be seen from

software@merlin> ls Tests/Contracts/
Home.cmake  PLplot/  Trilinos/  VTK/

And if you check the above dashboard for "merlin" (the name of my
computer) you will see that the PLplot contract test is currently
succeeding for the commit id "plplot-5.15.0" (i.e., the latest release
of PLplot) on my Debian Buster=Stable platform.  However, if you
explore the calendar options at that site you will also discover that
the "merlin" PLplot contract test failed in recent times for several
weeks due to what turned out to be a faulty cable modem for my home
computer.  But once that modem was replaced the "merlin" PLplot
contract test started succeeding again just like it has done ever since
the release of 5.15.0 and also (with commit-id "plplot-5.14.0") between
the 5.14.0 and 5.15.0 releases.

And just like in those previous release cycles I plan late in this current
plplot-5.16.0 release cycle to do a preliminary contract test for some
near-release commit id that will be changed to "plplot-5.16.0" just
after that release.

Of course, the PLplot contract test I am running only tests our build
system against the latest CMake development version for just my
platform, and expanding that test to more platforms would be
substantially strengthen this test of both PLplot and CMake.

So if you are interested in helping out with that desired expansion, I
have attached my notes (README.gz) (and also the key configuration
file, my_dashboard.cmake.gz, referred to by those notes) on how I set
up (with a lot of initial help from Brad Kind) the above "merlin" PLplot
contract test on my own computer.  Assuming you understand those notes
and the documentation referred to by those notes, then then all you
really need to participate further is network connectivity and the
ability to build and install PLplot automatically at the time you
choose in the (24-hour) day to perform this "Nightly" test (typically
with crontab on Unix computers and the equivalent of that on Windows
systems that is referred to by the contract test documentation.) And,
of course, you should make sure that the name you choose to describe
your computer in my_dashboard.cmake does not name-clash with all the
other computer names (including "merlin") that show up at the above
dashboard URL.

If you are interested in helping out with both PLplot and CMake
testing in the way I have described above for any platform
for PLplot that interests you, I would be happy to help
you with any further questions you may have.

Alan
__________________________
Alan W. Irwin

Research affiliation with the Department of Physics and Astronomy,
University of Victoria, Victoria, BC, Canada.

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

Linux-powered Science
__________________________

Attachment: README.gz
Description: Notes on configuring a PLplot contract test

Attachment: my_dashboard.cmake.gz
Description: configuration file referred to by those notes

_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to