47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
|
|
package proxy
|
||
|
|
|
||
|
|
import (
|
||
|
|
"os"
|
||
|
|
"path/filepath"
|
||
|
|
"strings"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestProxy_ShareLog_WritesOutcomeLines(t *testing.T) {
|
||
|
|
dir := t.TempDir()
|
||
|
|
path := filepath.Join(dir, "shares.log")
|
||
|
|
|
||
|
|
cfg := &Config{
|
||
|
|
Mode: "nicehash",
|
||
|
|
Workers: WorkersByRigID,
|
||
|
|
ShareLogFile: path,
|
||
|
|
Bind: []BindAddr{{Host: "127.0.0.1", Port: 3333}},
|
||
|
|
Pools: []PoolConfig{{URL: "pool.example:3333", Enabled: true}},
|
||
|
|
}
|
||
|
|
p, result := New(cfg)
|
||
|
|
if !result.OK {
|
||
|
|
t.Fatalf("expected valid proxy, got error: %v", result.Error)
|
||
|
|
}
|
||
|
|
|
||
|
|
miner := &Miner{
|
||
|
|
user: "WALLET",
|
||
|
|
conn: noopConn{},
|
||
|
|
state: MinerStateReady,
|
||
|
|
}
|
||
|
|
p.events.Dispatch(Event{Type: EventAccept, Miner: miner, Diff: 1234, Latency: 56})
|
||
|
|
p.events.Dispatch(Event{Type: EventReject, Miner: miner, Error: "Invalid nonce"})
|
||
|
|
p.Stop()
|
||
|
|
|
||
|
|
data, err := os.ReadFile(path)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("read share log: %v", err)
|
||
|
|
}
|
||
|
|
text := string(data)
|
||
|
|
if !strings.Contains(text, "ACCEPT WALLET diff=1234 latency=56ms") {
|
||
|
|
t.Fatalf("expected ACCEPT line, got %q", text)
|
||
|
|
}
|
||
|
|
if !strings.Contains(text, "REJECT WALLET reason=\"Invalid nonce\"") {
|
||
|
|
t.Fatalf("expected REJECT line, got %q", text)
|
||
|
|
}
|
||
|
|
}
|