71 lines
3.3 KiB
Markdown
71 lines
3.3 KiB
Markdown
# Step 25: Build and Test Verification
|
||
|
||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||
|
||
## 읽어야 할 파일
|
||
|
||
- `/AGENTS.md`
|
||
- `../../docs/solver-core/README.md`
|
||
- `../../docs/solver-core/README.md`
|
||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||
- `/CMakeLists.txt`와 모든 CMake/test registration
|
||
- `/phases/linear-static-3d-euler-beam/index.json`의 Step 7–24 summary
|
||
|
||
## 작업
|
||
|
||
fresh MSVC x64 Debug configure/build/test evidence를 수집해
|
||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라.
|
||
|
||
- Metadata status는 모든 gate 통과 시 `pass-for-reference-verification`이다.
|
||
- Environment/dependency revision과 config-resolved command를 기록한다.
|
||
- Configure, build, targeted feature tests, CTest discovery, full CTest 각각에 command,
|
||
start/end 또는 duration, exit code, stdout/stderr tail, verdict를 기록한다.
|
||
- CTest discovery가 하나 이상의 test를 포함하고 compiler metadata가 MSVC인지 확인한다.
|
||
- `/W4 /WX`로 새 product warning이 없는지 build output/CMake setting으로 확인한다.
|
||
- implementation report의 Step 7–24 RED/GREEN/VERIFY evidence가 모두 present인지 감사한다.
|
||
- 실패는 `configure | compile | link | test | reference-comparison | harness | environment |
|
||
upstream-contract` 중 하나로 분류하고 correction handoff를 기록한다.
|
||
|
||
## Acceptance Criteria
|
||
|
||
아래 명령을 fresh evidence로 실행한다.
|
||
|
||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||
|
||
Report structural check:
|
||
|
||
```powershell
|
||
$path = 'docs/linear-static-3d-euler-beam/build-test.md'
|
||
if (-not (Test-Path $path)) { throw "Missing $path" }
|
||
$required = @('status: `pass-for-reference-verification`', 'MSVC', 'x64', 'Debug',
|
||
'configure', 'build', 'show-only=json-v1', 'output-on-failure', 'exit code', 'duration')
|
||
foreach ($text in $required) {
|
||
if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) {
|
||
throw "Missing build/test evidence: $text"
|
||
}
|
||
}
|
||
git diff --check -- $path
|
||
```
|
||
|
||
## 검증 절차
|
||
|
||
1. 모든 command를 새로 실행하고 실제 exit code/duration/output tail을 기록한다.
|
||
2. implementation evidence와 CTest discovered tests를 대조한다.
|
||
3. 모두 성공한 경우에만 report와 Step 25를 pass/completed로 갱신한다.
|
||
4. 실패 시 report에 정확한 classification과 correction handoff를 기록하고 Step 25를
|
||
`error`로 둔다. 환경/사용자 조치가 필수인 경우만 `blocked`로 둔다.
|
||
|
||
## 금지사항
|
||
|
||
- source, tests, CMake를 수정하지 마라. 이유: independent build/test gate다.
|
||
- 실패 test를 disable/filter-out하지 마라. 이유: 회귀를 숨긴다.
|
||
- reference artifact나 tolerance를 수정하지 마라. 이유: 이 gate의 책임 밖이다.
|
||
- command 결과를 추정하거나 이전 summary를 fresh evidence로 대체하지 마라. 이유: gate 신뢰성을 잃는다.
|
||
- 직접 commit하지 마라. 이유: Harness executor가 담당한다.
|