Skip to content

ci: run c++ tests for vtk.wasm in cft

This merge request enables C++ regression image tests in chrome-for-testing binaries on linux-x64 and windows-x64. Currently, this MR only enables VTK::RenderingCoreCxx-* and VTK::RenderingOpenGL2Cxx-* with few exceptions in windows (See #19343). In Linux, all rendering tests are skipped because chrome is unable to use hardware accel. from ci container.

The wasm testing suite overcomes browser limitations by preloading and dumping files via synchronous HTTP requests, avoiding large .wasm outputs. It utilizes a new class, vtkEmscriptenTestUtilities to load data files into the wasm application's memory. The unit tests run within web workers due to browser restrictions on main thread blocking XHR, necessitating the rendering canvas to be transferred offscreen. Enables better web worker and wasm64 support by refactoring render window and interactor to use emscripten's html5.h, albeit async/await should ultimately be used to fetch data when browser support sync waiting on main thread from wasm.

This works in

  • wasm32
  • wasm64
  • wasm32 + web worker

This partially works in

  • wasm64 + web worker:
Edited by Jaswant Panchumarti (Kitware)

Merge request reports