CGAL / cgal

The public CGAL repository, see the README below
https://github.com/CGAL/cgal#readme
Other
4.87k stars 1.38k forks source link

Mesh_3 and Voronoi_diagram_2 testsuites are too verbose #6353

Closed lrineau closed 2 years ago

lrineau commented 2 years ago

Problem

In the CGAL daily testsuite:

the testsuite of Mesh_3 and Voronoi_diagram_2 are far too verbose! Mesh_3/test/Mesh_3/test_meshing_verbose.cpp and Voronoi_diagram_2/test/Voronoi_diagram_2/vda_tos2.cpp are the culprit.

For each platform the test of Mesh_3/test gives about 500KB of compressed output, and Voronoi_diagram_2/test gives about 2MB of compressed output. Times about 30 platforms: 75MB per day. So 27GB of compressed output per year, just for those two test directories, whereas the full testsuite costs 43GB per year. That means just those two test programs cost more than half the full testsuite in space.

The disk /srv/CGAL/www/testsuite of cgal.geometryfactory.com is running short of space, and we have to find a solution.

Temporary Solution

I will truncate all the testsuite results of all past internal releases so that no compressed output is more than 500KB. That will save about 100GB.

Permanent Solution

I will find a way so that Mesh_3/test/Mesh_3/test_meshing_verbose.cpp and Voronoi_diagram_2/test/Voronoi_diagram_2/vda_tos2.cpp do not output there full log to std::cerr, but to a local file.

afabri commented 2 years ago

What about doing the logging only #ifndef CGAL_TESTSUITE.

lrineau commented 2 years ago

What about doing the logging only #ifndef CGAL_TESTSUITE.

At least in the case of Mesh_3/test/Mesh_3/test_meshing_verbose.cpp, the purpose of that test is actually to test the display of the verbose code.

I have created a fix in #6354: the code redirects std::cerr or std::cout temporarily to a std::stringstream. Part of the string is afterward displayed to std::cerr (once restored), and the full output is saved to a local file.

afabri commented 2 years ago

To just test the logging you could have a run with parameters so that we see just 10 lines of log.

lrineau commented 2 years ago

To just test the logging you could have a run with parameters so that we see just 10 lines of log.

We had already reduced the size of the output mesh (280 vertices). But that created logs with megas of characters anyway. To test all the code paths in the mesh optimizers, we need sufficiently elements in the mesh, and we could not decrease the mesh size further.