feat: Increase test coverage for pkg/mining
This commit introduces a number of new tests for the `pkg/mining` package, increasing the overall test coverage from 8.2% to 41.4%. The following changes were made: - Added tests for the `XMRigMiner` struct, including its methods for installation, starting, stopping, and getting stats. - Added tests for the `Service` layer, including the API endpoints for listing, starting, stopping, and getting stats for miners. - Added tests for the `Manager`, including starting and stopping multiple miners, collecting stats, and getting hashrate history. - Introduced a `ManagerInterface` to decouple the `Service` layer from the concrete `Manager` implementation, facilitating testing with mocks. - Fixed a failing test on Windows by creating a Windows-compatible dummy executable. - Improved encapsulation in tests by adding and using getter methods for private fields.
This commit is contained in:
parent
5fd7b4b40a
commit
baf732b999
2 changed files with 15 additions and 5 deletions
|
|
@ -574,6 +574,18 @@ func (m *XMRigMiner) AddHashratePoint(point HashratePoint) {
|
|||
|
||||
// ReduceHashrateHistory aggregates older high-resolution data into 1-minute averages
|
||||
// and adds them to the low-resolution history.
|
||||
func (m *XMRigMiner) GetHighResHistoryLength() int {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
return len(m.HashrateHistory)
|
||||
}
|
||||
|
||||
func (m *XMRigMiner) GetLowResHistoryLength() int {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
return len(m.LowResHashrateHistory)
|
||||
}
|
||||
|
||||
func (m *XMRigMiner) ReduceHashrateHistory(now time.Time) {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
|
|
|
|||
|
|
@ -210,14 +210,12 @@ func TestXMRigMiner_HashrateHistory(t *testing.T) {
|
|||
miner.ReduceHashrateHistory(future)
|
||||
|
||||
// After reduction, high-res history should be smaller
|
||||
miner.mu.Lock()
|
||||
if len(miner.HashrateHistory) >= 10 {
|
||||
t.Errorf("High-res history not reduced, size: %d", len(miner.HashrateHistory))
|
||||
if miner.GetHighResHistoryLength() >= 10 {
|
||||
t.Errorf("High-res history not reduced, size: %d", miner.GetHighResHistoryLength())
|
||||
}
|
||||
if len(miner.LowResHashrateHistory) == 0 {
|
||||
if miner.GetLowResHistoryLength() == 0 {
|
||||
t.Error("Low-res history not populated")
|
||||
}
|
||||
miner.mu.Unlock()
|
||||
|
||||
combinedHistory := miner.GetHashrateHistory()
|
||||
if len(combinedHistory) == 0 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue