FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0072 — A Debug build with visualization leaves about 148 GB of test FMUs in its build folder
ID 0072
Class TEST
Severity 2
Status ready

Models: —

Found: 2026-10-22

Evidence

Measured 2026-10-22 on Linux, conan create of fhsim 3.4.0 with tests, build_type=Debug, visualization on: the build folder was 148 GB, of which build/Debug/tests held 140 GB.

  • tests/FMDirectionalDerivative: 90 GB. About 30 test FMUs (tests/cmake/fmu_export.cmake), each 1.4 GB, kept both as the .fmu archive and extracted beside it. Each bundles the Debug Ogre libraries and the Debug engine, and Debug exports pass --no-compression (FMU_EXPORT_NO_COMPRESSION, tests/CMakeLists.txt).
  • tests/bin: 47 GB, more FMUs exported there (the AutoCopy tests) and their extractions.

Three such folders filled a 1 TB disk (the conan cache keeps build folders after a successful conan create).

Partly addressed (2026-10-22, feature/fmu-compliance): the exporter bundles no symlinks, no stale library versions, and in an FMU that bundles the renderer only fhVisDll (it carried the engine twice); a Release test FMU went from 115 MB to 50 MB unpacked. A conan create removes the test FMUs at the end of package() (its CPack target used to export them again after an earlier cleanup). Measured on Linux, Debug with visualization: peak +81 GB (was +148 GB), 11 GB left in the build folder (was 148 GB). The owner accepts that for now. Open: more space-efficient tests, or skipping the visualization FMU tests in Debug.

Effect

A Debug build with tests needs about 150 GB of free disk, and every Debug configuration built leaves that much behind in the conan cache. CI runners and developer machines run out of space (seen locally: "No space left on device" in the middle of a build).

Possible fix

  1. Export the test FMUs headless (--no-bundled-vis) unless a test needs the renderer: the Debug Ogre libraries are most of each FMU. Needs a headless engine in a build with visualization.
  2. Compress in Debug too: --no-compression saves time but costs the most space.
  3. Delete the archive after extracting it, or extract only the FMUs that tests load unpacked.
  4. Share one bundled runtime between test FMUs (for example hard links): all of them carry identical binaries.

Test that would prove it

The build folder size of a Debug build with visualization, measured after the tests.

Risk

Low for 2 and 3. 1 changes which engine the Debug FMU tests run.