From da290e9707d6b3074b571722bbb557815b03ad48 Mon Sep 17 00:00:00 2001 From: Elad Date: Tue, 9 Oct 2018 14:08:40 +0200 Subject: [PATCH] cmd/swarm: speed up tests (#17878) These minor changes already shaved off around 30s. --- cmd/swarm/access_test.go | 13 ++++++------ cmd/swarm/manifest_test.go | 41 +++++++++++++++++++------------------- cmd/swarm/run_test.go | 6 ++++++ cmd/swarm/upload_test.go | 9 +++++---- 4 files changed, 38 insertions(+), 31 deletions(-) diff --git a/cmd/swarm/access_test.go b/cmd/swarm/access_test.go index 106e6dd91..b4d2e1dbc 100644 --- a/cmd/swarm/access_test.go +++ b/cmd/swarm/access_test.go @@ -54,9 +54,8 @@ var DefaultCurve = crypto.S256() // is then fetched through 2nd node. since the tested code is not key-aware - we can just // fetch from the 2nd node using HTTP BasicAuth func TestAccessPassword(t *testing.T) { - cluster := newTestCluster(t, 1) - defer cluster.Shutdown() - proxyNode := cluster.Nodes[0] + srv := testutil.NewTestSwarmServer(t, serverFunc, nil) + defer srv.Close() dataFilename := testutil.TempFileWithContent(t, data) defer os.RemoveAll(dataFilename) @@ -64,7 +63,7 @@ func TestAccessPassword(t *testing.T) { // upload the file with 'swarm up' and expect a hash up := runSwarm(t, "--bzzapi", - proxyNode.URL, //it doesn't matter through which node we upload content + srv.URL, //it doesn't matter through which node we upload content "up", "--encrypt", dataFilename) @@ -138,7 +137,7 @@ func TestAccessPassword(t *testing.T) { if a.Publisher != "" { t.Fatal("should be empty") } - client := swarm.NewClient(cluster.Nodes[0].URL) + client := swarm.NewClient(srv.URL) hash, err := client.UploadManifest(&m, false) if err != nil { @@ -147,7 +146,7 @@ func TestAccessPassword(t *testing.T) { httpClient := &http.Client{} - url := cluster.Nodes[0].URL + "/" + "bzz:/" + hash + url := srv.URL + "/" + "bzz:/" + hash response, err := httpClient.Get(url) if err != nil { t.Fatal(err) @@ -189,7 +188,7 @@ func TestAccessPassword(t *testing.T) { //download file with 'swarm down' with wrong password up = runSwarm(t, "--bzzapi", - proxyNode.URL, + srv.URL, "down", "bzz:/"+hash, tmp, diff --git a/cmd/swarm/manifest_test.go b/cmd/swarm/manifest_test.go index 9c7808dfa..7ea4e0c45 100644 --- a/cmd/swarm/manifest_test.go +++ b/cmd/swarm/manifest_test.go @@ -26,6 +26,7 @@ import ( "github.com/ethereum/go-ethereum/swarm/api" swarm "github.com/ethereum/go-ethereum/swarm/api/client" + "github.com/ethereum/go-ethereum/swarm/testutil" ) // TestManifestChange tests manifest add, update and remove @@ -57,8 +58,8 @@ func TestManifestChangeEncrypted(t *testing.T) { // Argument encrypt controls whether to use encryption or not. func testManifestChange(t *testing.T, encrypt bool) { t.Parallel() - cluster := newTestCluster(t, 1) - defer cluster.Shutdown() + srv := testutil.NewTestSwarmServer(t, serverFunc, nil) + defer srv.Close() tmp, err := ioutil.TempDir("", "swarm-manifest-test") if err != nil { @@ -94,7 +95,7 @@ func testManifestChange(t *testing.T, encrypt bool) { args := []string{ "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "--recursive", "--defaultpath", indexDataFilename, @@ -109,7 +110,7 @@ func testManifestChange(t *testing.T, encrypt bool) { checkHashLength(t, origManifestHash, encrypt) - client := swarm.NewClient(cluster.Nodes[0].URL) + client := swarm.NewClient(srv.URL) // upload a new file and use its manifest to add it the original manifest. t.Run("add", func(t *testing.T) { @@ -122,14 +123,14 @@ func testManifestChange(t *testing.T, encrypt bool) { humansManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "up", humansDataFilename, ) newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "add", origManifestHash, @@ -177,14 +178,14 @@ func testManifestChange(t *testing.T, encrypt bool) { robotsManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "up", robotsDataFilename, ) newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "add", origManifestHash, @@ -237,14 +238,14 @@ func testManifestChange(t *testing.T, encrypt bool) { indexManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "up", indexDataFilename, ) newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "update", origManifestHash, @@ -295,14 +296,14 @@ func testManifestChange(t *testing.T, encrypt bool) { humansManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "up", robotsDataFilename, ) newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "update", origManifestHash, @@ -348,7 +349,7 @@ func testManifestChange(t *testing.T, encrypt bool) { t.Run("remove", func(t *testing.T) { newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "remove", origManifestHash, @@ -376,7 +377,7 @@ func testManifestChange(t *testing.T, encrypt bool) { t.Run("remove nested", func(t *testing.T) { newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "remove", origManifestHash, @@ -429,8 +430,8 @@ func TestNestedDefaultEntryUpdateEncrypted(t *testing.T) { func testNestedDefaultEntryUpdate(t *testing.T, encrypt bool) { t.Parallel() - cluster := newTestCluster(t, 1) - defer cluster.Shutdown() + srv := testutil.NewTestSwarmServer(t, serverFunc, nil) + defer srv.Close() tmp, err := ioutil.TempDir("", "swarm-manifest-test") if err != nil { @@ -458,7 +459,7 @@ func testNestedDefaultEntryUpdate(t *testing.T, encrypt bool) { args := []string{ "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "--recursive", "--defaultpath", indexDataFilename, @@ -473,7 +474,7 @@ func testNestedDefaultEntryUpdate(t *testing.T, encrypt bool) { checkHashLength(t, origManifestHash, encrypt) - client := swarm.NewClient(cluster.Nodes[0].URL) + client := swarm.NewClient(srv.URL) newIndexData := []byte("

Ethereum Swarm

") newIndexDataFilename := filepath.Join(tmp, "index.html") @@ -484,14 +485,14 @@ func testNestedDefaultEntryUpdate(t *testing.T, encrypt bool) { newIndexManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "up", newIndexDataFilename, ) newManifestHash := runSwarmExpectHash(t, "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "manifest", "update", origManifestHash, diff --git a/cmd/swarm/run_test.go b/cmd/swarm/run_test.go index 6d2a86f4b..55199e955 100644 --- a/cmd/swarm/run_test.go +++ b/cmd/swarm/run_test.go @@ -40,6 +40,9 @@ import ( "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rpc" "github.com/ethereum/go-ethereum/swarm" + "github.com/ethereum/go-ethereum/swarm/api" + swarmhttp "github.com/ethereum/go-ethereum/swarm/api/http" + "github.com/ethereum/go-ethereum/swarm/testutil" ) var loglevel = flag.Int("loglevel", 3, "verbosity of logs") @@ -55,6 +58,9 @@ func init() { }) } +func serverFunc(api *api.API) testutil.TestServer { + return swarmhttp.NewServer(api, "") +} func TestMain(m *testing.M) { // check if we have been reexec'd if reexec.Init() { diff --git a/cmd/swarm/upload_test.go b/cmd/swarm/upload_test.go index e8161680f..0ac2456a5 100644 --- a/cmd/swarm/upload_test.go +++ b/cmd/swarm/upload_test.go @@ -32,6 +32,7 @@ import ( "github.com/ethereum/go-ethereum/log" swarm "github.com/ethereum/go-ethereum/swarm/api/client" + "github.com/ethereum/go-ethereum/swarm/testutil" "github.com/mattn/go-colorable" ) @@ -298,8 +299,8 @@ func TestCLISwarmUpDefaultPath(t *testing.T) { } func testCLISwarmUpDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T) { - cluster := newTestCluster(t, 1) - defer cluster.Shutdown() + srv := testutil.NewTestSwarmServer(t, serverFunc, nil) + defer srv.Close() tmp, err := ioutil.TempDir("", "swarm-defaultpath-test") if err != nil { @@ -323,7 +324,7 @@ func testCLISwarmUpDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T args := []string{ "--bzzapi", - cluster.Nodes[0].URL, + srv.URL, "--recursive", "--defaultpath", defaultPath, @@ -340,7 +341,7 @@ func testCLISwarmUpDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T up.ExpectExit() hash := matches[0] - client := swarm.NewClient(cluster.Nodes[0].URL) + client := swarm.NewClient(srv.URL) m, isEncrypted, err := client.DownloadManifest(hash) if err != nil {