|
|
@@ -31,8 +31,7 @@ import (
|
|
|
"time"
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/log"
|
|
|
- swarm "github.com/ethereum/go-ethereum/swarm/api/client"
|
|
|
- swarmhttp "github.com/ethereum/go-ethereum/swarm/api/http"
|
|
|
+ swarmapi "github.com/ethereum/go-ethereum/swarm/api/client"
|
|
|
"github.com/ethereum/go-ethereum/swarm/testutil"
|
|
|
"github.com/mattn/go-colorable"
|
|
|
)
|
|
|
@@ -42,42 +41,50 @@ func init() {
|
|
|
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true))))
|
|
|
}
|
|
|
|
|
|
-// TestCLISwarmUp tests that running 'swarm up' makes the resulting file
|
|
|
-// available from all nodes via the HTTP API
|
|
|
-func TestCLISwarmUp(t *testing.T) {
|
|
|
+func TestSwarmUp(t *testing.T) {
|
|
|
if runtime.GOOS == "windows" {
|
|
|
t.Skip()
|
|
|
}
|
|
|
|
|
|
- testCLISwarmUp(false, t)
|
|
|
-}
|
|
|
-func TestCLISwarmUpRecursive(t *testing.T) {
|
|
|
- if runtime.GOOS == "windows" {
|
|
|
- t.Skip()
|
|
|
+ initCluster(t)
|
|
|
+
|
|
|
+ cases := []struct {
|
|
|
+ name string
|
|
|
+ f func(t *testing.T)
|
|
|
+ }{
|
|
|
+ {"NoEncryption", testNoEncryption},
|
|
|
+ {"Encrypted", testEncrypted},
|
|
|
+ {"RecursiveNoEncryption", testRecursiveNoEncryption},
|
|
|
+ {"RecursiveEncrypted", testRecursiveEncrypted},
|
|
|
+ {"DefaultPathAll", testDefaultPathAll},
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, tc := range cases {
|
|
|
+ t.Run(tc.name, tc.f)
|
|
|
}
|
|
|
- testCLISwarmUpRecursive(false, t)
|
|
|
}
|
|
|
|
|
|
-// TestCLISwarmUpEncrypted tests that running 'swarm encrypted-up' makes the resulting file
|
|
|
+// testNoEncryption tests that running 'swarm up' makes the resulting file
|
|
|
// available from all nodes via the HTTP API
|
|
|
-func TestCLISwarmUpEncrypted(t *testing.T) {
|
|
|
- if runtime.GOOS == "windows" {
|
|
|
- t.Skip()
|
|
|
- }
|
|
|
- testCLISwarmUp(true, t)
|
|
|
+func testNoEncryption(t *testing.T) {
|
|
|
+ testDefault(false, t)
|
|
|
}
|
|
|
-func TestCLISwarmUpEncryptedRecursive(t *testing.T) {
|
|
|
- if runtime.GOOS == "windows" {
|
|
|
- t.Skip()
|
|
|
- }
|
|
|
- testCLISwarmUpRecursive(true, t)
|
|
|
+
|
|
|
+// testEncrypted tests that running 'swarm up --encrypted' makes the resulting file
|
|
|
+// available from all nodes via the HTTP API
|
|
|
+func testEncrypted(t *testing.T) {
|
|
|
+ testDefault(true, t)
|
|
|
}
|
|
|
|
|
|
-func testCLISwarmUp(toEncrypt bool, t *testing.T) {
|
|
|
- log.Info("starting 3 node cluster")
|
|
|
- cluster := newTestCluster(t, 3)
|
|
|
- defer cluster.Shutdown()
|
|
|
+func testRecursiveNoEncryption(t *testing.T) {
|
|
|
+ testRecursive(false, t)
|
|
|
+}
|
|
|
+
|
|
|
+func testRecursiveEncrypted(t *testing.T) {
|
|
|
+ testRecursive(true, t)
|
|
|
+}
|
|
|
|
|
|
+func testDefault(toEncrypt bool, t *testing.T) {
|
|
|
tmpFileName := testutil.TempFileWithContent(t, data)
|
|
|
defer os.Remove(tmpFileName)
|
|
|
|
|
|
@@ -182,11 +189,7 @@ func testCLISwarmUp(toEncrypt bool, t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func testCLISwarmUpRecursive(toEncrypt bool, t *testing.T) {
|
|
|
- fmt.Println("starting 3 node cluster")
|
|
|
- cluster := newTestCluster(t, 3)
|
|
|
- defer cluster.Shutdown()
|
|
|
-
|
|
|
+func testRecursive(toEncrypt bool, t *testing.T) {
|
|
|
tmpUploadDir, err := ioutil.TempDir("", "swarm-test")
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
@@ -253,7 +256,7 @@ func testCLISwarmUpRecursive(toEncrypt bool, t *testing.T) {
|
|
|
|
|
|
switch mode := fi.Mode(); {
|
|
|
case mode.IsRegular():
|
|
|
- if file, err := swarm.Open(path.Join(tmpDownload, v.Name())); err != nil {
|
|
|
+ if file, err := swarmapi.Open(path.Join(tmpDownload, v.Name())); err != nil {
|
|
|
t.Fatalf("encountered an error opening the file returned from the CLI: %v", err)
|
|
|
} else {
|
|
|
ff := make([]byte, len(data))
|
|
|
@@ -274,22 +277,16 @@ func testCLISwarmUpRecursive(toEncrypt bool, t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// TestCLISwarmUpDefaultPath tests swarm recursive upload with relative and absolute
|
|
|
+// testDefaultPathAll tests swarm recursive upload with relative and absolute
|
|
|
// default paths and with encryption.
|
|
|
-func TestCLISwarmUpDefaultPath(t *testing.T) {
|
|
|
- if runtime.GOOS == "windows" {
|
|
|
- t.Skip()
|
|
|
- }
|
|
|
- testCLISwarmUpDefaultPath(false, false, t)
|
|
|
- testCLISwarmUpDefaultPath(false, true, t)
|
|
|
- testCLISwarmUpDefaultPath(true, false, t)
|
|
|
- testCLISwarmUpDefaultPath(true, true, t)
|
|
|
+func testDefaultPathAll(t *testing.T) {
|
|
|
+ testDefaultPath(false, false, t)
|
|
|
+ testDefaultPath(false, true, t)
|
|
|
+ testDefaultPath(true, false, t)
|
|
|
+ testDefaultPath(true, true, t)
|
|
|
}
|
|
|
|
|
|
-func testCLISwarmUpDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T) {
|
|
|
- srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil)
|
|
|
- defer srv.Close()
|
|
|
-
|
|
|
+func testDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T) {
|
|
|
tmp, err := ioutil.TempDir("", "swarm-defaultpath-test")
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
@@ -312,7 +309,7 @@ func testCLISwarmUpDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T
|
|
|
|
|
|
args := []string{
|
|
|
"--bzzapi",
|
|
|
- srv.URL,
|
|
|
+ cluster.Nodes[0].URL,
|
|
|
"--recursive",
|
|
|
"--defaultpath",
|
|
|
defaultPath,
|
|
|
@@ -329,7 +326,7 @@ func testCLISwarmUpDefaultPath(toEncrypt bool, absDefaultPath bool, t *testing.T
|
|
|
up.ExpectExit()
|
|
|
hash := matches[0]
|
|
|
|
|
|
- client := swarm.NewClient(srv.URL)
|
|
|
+ client := swarmapi.NewClient(cluster.Nodes[0].URL)
|
|
|
|
|
|
m, isEncrypted, err := client.DownloadManifest(hash)
|
|
|
if err != nil {
|