[OSGeo-Discuss] Testing on multiple versions and upgrading

Pierre Abbat phma at bezitopo.org
Mon Jun 15 23:42:54 PDT 2020


On Monday, June 15, 2020 11:32:07 AM EDT James Klassen wrote:
> If you want to be thorough, testing on different versions of the "same"
> Linux distribution makes sense.  Generally, the compiler and all the
> surrounding libraries are upgraded between distribution versions and could
> have different behaviors or bugs.

Both AppVeyor and Travis have a few LTS releases of Ubuntu, but no Red Hat. 
Several months ago, Pat (one of my users) asked me to get PerfectTIN running 
on his CentOS 7 box. I found out that the CMake was too old to handle the 
version of C++ needed to implement readers-writer locks, which are essential 
in getting PerfectTIN to run at full speed on all threads. RHEL 7 (and 
therefore CentOS 7) was released five years before RHEL 8. Being used to 
Ubuntu's two-year LTS cycle, I advised him to get Fedora. I set up PerfectTIN 
on his Fedora NUC, and he can now run "git pull" on it and upgrade to the 
latest.

I think it's also important to test on the different BSDs. I'm planning to get 
some NUCs running BSDs. Differences I've run into are:
* Linux has M_PIl; DragonFly BSD doesn't.
* Including a certain system include file worked on Linux but not BSD. I had to 
include another file.

> You might want to look into a continuous integration (CI) tool that can
> automatically run the build and tests on multiple platforms whenever you
> push a commit.  Looking at how GDAL and/or PDAL handle this would be a good
> place to get started.

Are there CI tools that can handle Linux, the BSDs, and Windows? Do any CI 
providers have big-endian hardware, or do I have to buy my own box? I was 
thinking of getting some NUCs and running "git pull" and "ninja test" on each 
one.

The geoidboundary test of Bezitopo takes 45 seconds (on mooncat, I think). Are 
such long tests a problem with CI?

PerfectTIN has some automatic tests, but I still test it by converting point 
clouds, some of which take hours. Can you suggest some more automatic tests?

> Related to using CI, setting up development environments in different
> containers (like with Docker) can let you build and test different Linux
> versions on the same machine (and can help with setting up CI tools).  This
> makes keeping machines around with different versions of the OS around
> mostly unnecessary, and decouples the ability to test on a
> distribution/version from whatever distribution/version you use day-to-day.

Can Docker on Linux run BSD in a container? Can a Docker container on one BSD 
run a different BSD?

Pierre
-- 
Don't buy a French car in Holland. It may be a citroen.





More information about the Discuss mailing list