单二进制三角色 + Dock 适配器 + Swarm stack 达到可部署态;mgr1 实测订阅经 central-proxy bootstrap,探活 alive=41/52。 Co-authored-by: Cursor <cursoragent@cursor.com>
31 lines
803 B
Go
31 lines
803 B
Go
// testhelpers_test.go:测试辅助(日志缓冲、io 别名、时钟别名、deny 注入)。
|
||
package proxymanager
|
||
|
||
import (
|
||
"bytes"
|
||
"io"
|
||
"log"
|
||
"strings"
|
||
"time"
|
||
)
|
||
|
||
// timeSecond 时长别名(测试可读性)。
|
||
const timeSecond = time.Second
|
||
|
||
// ioReadAll io.ReadAll 别名。
|
||
func ioReadAll(r io.Reader) ([]byte, error) { return io.ReadAll(r) }
|
||
|
||
// logBuffer 线程安全日志缓冲(脱敏断言用)。
|
||
type logBuffer struct {
|
||
bytes.Buffer
|
||
}
|
||
|
||
// newBufLogger 构造写缓冲的 logger。
|
||
func newBufLogger(buf *logBuffer) *log.Logger {
|
||
return log.New(buf, "", 0)
|
||
}
|
||
|
||
// addTestDeny 内存注入 deny 规则(DomainTrie.Insert,与 LoadFromStore 同一插入路径)。
|
||
func addTestDeny(m *Manager, suffix string) {
|
||
m.rules.Insert("."+strings.TrimPrefix(suffix, "."), "deny")
|
||
}
|