geos icon indicating copy to clipboard operation
geos copied to clipboard

WIP: Unit tests: Improve build time

Open dbaston opened this issue 1 year ago • 2 comments

  • Remove unnecessary includes from tut.hpp
  • Add tut.hpp to precompiled headers

Improves test build time from 4:30 to 3:20 on my system.

dbaston avatar Aug 15 '24 17:08 dbaston

I disabled precompiled headers, since they were causing problems outside of Linux/gcc that I don't have time to track down. Remaining failures are:

MSVC:

 cl : command line  error D8016: '/O1' and '/RTC1' command-line options are incompatible [D:\a\geos\geos\build\tests\unit\test_geos_unit.vcxproj]

https://github.com/libgeos/geos/actions/runs/10410141366/job/28831289025?pr=1141#step:3:587

MacOS clang14:

179: geos::geom::Envelope: .....[6=F]..............
179: 
179: ---> group: geos::geom::Envelope, test: test<6>
179:      problem: assertion failed
179:      failed assertion: `FE_INVALID raised`

https://github.com/libgeos/geos/actions/runs/10410141366/job/28831291511?pr=1141#step:8:2684

dbaston avatar Aug 15 '24 20:08 dbaston

I suspect the "real solution" to improving the build time is to use a unity build, but that doesn't play well with TUT's use of typedefs:

typedef test_group<test_sgpr_data> group;
typedef group::object object;

test_group<test_sgpr_data> test_sgpr_group("geos::precision::SimpleGeometryPrecisionReducer");

template<>
template<>
void object::test<1>()

We need object to be globally unique, and doing so manually would make writing these tests even more cumbersome than it already is.

dbaston avatar Aug 15 '24 21:08 dbaston