Files
AetherForge/agent/miner/engine_test.go
AetherForge ea6f54ad03 Expand test coverage across server, agent, and web; fix bugs found during audit.
Adds hundreds of unit/integration/e2e tests, fixes WS bcrypt auth, config merge, fleet analytics, agent schedule/log tail, and documents stale PROBLEMS items. Updates PROBLEMS.md, README, and test scripts; ignores local spread-kits and coverage dirs.
2026-05-31 01:13:58 -07:00

55 lines
1.2 KiB
Go

package miner
import (
"strings"
"testing"
)
func TestNewEngineNotNil(t *testing.T) {
e := NewEngine()
if e == nil || e.cache == nil {
t.Fatal("NewEngine should allocate cache")
}
}
func TestEngineSetJobInvalidSeed(t *testing.T) {
e := NewEngine()
if err := e.SetJob("zz", strings.Repeat("00", 76)); err == nil {
t.Fatal("invalid seed hex should error")
}
}
func TestEngineSetJobInvalidBlob(t *testing.T) {
e := NewEngine()
seed := strings.Repeat("ab", 32)
if err := e.SetJob(seed, "not-hex"); err == nil {
t.Fatal("invalid blob hex should error")
}
}
func TestEngineHashAtNonceNoVM(t *testing.T) {
e := NewEngine()
hash, blob, err := e.HashAtNonce(0)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if hash != "" || blob != "" {
t.Fatalf("empty VM should return empty strings, got hash=%q blob=%q", hash, blob)
}
}
func TestEngineHashAtNonceShortBlob(t *testing.T) {
e := NewEngine()
seed := strings.Repeat("cd", 32)
if err := e.SetJob(seed, strings.Repeat("00", 20)); err != nil {
t.Fatal(err)
}
hash, blob, err := e.HashAtNonce(1)
if err != nil {
t.Fatal(err)
}
if hash != "" || blob != "" {
t.Fatalf("blob shorter than nonce offset should not hash, got hash=%q blob=%q", hash, blob)
}
}