57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								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)
							 | 
						||
| 
								 | 
							
								}
							 |