Files
FESADev/docs/linear-static-mitc4-shell/build-test.md
T
2026-08-15 03:14:34 +09:00

194 lines
12 KiB
Markdown

# Linear Static MITC4 Shell Build/Test Report
## Metadata
- feature_id: `linear-static-mitc4-shell`
- source_commit: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- source_implementation_report: `N/A`; Harness completion evidence is recorded in
`phases/linear-static-mitc4-shell/index.json`
- source_implementation_plan:
`docs/linear-static-mitc4-shell/implementation-plan.md`
- status: `pass-for-reference-verification`
- owner_agent: `build-test-executor-agent`
- date: `2026-08-13`
## Verdict
The formal build/test gate passes. A fresh Visual Studio 18 2026/MSVC x64 Debug
configuration, clean full rebuild, three implementation-plan-focused CTest runs,
nonzero JSON discovery, full CTest regression, and the required Harness Python
self-test all completed successfully.
- clean full rebuild: exit `0`; compiler/linker warning scan `0`; error scan `0`
- focused kernel/model/assembly/recovery regex: `87/87` passed
- focused linear-static lifecycle regex: `10/10` passed
- focused MITC4 reference-test regex: `8/8` passed
- CTest discovery: `144` tests, including `32` names containing `Mitc4`
- full CTest after clean rebuild: `144/144` passed
- Harness Python self-test: `7/7` passed
- failed tests: `0`
- required S4 reference hash mismatches or Git changes: `0`
This verdict authorizes handoff to Reference Verification only. It does not approve
reference tolerance results, physics sanity, or release readiness.
## Execution Environment
- os: `Microsoft Windows 11 Home 10.0.26200 build 26200`
- branch: `feat-linear-static-mitc4-shell`
- source_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- generator: `Visual Studio 18 2026`
- MSBuild: `18.8.2+ce25c0108`
- compiler: `MSVC 19.51.36252.0`
- compiler_architecture: `x64`
- Windows SDK: `10.0.26100.0`
- language/config: `C++17 / Debug`
- CMake: `4.4.0`
- build_dir: `.harness/build`
- harness_config: absent
- project_selection: auto CMake from root `CMakeLists.txt`
- command_discovery_path: default CMake/MSVC x64 Debug with implementation-plan
generator and dependency paths
- resolved dependencies: GoogleTest `C:/git/googletest`; oneMKL `2026.1.0`;
oneTBB package path `2023.1`; HDF5 package path `2.1.1`
The generated compiler metadata at
`.harness/build/CMakeFiles/4.4.0/CMakeCXXCompiler.cmake` independently confirms
`CMAKE_CXX_COMPILER_ID=MSVC` and version `19.51.36252.0`.
## Command Log Summary
All durations below are wall-clock durations measured for the command. The initial
green chain was retained as corroborating evidence; the later clean-rebuild chain is
the canonical acceptance evidence.
| order | command | exit_code | duration | relevant stdout/stderr tail |
| ---: | --- | ---: | ---: | --- |
| 1 | `git status --short --branch; git rev-parse HEAD` | 0 | `0.8 s` | Clean `feat-linear-static-mitc4-shell`; HEAD matched `820ba30...`. |
| 2 | Required dependency `Test-Path` precheck from the implementation plan | 0 | `0.215 s` | All four GoogleTest/MKL/TBB/HDF5 paths returned `True`. |
| 3 | `cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"` | 0 | `8.684 s` | MSVC `19.51.36252.0`, MKL `2026.1.0`; `Configuring done`, `Generating done`. The failed pthread probes were normal CMake feature probes; `Found Threads: TRUE`. |
| 4 | `cmake --build .harness/build --config Debug` | 0 | `4.382 s` | Initial incremental build produced `fesa.exe` and all three test executables; warning/error scan `0/0`. |
| 5 | `ctest --test-dir .harness/build -C Debug -R "DomainModel|InpDomainMapping|Mitc4Geometry|Mitc4Shell|DofManager|EssentialConstraints|SparseAssembly|LoadAssembly|ResultRecovery|Hdf5ResultsWriter" --output-on-failure` | 0 | `5.743 s` | `100% tests passed out of 87`; failed `0`. |
| 6 | `ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|Mitc4ShellCli" --output-on-failure` | 0 | `1.442 s` | `100% tests passed out of 10`; failed `0`. |
| 7 | `ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure` | 0 | `1.377 s` | `100% tests passed out of 8`; failed `0`. |
| 8 | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | 0 | `0.208 s` | Discovered `144` tests; `32` test names contained `Mitc4`. |
| 9 | `ctest --test-dir .harness/build -C Debug --output-on-failure` | 0 | `9.789 s` | Initial full regression: `144/144` passed; failed `0`. |
| 10 | First environment/reference audit helper | 1 | `0.9 s` | Non-gating report-generation error: it hardcoded nonexistent CMake internal directory `CMakeFiles/4.3.0`; both S4 hashes had already matched before the helper stopped. No build or test failed. |
| 11 | Corrected dynamic environment/reference audit helper | 0 | `0.583 s` | Located `CMakeFiles/4.4.0/CMakeCXXCompiler.cmake`; confirmed MSVC/version, both S4 hashes, no S4 diff, and clean worktree. |
| 12 | `cmake --build .harness/build --config Debug --target clean` | 0 | `1.251 s` | Generated Visual Studio clean target completed. |
| 13 | `cmake --build .harness/build --config Debug` | 0 | `94.616 s` | Canonical clean rebuild compiled/linked the solver, CLI, and all test executables; `89` output lines, warning scan `0`, error scan `0`. |
| 14 | `cmake --build .harness/build --config Debug --target fesa_unit_tests` | 0 | `1.943 s` | `fesa_solver`, GoogleTest, and `fesa_unit_tests.exe` confirmed. |
| 15 | Focused kernel/model/assembly/recovery regex from order 5 | 0 | `4.863 s` | Canonical focused run: `87/87` passed; failed `0`. |
| 16 | `cmake --build .harness/build --config Debug --target fesa_integration_tests` | 0 | `1.712 s` | `fesa_solver`, GoogleTest, and `fesa_integration_tests.exe` confirmed. |
| 17 | Focused lifecycle regex from order 6 | 0 | `1.531 s` | Canonical focused run: `10/10` passed; failed `0`. |
| 18 | `cmake --build .harness/build --config Debug --target fesa_reference_tests` | 0 | `1.769 s` | `fesa_solver`, GoogleTest, and `fesa_reference_tests.exe` confirmed. |
| 19 | Focused reference regex from order 7 | 0 | `1.511 s` | Canonical focused run: `8/8` passed; failed `0`; S4 end-to-end tests were included. |
| 20 | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | 0 | `0.080 s` | Canonical discovery: `144` total, `32` MITC4-named; unit/integration/reference labels `121/10/13`. |
| 21 | `ctest --test-dir .harness/build -C Debug --output-on-failure` | 0 | `9.669 s` | Canonical full regression: `100% tests passed out of 144`; failed `0`; CTest real time `9.62 s`. |
| 22 | Full `reference/` Git scope and worktree audit | 0 | `0.362 s` | `reference_diff_count=0`, `reference_status_count=0`; branch and HEAD unchanged. |
| 23 | `git merge-base dev HEAD` plus changed-file scope audit | 0 | `0.321 s` | Merge base `a058ef7...`; detected `scripts/execute.py`, so Harness Python self-test was required. |
| 24 | `uv run --with pytest python -m pytest -v -rs` | 0 | `4.651 s` | Python `3.11.15`, pytest `9.1.1`; `7 passed in 0.11s`; failed `0`. |
## Validation Results
| validation_stage | result | evidence |
| --- | --- | --- |
| clean baseline | pass | Branch and HEAD matched the requested baseline; worktree was clean before report creation. |
| dependency precheck | pass | All four implementation-plan dependency paths existed. |
| fresh configure | pass | VS18/x64 configure exit `0`; compiler metadata is MSVC x64. |
| clean full build | pass | Exit `0`; solver, CLI, unit, integration, and reference targets compiled/linked. |
| compiler warning policy | pass | Clean rebuild emitted zero warning lines and zero compiler/linker error lines; product CMake uses warnings-as-errors. |
| feature-specific tests | pass | Approved focused regexes passed `87/87`, `10/10`, and `8/8`. |
| CTest discovery | pass | Nonzero inventory: `144` tests, including `32` MITC4-named tests. |
| full CTest | pass | `144/144` passed after the clean rebuild. |
| Harness self-test | pass | Required because `scripts/execute.py` differs from the `dev` merge base; `7/7` passed. |
| reference immutability | pass | Required S4 SHA-256 values match; entire `reference/` tree has no Git diff or status entry. |
## CTest Inventory
| inventory | count |
| --- | ---: |
| all discovered tests | 144 |
| unit label | 121 |
| integration label | 10 |
| reference label | 13 |
| test names containing `Mitc4` | 32 |
| failed tests | 0 |
The `32` MITC4-named tests comprise `30` tests in `Mitc4*` suites plus
`DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity` and
`InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity`. The broader focused regex
also exercises shared Domain, DOF, constraints, assembly, recovery, and HDF5 seams.
CTest currently applies the target-wide legacy label
`linear-static-3d-euler-beam` to all `144` tests and has no separate MITC4 label.
The approved implementation plan explicitly permits exact suite regex filtering,
which was used here, so this labeling limitation is nonblocking.
## Warning and Failure Audit
- Clean rebuild warning lines: `0`.
- Clean rebuild compiler/linker error lines: `0`.
- Focused CTest failures: `0`.
- Full CTest failures: `0`.
- Harness Python failures: `0`.
- Configure probes for POSIX pthread symbols reported expected negative probe
results on MSVC before CMake resolved `Threads: TRUE`; this is not a configure
warning or failure.
- One report-generation helper failed because it assumed a CMake internal versioned
directory. The corrected dynamic lookup passed. This incident did not affect
configure, compile, link, test, reference artifacts, or the gate verdict.
## Reference Read-Only Audit
| exact approved path | observed SHA-256 | expected match |
| --- | --- | --- |
| `reference/shell/shell.inp` | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | yes |
| `reference/shell/shell displacements.csv` | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | yes |
The post-test audit found zero changed paths anywhere under `reference/`. No Abaqus
or other reference solver was run.
## Failure Classification
- classification: `N/A`
- primary_failure: `N/A`
- first_failed_build_or_test_command: `N/A`
- failed_target_or_test: `N/A`
- correction_handoff: `N/A`
- non_gating_incident: report-only environment metadata lookup used the wrong CMake
internal directory and was rerun successfully; no product correction is required
## Failed Test Inventory
None. All focused, full CTest, and Harness Python tests passed.
## Handoff Recommendation
| target_agent | reason | required_input |
| --- | --- | --- |
| Reference Verification Agent | Build/test status is `pass-for-reference-verification`. | This report, source HEAD `820ba30...`, `.harness/build/tests/Debug/fesa_reference_tests.exe`, and the unchanged declared S4 input/CSV pair. |
The focused reference CTest generated/used build-local comparison evidence, but the
Build/Test Executor does not interpret that evidence as the formal reference
tolerance verdict. Reference Verification must independently inspect and report it.
## No-Change Assertion
- source_files_modified: `false`
- test_files_modified: `false`
- cmake_files_modified: `false`
- requirements_formulation_io_numerical_reference_documents_modified: `false`
- phase_files_modified: `false`
- tolerance_policies_modified: `false`
- reference_artifacts_modified: `false`
- owned_report_modified: `true`
- notes: The worktree was clean at the requested source HEAD before this report was
created. Build products remained under the ignored `.harness/build/` directory.
## Open Issues
- None blocking Reference Verification.
- The target-wide legacy CTest label prevents a precise MITC4 label count; exact
implementation-plan suite regexes provide the approved focused test entry point.