Skip to main content

Per-Module C++ Tests & CTest

The tests/<Module>/ directories​

Alongside the three harness submodules sit classic C++ test executables, one directory per module:

tests/MovieMakerCore/test_core.cpp
tests/WLMFDS/ tests/WLMFReadWrite/ tests/WLXCodecHost/
tests/WLXCodecHostPS/tests/WLXDSPA/ tests/WLXFaceRecognition/
tests/WLXGrinderScheduler/tests/WLXImageTranscode/tests/WLXMP4Parser/
tests/WLXMediaPublishSubscribe/ tests/WLXMovieLibrary/ tests/WLXPhotoAcq/
tests/WLXPhotoBase/ tests/WLXPhotoCinematic/tests/WLXPhotoClassic/
tests/WLXPhotoGalleryRepair/tests/WLXPhotoLibraryDatabase/tests/WLXPhotoLibraryMain/
tests/WLXPhotoSqm/ tests/WLXPhotoViewer/ tests/WLXPhotoVoyager/
tests/WLXPipeline/ tests/WLXPipetran/ tests/WLXQuickTime/
tests/WLXSendMail/ tests/WLXSlideshow/ tests/WLXTranscode/
tests/WLXVAFilt/ tests/WLXVideoAcquireWizard/tests/WLXVideoCameraAutoPlayManager/
tests/WLXVideoTrim/ tests/AlbumDownloadProtocolHandler/tests/DmxBici/
tests/MovieMakerPreviewClient/ tests/NPWLPG/ tests/PhotoViewerShim/
tests/SharedMFDlls/ tests/OtherDlls/ tests/wlsoxe/ tests/wlxclip/

These are legacy-style console tests (test_core.cpp pattern): link against the module, call the surface, print PASS/FAIL. They predate the contract suite and remain useful for debugging a single module with a debugger attached.

Some directories cover binaries whose source is not (yet) reconstructed (e.g. WLXDSPA, WLXPhotoAcq, NPWLPG) — they hold analysis-facing tests and documentation for those surfaces.

CTest​

The root CMakeLists.txt wires two sanity tests via include(CTest):

add_test(NAME sanity_MovieMaker_exe_exists ...)
add_test(NAME sanity_MovieMakerCore_dll_exists ...)

(Implemented as compare_files self-comparisons of the target files — they assert the outputs exist at the expected paths.)

Run:

ctest --test-dir build -C Debug --output-on-failure

Expected: 2/2 pass. CTest is a smoke gate, not the behavioral oracle — the contract suite holds that role.