68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package proxy
|
|
|
|
import "testing"
|
|
|
|
func TestJob_IsValid_Good(t *testing.T) {
|
|
job := Job{Blob: "abcd", JobID: "job-1"}
|
|
if !job.IsValid() {
|
|
t.Fatal("expected valid job")
|
|
}
|
|
}
|
|
|
|
func TestJob_IsValid_Bad(t *testing.T) {
|
|
job := Job{Blob: "abcd"}
|
|
if job.IsValid() {
|
|
t.Fatal("expected invalid job without job ID")
|
|
}
|
|
}
|
|
|
|
func TestJob_IsValid_Ugly(t *testing.T) {
|
|
var job Job
|
|
if job.IsValid() {
|
|
t.Fatal("zero job should be invalid")
|
|
}
|
|
}
|
|
|
|
func TestJob_BlobWithFixedByte_Good(t *testing.T) {
|
|
job := Job{Blob: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}
|
|
got := job.BlobWithFixedByte(0x2a)
|
|
if got[78:80] != "2a" {
|
|
t.Fatalf("expected byte patch 2a, got %s", got[78:80])
|
|
}
|
|
}
|
|
|
|
func TestJob_BlobWithFixedByte_Bad(t *testing.T) {
|
|
job := Job{Blob: "short"}
|
|
if got := job.BlobWithFixedByte(0x2a); got != "short" {
|
|
t.Fatalf("expected short blob unchanged, got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestJob_BlobWithFixedByte_Ugly(t *testing.T) {
|
|
job := Job{Blob: "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}
|
|
got := job.BlobWithFixedByte(0x00)
|
|
if got[78:80] != "00" {
|
|
t.Fatalf("expected byte patch 00, got %s", got[78:80])
|
|
}
|
|
}
|
|
|
|
func TestJob_DifficultyFromTarget_Good(t *testing.T) {
|
|
job := Job{Target: "b88d0600"}
|
|
if got := job.DifficultyFromTarget(); got == 0 {
|
|
t.Fatal("expected non-zero difficulty")
|
|
}
|
|
}
|
|
|
|
func TestJob_DifficultyFromTarget_Bad(t *testing.T) {
|
|
job := Job{Target: "zzzzzzzz"}
|
|
if got := job.DifficultyFromTarget(); got != 0 {
|
|
t.Fatalf("expected invalid target difficulty to be zero, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestJob_DifficultyFromTarget_Ugly(t *testing.T) {
|
|
job := Job{Target: "00000000"}
|
|
if got := job.DifficultyFromTarget(); got == 0 {
|
|
t.Fatal("expected zero target to saturate difficulty")
|
|
}
|
|
}
|