mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
79 lines
1.9 KiB
Go
79 lines
1.9 KiB
Go
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package debug
|
|
|
|
import (
|
|
"github.com/luxfi/constants"
|
|
"github.com/luxfi/ids"
|
|
validators "github.com/luxfi/validators"
|
|
"testing"
|
|
)
|
|
|
|
func TestValidatorManager(t *testing.T) {
|
|
// Test our validator manager implementation
|
|
mgr := validators.NewManager()
|
|
|
|
nodeID := ids.GenerateTestNodeID()
|
|
chainID := constants.PrimaryNetworkID
|
|
txID := ids.GenerateTestID()
|
|
weight := uint64(1000000)
|
|
|
|
// Test AddStaker
|
|
err := mgr.AddStaker(chainID, nodeID, nil, txID, weight)
|
|
if err != nil {
|
|
t.Fatalf("AddStaker failed: %v", err)
|
|
}
|
|
|
|
// Test GetValidator
|
|
vdr, exists := mgr.GetValidator(chainID, nodeID)
|
|
if !exists {
|
|
t.Fatal("Validator should exist after AddStaker")
|
|
}
|
|
if vdr.Weight != weight {
|
|
t.Fatalf("Expected weight %d, got %d", weight, vdr.Weight)
|
|
}
|
|
|
|
// Test GetWeight
|
|
w := mgr.GetWeight(chainID, nodeID)
|
|
if w != weight {
|
|
t.Fatalf("Expected weight %d, got %d", weight, w)
|
|
}
|
|
|
|
// Test TotalWeight
|
|
total, err := mgr.TotalWeight(chainID)
|
|
if err != nil {
|
|
t.Fatalf("TotalWeight failed: %v", err)
|
|
}
|
|
if total != weight {
|
|
t.Fatalf("Expected total weight %d, got %d", weight, total)
|
|
}
|
|
|
|
// Test RemoveWeight
|
|
err = mgr.RemoveWeight(chainID, nodeID, weight)
|
|
if err != nil {
|
|
t.Fatalf("RemoveWeight failed: %v", err)
|
|
}
|
|
|
|
// Verify validator is removed
|
|
_, exists = mgr.GetValidator(chainID, nodeID)
|
|
if exists {
|
|
t.Fatal("Validator should not exist after RemoveWeight")
|
|
}
|
|
|
|
t.Log("All validator manager tests passed!")
|
|
}
|
|
|
|
func TestConsensusParameters(t *testing.T) {
|
|
// Verify consensus parameters for 1/1 validator setup
|
|
sampleSize := 1
|
|
quorumSize := 1
|
|
commitThreshold := 1
|
|
|
|
if sampleSize != 1 || quorumSize != 1 || commitThreshold != 1 {
|
|
t.Fatal("Consensus parameters should be set to 1 for single validator")
|
|
}
|
|
|
|
t.Log("Consensus parameters verified: K=1, Alpha=1, Beta=1")
|
|
}
|