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
agent/client/fleet_pressure_test.go
Normal file
55
agent/client/fleet_pressure_test.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"crypto-miner-agent/config"
|
||||
"crypto-miner-agent/deploy"
|
||||
)
|
||||
|
||||
func TestComputeHashratePressure(t *testing.T) {
|
||||
if p := ComputeHashratePressure(0, 4); p != 0 {
|
||||
t.Fatalf("zero hashrate=%v", p)
|
||||
}
|
||||
p := ComputeHashratePressure(160, 4)
|
||||
if p < 0.49 || p > 0.51 {
|
||||
t.Fatalf("half pressure=%v", p)
|
||||
}
|
||||
if ComputeHashratePressure(400, 4) != 1 {
|
||||
t.Fatal("cap at 1")
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyAuthFleetRole(t *testing.T) {
|
||||
c := &AgentClient{cfg: config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{FleetRole: config.FleetRoleAuto}}}
|
||||
c.applyAuthFleetRole(AuthResponse{
|
||||
FleetRoleHint: config.FleetRoleSeeder,
|
||||
LANSeeders: []deploy.LANSeederHint{
|
||||
{AgentID: "s1", IP: "10.0.0.2"},
|
||||
},
|
||||
})
|
||||
if c.fleetRoleHint() != config.FleetRoleSeeder {
|
||||
t.Fatal("hint not applied")
|
||||
}
|
||||
if len(c.lanSeedersSnapshot()) != 1 {
|
||||
t.Fatal("lan seeders not stored")
|
||||
}
|
||||
}
|
||||
|
||||
func TestFleetPressureFieldsSeederVsMiner(t *testing.T) {
|
||||
seeder := &AgentClient{cfg: config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{
|
||||
SeederMode: true, DnsTxtSpread: true, WebRTCMeshSpread: true,
|
||||
}}}
|
||||
role, seed, hr := seeder.fleetPressureFields(0, "dns_txt")
|
||||
if role != config.FleetRoleSeeder || seed != 1 || hr != 0 {
|
||||
t.Fatalf("seeder role=%s seed=%v hr=%v", role, seed, hr)
|
||||
}
|
||||
|
||||
miner := &AgentClient{cfg: config.RuntimeConfig{BuiltinConfig: config.BuiltinConfig{
|
||||
FleetRole: config.FleetRoleMiner, Threads: 2, ThreadMode: "fixed",
|
||||
}}}
|
||||
role, seed, hr = miner.fleetPressureFields(80, "")
|
||||
if role != config.FleetRoleMiner || seed != 0 || hr <= 0 {
|
||||
t.Fatalf("miner role=%s seed=%v hr=%v", role, seed, hr)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user