From e9afd52785222772fb59f3b2a030b4f8f6bccbd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=93=E8=89=AF?= <1204183885@qq.com> Date: Mon, 22 Jun 2026 23:00:23 +0800 Subject: [PATCH] test(integration): skip qwen serve streaming suite under container sandbox (#5655) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The qwen serve streaming integration tests back the model side with a fake OpenAI server bound to the host's 127.0.0.1. Under QWEN_SANDBOX=docker/podman the daemon's `qwen --acp` child runs inside the container and cannot reach the host loopback, so every prompt turn fails with "Connection error" — the permission fan-out and Last-Event-ID flows never fire and the suite fails deterministically (Release "Integration Tests (Docker)" job). Skip the suite under any container sandbox, matching the existing qwen-serve-baseline / acp-integration / cron-tools precedent. The no-AK smoke job (sandbox:none) still runs the full suite, so coverage is unchanged. --- .../cli/qwen-serve-streaming.test.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/integration-tests/cli/qwen-serve-streaming.test.ts b/integration-tests/cli/qwen-serve-streaming.test.ts index 4afea18a88..4bd416e991 100644 --- a/integration-tests/cli/qwen-serve-streaming.test.ts +++ b/integration-tests/cli/qwen-serve-streaming.test.ts @@ -52,7 +52,21 @@ const REPO_ROOT = path.resolve(__dirname, '../..'); // child-process crashes for the SIGKILL → `session_died` test, and those // binaries are POSIX-only. A Windows-equivalent (`taskkill`) would need // different test scaffolding. -const SKIP = process.platform === 'win32'; +// +// Container sandbox (QWEN_SANDBOX=docker/podman): the model side is a fake +// OpenAI server bound to the host's 127.0.0.1, but under the sandbox the +// daemon's `qwen --acp` child runs inside the container and cannot reach the +// host loopback — every prompt turn fails with "Connection error", so the +// permission fan-out and Last-Event-ID flows below never fire. (The host +// `pgrep -P` in the SIGKILL test can't see the in-container PID either.) Skip +// under any container sandbox, matching the existing qwen-serve-baseline / +// acp-integration / cron-tools precedent. +const SKIP = + process.platform === 'win32' || + Boolean( + process.env['QWEN_SANDBOX'] && + process.env['QWEN_SANDBOX']!.toLowerCase() !== 'false', + ); const describePOSIX = SKIP ? describe.skip : describe; let daemon: ChildProcess;