From 1262d17d6178fdb4d08f4cedfe9a4a0118e019fb Mon Sep 17 00:00:00 2001 From: Qiu Yuzhou Date: Sat, 24 Oct 2026 00:13:58 +0800 Subject: [PATCH] feat(agent): omit sslocal log timestamps --- ShadowsocksX-NG2/Agent/AgentContract.swift | 2 +- ShadowsocksX-NG2/Tests/Agent/AgentLifecycleTests.swift | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ShadowsocksX-NG2/Agent/AgentContract.swift b/ShadowsocksX-NG2/Agent/AgentContract.swift index 89b890ca..8b1a51bb 100644 --- a/ShadowsocksX-NG2/Agent/AgentContract.swift +++ b/ShadowsocksX-NG2/Agent/AgentContract.swift @@ -83,7 +83,7 @@ func spawnSslocal() -> Process? { if data.isEmpty { handle.readabilityHandler = nil } } child.executableURL = sslocalURL - child.arguments = ["-c", contractURL.path] + child.arguments = ["-c", contractURL.path, "--log-without-time"] var childEnvironment = environment // 不配置 sslocal 日志级别;未设置时使用上游默认值,显式外部 RUST_LOG 原样透传。 // macOS 的 resolv.conf 可能含带 zone id 的链路本地 nameserver(RA 下发的 diff --git a/ShadowsocksX-NG2/Tests/Agent/AgentLifecycleTests.swift b/ShadowsocksX-NG2/Tests/Agent/AgentLifecycleTests.swift index 36828be1..6597b2d3 100644 --- a/ShadowsocksX-NG2/Tests/Agent/AgentLifecycleTests.swift +++ b/ShadowsocksX-NG2/Tests/Agent/AgentLifecycleTests.swift @@ -171,10 +171,13 @@ final class AgentLifecycleCoreTests: AgentLifecycleTests { func testStartProtocolSpawnsSslocalWithAbsoluteConfigPathThenStopsOnSIGTERM() throws { try writeContract(ProxyRuntimeFixture.makeDocument()) let wrapper = try launchWrapper(behavior: "run") + let expectedInvocation = "invoked: -c \(contractURL.path) --log-without-time" XCTAssertTrue( - try waitUntil { self.stateLog().contains("invoked: -c \(self.contractURL.path)") }, - "wrapper 应以契约绝对路径调用 sslocal,实际:\(stateLog())") + try waitUntil { + self.stateLog().components(separatedBy: .newlines).contains(expectedInvocation) + }, + "wrapper 应以契约绝对路径及无上游时间参数调用 sslocal,实际:\(stateLog())") XCTAssertTrue(pidAlive(wrapper.processIdentifier), "sslocal 运行期间 wrapper 应保持常驻") XCTAssertThrowsError(try waitForExit(wrapper, timeout: 0.01))