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:
64
server/internal/db/subnet_spread_pause_test.go
Normal file
64
server/internal/db/subnet_spread_pause_test.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package db
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestRecordSubnetSpreadFailurePausesAtFive(t *testing.T) {
|
||||
d, err := New(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer d.Close()
|
||||
|
||||
prefix := "10.0.0"
|
||||
for i := 0; i < 4; i++ {
|
||||
paused, err := d.RecordSubnetSpreadFailure(prefix)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if paused {
|
||||
t.Fatalf("unexpected pause at failure %d", i+1)
|
||||
}
|
||||
}
|
||||
paused, err := d.RecordSubnetSpreadFailure(prefix)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !paused {
|
||||
t.Fatal("expected pause on 5th failure")
|
||||
}
|
||||
ok, err := d.IsSubnetSpreadPaused(prefix)
|
||||
if err != nil || !ok {
|
||||
t.Fatalf("paused=%v err=%v", ok, err)
|
||||
}
|
||||
row, err := d.GetSubnetSpreadPause(prefix)
|
||||
if err != nil || row == nil || row.FailCount != 5 || row.PausedUntil == nil {
|
||||
t.Fatalf("row=%+v err=%v", row, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubnetSpreadPauseExpires(t *testing.T) {
|
||||
d, err := New(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer d.Close()
|
||||
|
||||
prefix := "192.168.1"
|
||||
for i := 0; i < 5; i++ {
|
||||
_, _ = d.RecordSubnetSpreadFailure(prefix)
|
||||
}
|
||||
_, err = d.Exec(
|
||||
`UPDATE subnet_spread_pause SET paused_until = datetime('now', '-1 hour') WHERE prefix = ?`,
|
||||
prefix,
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ok, err := d.IsSubnetSpreadPaused(prefix)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if ok {
|
||||
t.Fatal("expected expired pause to clear")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user