# Step 4: cmake-analysis-tests ## Read First Read these files before editing: - `/AGENTS.md` - `/docs/PLAN.md` - `/docs/PROGRESS.md` - `/docs/WORKNOTE.md` - `/docs/AGENT_RULES.md` - `/docs/implementation-plans/analysis-state-analysis-base-implementation-plan.md` - `/CMakeLists.txt` - `/tests/core/analysis_state_test.cpp` - `/tests/analysis/analysis_base_test.cpp` ## Task Make the analysis tests part of the normal MSVC CMake/CTest path. Required contract: - `fesa_core` includes `src/core/AnalysisState.cpp`. - `fesa_analysis_tests` builds both analysis-state and analysis-base tests. - CTest registers `analysis.base` or equivalent with labels `analysis;core`. - Existing `domain`, `model-object`, and `io` tests remain registered and unchanged except for required shared library source additions. ## Tests To Write First No new behavior tests are required in this step if steps 1 through 3 already wrote them. If CMake registration is missing, the RED condition is that `ctest -R analysis` finds no registered analysis test or build fails because sources are missing. ## Acceptance Criteria Run: ```powershell ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R "analysis|domain|model-object|io" python scripts/validate_workspace.py ``` Update `/phases/analysis-state-analysis-base/index.json` step 4 with `completed`, `error`, or `blocked`. ## Do Not - Do not modify unrelated tests. - Do not change dependency discovery or introduce MKL, TBB, or HDF5 linkage for this phase.