iop/agent-test/dev/testing-smoke.md

4.8 KiB

test_env test_profile domain verification_type last_rule_updated_at
dev testing-smoke testing smoke 2026-06-12

testing-smoke dev 테스트

읽기 조건

  • Makefile, scripts/dev/**, scripts/e2e-*.sh, bootstrap pack, 테스트/검증 절차, dev compose/profile 변경 판단이 필요한 경우

적용 범위

  • Makefile
  • scripts/dev/edge.sh
  • scripts/dev/node.sh
  • scripts/e2e-smoke.sh
  • scripts/e2e-openai-ollama.sh
  • iop-edge bootstrap pack
  • docker-compose.yml
  • .env.dev.example
  • agent-test/dev/**

분류

  • domain: testing
  • verification_type: smoke
  • scope: 테스트 도구, 보조 smoke, full-cycle 실제 구동 기준

환경

  • host: local checkout. Flutter client 포함 검증, Docker compose, field/bootstrap, artifact server, external CLI profile evidence가 필요하면 원격 runner를 사용한다.
  • port: web/dev preview 13001, artifact/bootstrap HTTP 후보 18082, Edge OpenAI-compatible HTTP 후보 18083, Portal/Control Plane wire test endpoint 19001, CP-Edge wire 19002, Edge-Node TCP transport 19003, Edge metrics 후보 19101.
  • runtime: Go 1.24
  • package manager: Go modules / Makefile
  • docker: quick check는 Docker를 요구하지 않는다. 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않으며, Docker compose 검증은 원격 runner 또는 code-server 환경에서 수행한다.
  • external service: dev Control Plane HTTP http://toki-labs.com:18001, dev Client wire ws://toki-labs.com:19001/client, dev Edge runtime 후보 toki-labs.com:19003
  • model endpoint: dev OpenAI-compatible base URL 후보 http://toki-labs.com:18083/v1
  • credential: token/secret 원문은 문서에 기록하지 않는다.

명령

  • setup:
  • lint:
  • unit: make test
  • smoke: ./scripts/e2e-smoke.sh
  • compose-smoke: IOP_EDGE_NODE_TOKEN=<token> docker compose --env-file .env.dev.example up -d postgres redis control-plane edge web
  • compose-health: curl -fsS http://127.0.0.1:18001/healthz
  • e2e: make test-e2e
  • model: ./scripts/e2e-openai-ollama.sh
  • full-cycle: make pack-node-target, repo 내부 edge-node 진단, field bootstrap UX, 실제 외부 CLI profile 검증

필수 검증

  • 테스트 도구 자체를 바꾼 경우 해당 도구를 직접 실행해 성공/실패 판정을 확인한다.
  • 사용자 실행 파이프라인에 닿는 변경은 일반 Go 테스트와 변경 범위에 맞는 full-cycle 실제 구동을 함께 검증한다.
  • dev compose/profile 변경 시 docker compose --env-file .env.dev.example config로 렌더링된 host publish 포트와 network name을 확인한다.
  • iop-edge bootstrap pack, make pack-edge, 내장 artifact server 변경 시 현재 host target build와 artifact/checksum/bootstrap script를 확인한다.
  • field/bootstrap/deploy 작업은 one-line bootstrap UX 기준을 적용한다.
  • 사용자에게 전달하는 Node bootstrap 명령은 완성된 URL과 token positional value 하나만 포함한다.

보조 검증

  • make test-e2e, ./scripts/e2e-smoke.sh, ./scripts/e2e-openai-ollama.sh는 보조 smoke다.
  • 보조 smoke는 full-cycle 실제 구동이나 field bootstrap 검증을 대체하지 않는다.

판정 기준

  • dev compose는 COMPOSE_PROJECT_NAME=iop-dev-agentIOP_COMPOSE_NETWORK=iop-dev-agent-net을 사용한다.
  • dev compose가 local/test 포트 13000, 18000, 19080, 19081, 15400, 16300을 점유하지 않는다.
  • edge console에서 메시지 2회가 각각 기대 payload를 포함한 [node-*-message]로 표시되고, command 결과가 edge 화면에 도착한다.
  • node 로컬 [node-message] payload 라인 목록과 edge [node-*-message] payload 라인 목록이 run별로 내용/순서까지 동일해야 한다.
  • Node bootstrap UX는 curl -fsSL <완성된-bootstrap-url> | bash -s <token> 형태를 유지한다.

기준 출력 예시

docker compose --env-file .env.dev.example config
curl -fsS http://127.0.0.1:18001/healthz

차단 기준

  • dev host 접근, 지정 port, 외부 CLI 설치/계정/provider 상태가 없어 필수 검증을 수행할 수 없다.
  • 사용자가 명시하지 않았는데 code-server 컨테이너 재시작이 필요한 상황이다.
  • dev 포트가 이미 사용 중이라 local/test stack과 공존할 수 없다.

보고 항목

  • 실행한 명령:
  • 성공한 검증:
  • 실패/차단된 검증:
  • 생략 사유:
  • 남은 위험:

금지 사항

  • 보조 E2E smoke 통과만으로 완료 처리하지 않는다.
  • 사용자 기본 경로에서 IOP_ARTIFACT_BASE_URL=..., IOP_EDGE_ADDR=..., IOP_NODE_TOKEN=... 같은 named environment parameter를 요구하지 않는다.
  • 사용자가 명시하지 않으면 code-server 컨테이너를 재시작하지 않는다.
  • 환경값을 사람용 docs나 roadmap에 복사하지 않는다.
  • secret, token, 개인 endpoint 원문은 tracked 파일에 기록하지 않는다.