2.7 KiB
2.7 KiB
Integration Tests
실제 브라우저 API, Worker, 다운로드와 앱 간 데이터 계약을 함께 검증합니다.
실행
가장 간단한 자동 실행은 저장소 루트의 test.cmd입니다. 임시 local server와 headless Edge/Chrome을
실행하고 전체 browser suite가 끝나면 결과에 맞는 process exit code를 반환합니다.
수동 확인은 start.cmd를 실행한 뒤 최신 Edge 또는 Chrome에서
http://127.0.0.1:4173/tests/을 열고 모든 항목이 끝날 때까지 페이지를 유지합니다.
Unit과 integration test가 같은 페이지에서 실행됩니다. WebGPU 장치 초기화와 192채널 baseline은
수 초 이상 걸릴 수 있습니다. 페이지 제목과 요약이 PASS인지 확인하고 실패 항목의 stack을
확인하세요. index.html을 직접 열면 HTTP, module과 Worker 테스트가 올바르게 동작하지 않습니다.
범위
cpu-baseline.test.js: 192채널·50×50 synthetic fixture의 CPU DAS와 위치 기준webgpu.test.js: 실제 adapter가 있으면 DAS·DAS-PHAT CPU/GPU map 오차, peak와 강제 bin/point batching; adapter가 없으면 Auto CPU fallbackserver.test.js: 숨김 저장소 경로 차단, GET/HEAD 제한과 보안 response headersbuilder-ui.test.js: 파일 선택 한 번으로 오디오 음원 생성, 이미지·오디오 연결, canvas 편집, trajectory keyframe 편집, Preview WAV/Scene 다운로드, SHA 재연결과 잘못된 import 보존array-builder-ui.test.js: 프리셋·직접 추가·좌표·보정·채널 편집, undo/redo, 중복 좌표 차단, 표준 Array JSON 저장·재가져오기와 390px layoutcamera-ui.test.js: Dedicated Worker CPU/WebGPU 실행, 취소, Result schema, rectangular/Fermat와 DAS/DAS-PHAT 비교, GCC-PHAT CPU·협대역 제약, Builder 새 탭과 Experiment 선로드·Scene 재import의 다중 band 보존; 이동 예제 전체 교체 확인, 8×8 CPU·2 Hz live map의 Auto→CPU fallback 뒤 공통 analysis plan 재사용, 복수 frame, scrub, 재생 시간 증가와 일시정지workflow-ui.test.js: Dataset Builder의 Scene JSON과 원본 assets를 Acoustic Camera에 넘겨 Result JSON을 저장하는 end-to-end 흐름split-layout-ui.test.js: 세 앱 설정 패널의 drag·keyboard 폭 조절, 저장·reset과 좁은 화면 적층
WebGPU adapter가 없는 환경에서는 장치가 필요한 비교 항목을 건너뛰거나 Auto fallback을 검증하므로
CPU-only PASS도 가능합니다. 실제 장치의 scaling과 benchmark JSON 저장은
http://127.0.0.1:4173/benchmarks/webgpu-scaling.html에서 별도로 실행하세요. 기존 실측 조건과
해석은 ../../docs/benchmarks/README.md에 있습니다.