From a5c0f67c8c3b6f639a539b5e5f8850a7a7e89ecf Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow Date: Fri, 12 Sep 2014 04:20:46 -0700 Subject: [PATCH 1/2] fix(config) failing test also replace *Datastore with Datastore --- cmd/ipfs/init.go | 2 +- config/config.go | 2 +- config/config_test.go | 11 ++++++++--- core/core_test.go | 18 +++++++++--------- core/datastore.go | 7 ++++--- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/cmd/ipfs/init.go b/cmd/ipfs/init.go index 839ee2c9d1b..88a8c1ba04d 100644 --- a/cmd/ipfs/init.go +++ b/cmd/ipfs/init.go @@ -43,7 +43,7 @@ func initCmd(c *commander.Command, inp []string) error { } cfg := new(config.Config) - cfg.Datastore = new(config.Datastore) + cfg.Datastore = config.Datastore{} dspath, err := u.TildeExpansion("~/.go-ipfs/datastore") if err != nil { return err diff --git a/config/config.go b/config/config.go index 76088da1f0e..25f40ec9ee6 100644 --- a/config/config.go +++ b/config/config.go @@ -30,7 +30,7 @@ type SavedPeer struct { // Config is used to load IPFS config files. type Config struct { Identity *Identity - Datastore *Datastore + Datastore Datastore Peers []*SavedPeer } diff --git a/config/config_test.go b/config/config_test.go index ffc7ef7af19..edbc1c76401 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -6,12 +6,17 @@ import ( ) func TestConfig(t *testing.T) { - - cfg, err := Load(".ipfsconfig") + const filename = ".ipfsconfig" + cfgWritten := new(Config) + err := WriteConfigFile(filename, cfgWritten) + if err != nil { + t.Error(err) + } + cfgRead, err := Load(filename) if err != nil { t.Error(err) return } - fmt.Printf(cfg.Datastore.Path) + fmt.Printf(cfgRead.Datastore.Path) } diff --git a/core/core_test.go b/core/core_test.go index c3c7474c280..c6695eb6b63 100644 --- a/core/core_test.go +++ b/core/core_test.go @@ -7,23 +7,23 @@ import ( ) func TestInitialization(t *testing.T) { - id := &config.Identity { - PeerID: "QmNgdzLieYi8tgfo2WfTUzNVH5hQK9oAYGVf6dxN12NrHt", + id := &config.Identity{ + PeerID: "QmNgdzLieYi8tgfo2WfTUzNVH5hQK9oAYGVf6dxN12NrHt", Address: "/ip4/127.0.0.1/tcp/8000", PrivKey: "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", } good := []*config.Config{ - &config.Config { + &config.Config{ Identity: id, - Datastore: &config.Datastore{ + Datastore: config.Datastore{ Type: "memory", }, }, - &config.Config { + &config.Config{ Identity: id, - Datastore: &config.Datastore { + Datastore: config.Datastore{ Type: "leveldb", Path: ".testdb", }, @@ -31,10 +31,10 @@ func TestInitialization(t *testing.T) { } bad := []*config.Config{ - &config.Config{Identity: id, Datastore: &config.Datastore{}}, - &config.Config{Identity: id, Datastore: &config.Datastore{Type: "badtype"}}, + &config.Config{Identity: id, Datastore: config.Datastore{}}, + &config.Config{Identity: id, Datastore: config.Datastore{Type: "badtype"}}, &config.Config{}, - &config.Config{Datastore: &config.Datastore{Type: "memory"}}, + &config.Config{Datastore: config.Datastore{Type: "memory"}}, nil, } diff --git a/core/datastore.go b/core/datastore.go index 5395e74a4a8..9105adaabeb 100644 --- a/core/datastore.go +++ b/core/datastore.go @@ -2,13 +2,14 @@ package core import ( "fmt" + ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go" lds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go/leveldb" config "github.com/jbenet/go-ipfs/config" ) -func makeDatastore(cfg *config.Datastore) (ds.Datastore, error) { - if cfg == nil || len(cfg.Type) == 0 { +func makeDatastore(cfg config.Datastore) (ds.Datastore, error) { + if len(cfg.Type) == 0 { return nil, fmt.Errorf("config datastore.type required") } @@ -22,7 +23,7 @@ func makeDatastore(cfg *config.Datastore) (ds.Datastore, error) { return nil, fmt.Errorf("Unknown datastore type: %s", cfg.Type) } -func makeLevelDBDatastore(cfg *config.Datastore) (ds.Datastore, error) { +func makeLevelDBDatastore(cfg config.Datastore) (ds.Datastore, error) { if len(cfg.Path) == 0 { return nil, fmt.Errorf("config datastore.path required for leveldb") } From 2e512e81c92b44ba6a4a86b36b9de8dd35f7dc53 Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow Date: Fri, 12 Sep 2014 04:36:07 -0700 Subject: [PATCH 2/2] test(config) add path assertion --- config/config_test.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/config/config_test.go b/config/config_test.go index edbc1c76401..c891d6c514b 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -1,13 +1,14 @@ package config import ( - "fmt" "testing" ) func TestConfig(t *testing.T) { const filename = ".ipfsconfig" + const dsPath = "/path/to/datastore" cfgWritten := new(Config) + cfgWritten.Datastore.Path = dsPath err := WriteConfigFile(filename, cfgWritten) if err != nil { t.Error(err) @@ -17,6 +18,7 @@ func TestConfig(t *testing.T) { t.Error(err) return } - - fmt.Printf(cfgRead.Datastore.Path) + if cfgWritten.Datastore.Path != cfgRead.Datastore.Path { + t.Fail() + } }