package testutil import ( "io/ioutil" "net/http/httptest" "os" "testing" "github.com/ethereum/go-ethereum/swarm/api" httpapi "github.com/ethereum/go-ethereum/swarm/api/http" "github.com/ethereum/go-ethereum/swarm/storage" ) func NewTestSwarmServer(t *testing.T) *TestSwarmServer { dir, err := ioutil.TempDir("", "swarm-storage-test") if err != nil { t.Fatal(err) } storeparams := &storage.StoreParams{ ChunkDbPath: dir, DbCapacity: 5000000, CacheCapacity: 5000, Radius: 0, } localStore, err := storage.NewLocalStore(storage.MakeHashFunc("SHA3"), storeparams) if err != nil { os.RemoveAll(dir) t.Fatal(err) } chunker := storage.NewTreeChunker(storage.NewChunkerParams()) dpa := &storage.DPA{ Chunker: chunker, ChunkStore: localStore, } dpa.Start() a := api.NewApi(dpa, nil) srv := httptest.NewServer(httpapi.NewServer(a)) return &TestSwarmServer{ Server: srv, Dpa: dpa, dir: dir, } } type TestSwarmServer struct { *httptest.Server Dpa *storage.DPA dir string } func (t *TestSwarmServer) Close() { t.Server.Close() t.Dpa.Stop() os.RemoveAll(t.dir) }