aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/testutil/http.go
diff options
context:
space:
mode:
Diffstat (limited to 'swarm/testutil/http.go')
-rw-r--r--swarm/testutil/http.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/swarm/testutil/http.go b/swarm/testutil/http.go
new file mode 100644
index 000000000..bf98d16eb
--- /dev/null
+++ b/swarm/testutil/http.go
@@ -0,0 +1,56 @@
+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)
+}