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

4.2 KiB

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

edge-smoke dev 테스트

읽기 조건

  • apps/edge/** 변경 또는 edge registry, transport, service, console, OpenAI-compatible/A2A 입력 표면 dev 검증 판단이 필요한 경우

적용 범위

  • apps/edge/cmd/edge/**
  • apps/edge/internal/bootstrap/**
  • apps/edge/internal/transport/**
  • apps/edge/internal/service/**
  • apps/edge/internal/events/**
  • apps/edge/internal/input/**
  • apps/edge/internal/openai/**
  • apps/edge/internal/opsconsole/**
  • apps/edge/internal/node/**

분류

  • domain: edge
  • verification_type: smoke
  • scope: edge 실행 그룹, node registry, input surface baseline

환경

  • host: local checkout. dev runtime, external CLI, shared port evidence가 필요하면 원격 runner를 사용한다.
  • port: compose Edge-Node TCP transport 19003; dev artifact/bootstrap HTTP 후보 18082, dev Edge OpenAI-compatible HTTP 후보 18083, dev Edge metrics 후보 19101.
  • runtime: Go 1.24
  • package manager: Go modules / Makefile
  • docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev 검증은 docker compose --env-file .env.dev.example ...로 수행한다.
  • external service: dev artifact/base URL 후보 http://toki-labs.com:18082, 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: go test ./apps/edge/...
  • smoke: ./scripts/e2e-smoke.sh는 기본 포트 임시 설정을 쓰는 보조 smoke이므로 dev 포트 override 필요 여부를 먼저 확인한다.
  • e2e: make test-e2e는 보조 smoke이며 full-cycle 실제 구동을 대체하지 않는다.
  • model: dev OpenAI-compatible profile을 띄운 경우 iop-edge smoke openai --base-url http://127.0.0.1:18083
  • full-cycle: repo 내부 edge-node 진단, iop-edge smoke openai, OpenAI-compatible 입력 표면 수동 검증

필수 검증

  • 변경한 edge 패키지 또는 go test ./apps/edge/...를 실행한다.
  • registry, service, transport, console, HTTP/A2A 입력 표면을 바꾼 경우 edge-node 메시지 2회 왕복과 command 응답을 확인한다.
  • OpenAI-compatible 경계를 바꾼 경우 dev 18083 기준 iop-edge smoke openai 또는 동등한 /healthz, /v1/models, /v1/responses 확인으로 edge service와 node adapter 경로 수렴을 확인한다.
  • bootstrap/artifact 경계를 바꾼 경우 dev artifact/base URL 후보 18082가 local/test 18080 field baseline을 덮어쓰지 않는지 확인한다.

보조 검증

  • ./scripts/e2e-smoke.sh는 edge-node 최소 생존 확인에 사용한다.
  • ./scripts/e2e-openai-ollama.sh는 OpenAI-compatible Ollama 입력 표면 보조 확인에 사용한다.

판정 기준

  • node 등록, /nodes, console 메시지 전송, 기대 payload를 포함한 [node-*-message] 출력, 같은 run의 complete event가 확인된다.
  • node 로컬 [node-message] payload 라인 목록과 edge [node-*-message] payload 라인 목록이 run별로 내용/순서까지 동일해야 한다.
  • edge complete는 같은 run의 마지막 [node-*-message] 이후에만 정상이다.
  • OpenAI-compatible smoke에서 /healthz, /v1/models, /v1/responses가 기대 상태로 응답한다.
  • bootstrap 사용자 명령은 완성된 URL과 positional token 하나만 포함한다.

기준 출력 예시

edge> /nodes
[edge] sent run_id=...
[node-*-message] IOP_EXPECTED_REPLY
[node-*-event] complete

차단 기준

  • dev host 또는 Edge-Node TCP port 접근이 불가능하다.
  • 외부 CLI profile 검증에 필요한 CLI 설치, 계정, provider 상태가 없다.
  • dev artifact/model/metrics 포트가 기존 field baseline과 충돌한다.

보고 항목

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

금지 사항

  • secret, token, 개인 endpoint 원문은 tracked 파일에 기록하지 않는다.
  • field baseline 포트(18080, 18081, 19090, 19092)를 dev 전용 포트로 재사용하지 않는다.