mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 17:38:10 +00:00
- Cleaner 协议统一为 cleaner.invoke(scope,name,text),覆盖工具/输入/输出三类 - 新增 ShmSecurityMode (safe/debug/full),Linux 审计探针,Windows crypto nonce - plan.md 追加 §13 步骤分组
64 lines
1.5 KiB
Go
64 lines
1.5 KiB
Go
package proc
|
||
|
||
import (
|
||
"testing"
|
||
)
|
||
|
||
func TestShmSecurityMode_DefaultsToSafe(t *testing.T) {
|
||
if ShmSecurityModeOf() != ShmModeSafe {
|
||
t.Fatalf("默认应为 safe,实际 %q", ShmSecurityModeOf())
|
||
}
|
||
}
|
||
|
||
func TestShmAudit_ZeroPluginsNoMapping(t *testing.T) {
|
||
h, err := NewHost()
|
||
if err != nil {
|
||
t.Fatalf("NewHost: %v", err)
|
||
}
|
||
defer h.Close()
|
||
|
||
a, ok := h.AuditShmMappings(0)
|
||
if !ok {
|
||
// 非 Linux 平台无探针,本测试断言"平台探针不误报"
|
||
t.Logf("平台无探针(ok=false),跳过")
|
||
return
|
||
}
|
||
// 无子进程时实际映射数应为 0
|
||
if a.ActualMappings != 0 {
|
||
t.Fatalf("无子进程时应无映射,实际 %d", a.ActualMappings)
|
||
}
|
||
if a.Delta != 0 {
|
||
t.Fatalf("Delta 应为 0,实际 %d", a.Delta)
|
||
}
|
||
}
|
||
|
||
// 子进程挂载共享段后,Linux 探针应能看到对应映射。
|
||
func TestShmAudit_SeesChildMapping(t *testing.T) {
|
||
bin := buildTestPlugin(t, "stageplugin.go")
|
||
core := newFakeCore()
|
||
|
||
host, err := NewHost()
|
||
if err != nil {
|
||
t.Fatalf("NewHost: %v", err)
|
||
}
|
||
defer host.Close()
|
||
|
||
p := New("audit", bin, t.TempDir(), nil, host, nil)
|
||
if err := p.Start(core); err != nil {
|
||
t.Fatalf("Start: %v", err)
|
||
}
|
||
defer p.Close()
|
||
|
||
a, ok := host.AuditShmMappings(1)
|
||
if !ok {
|
||
t.Logf("平台无探针(ok=false),跳过")
|
||
return
|
||
}
|
||
// 至少应看到 1 个儿童映射
|
||
if a.ActualMappings < 1 {
|
||
t.Fatalf("子进程应映射共享段,实际映射数 %d", a.ActualMappings)
|
||
}
|
||
// 期望 1、实际 ≥1 → delta 不应为负且不应报警(delta>0 才告警)
|
||
_ = a
|
||
}
|