aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/api/config_test.go
diff options
context:
space:
mode:
authorholisticode <holistic.computing@gmail.com>2017-12-12 05:56:06 +0800
committerFelix Lange <fjl@users.noreply.github.com>2017-12-12 05:56:06 +0800
commit32516c768ec09e2a71cab5983d2c8b8ae5d92fc7 (patch)
tree9f02126fd6f219163776ad1ab8a8b924a32811a4 /swarm/api/config_test.go
parent1a32bdf92cceb7a42e5636e12d95609e17b8f786 (diff)
downloadgo-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.tar
go-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.tar.gz
go-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.tar.bz2
go-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.tar.lz
go-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.tar.xz
go-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.tar.zst
go-tangerine-32516c768ec09e2a71cab5983d2c8b8ae5d92fc7.zip
cmd/swarm: add config file (#15548)
This commit adds a TOML configuration option to swarm. It reuses the TOML configuration structure used in geth with swarm customized items. The commit: * Adds a "dumpconfig" command to the swarm executable which allows printing the (default) configuration to stdout, which then can be redirected to a file in order to customize it. * Adds a "--config <file>" option to the swarm executable which will allow to load a configuration file in TOML format from the specified location in order to initialize the Swarm node The override priorities are like follows: environment variables override command line arguments override config file override default config.
Diffstat (limited to 'swarm/api/config_test.go')
-rw-r--r--swarm/api/config_test.go116
1 files changed, 30 insertions, 86 deletions
diff --git a/swarm/api/config_test.go b/swarm/api/config_test.go
index 85d056270..2e03a610e 100644
--- a/swarm/api/config_test.go
+++ b/swarm/api/config_test.go
@@ -17,109 +17,53 @@
package api
import (
- "io/ioutil"
- "os"
- "path/filepath"
- "strings"
+ "reflect"
"testing"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
)
-var (
- hexprvkey = "65138b2aa745041b372153550584587da326ab440576b2a1191dd95cee30039c"
- defaultConfig = `{
- "ChunkDbPath": "` + filepath.Join("TMPDIR", "chunks") + `",
- "DbCapacity": 5000000,
- "CacheCapacity": 5000,
- "Radius": 0,
- "Branches": 128,
- "Hash": "SHA3",
- "CallInterval": 3000000000,
- "KadDbPath": "` + filepath.Join("TMPDIR", "bzz-peers.json") + `",
- "MaxProx": 8,
- "ProxBinSize": 2,
- "BucketSize": 4,
- "PurgeInterval": 151200000000000,
- "InitialRetryInterval": 42000000,
- "MaxIdleInterval": 42000000000,
- "ConnRetryExp": 2,
- "Swap": {
- "BuyAt": 20000000000,
- "SellAt": 20000000000,
- "PayAt": 100,
- "DropAt": 10000,
- "AutoCashInterval": 300000000000,
- "AutoCashThreshold": 50000000000000,
- "AutoDepositInterval": 300000000000,
- "AutoDepositThreshold": 50000000000000,
- "AutoDepositBuffer": 100000000000000,
- "PublicKey": "0x045f5cfd26692e48d0017d380349bcf50982488bc11b5145f3ddf88b24924299048450542d43527fbe29a5cb32f38d62755393ac002e6bfdd71b8d7ba725ecd7a3",
- "Contract": "0x0000000000000000000000000000000000000000",
- "Beneficiary": "0x0d2f62485607cf38d9d795d93682a517661e513e"
- },
- "RequestDbPath": "` + filepath.Join("TMPDIR", "requests") + `",
- "RequestDbBatchSize": 512,
- "KeyBufferSize": 1024,
- "SyncBatchSize": 128,
- "SyncBufferSize": 128,
- "SyncCacheSize": 1024,
- "SyncPriorities": [
- 2,
- 1,
- 1,
- 0,
- 0
- ],
- "SyncModes": [
- true,
- true,
- true,
- true,
- false
- ],
- "Path": "TMPDIR",
- "ListenAddr": "127.0.0.1",
- "Port": "8500",
- "PublicKey": "0x045f5cfd26692e48d0017d380349bcf50982488bc11b5145f3ddf88b24924299048450542d43527fbe29a5cb32f38d62755393ac002e6bfdd71b8d7ba725ecd7a3",
- "BzzKey": "0xe861964402c0b78e2d44098329b8545726f215afa737d803714a4338552fcb81",
- "EnsRoot": "0x112234455c3a32fd11230c42e7bccd4a84e02010",
- "NetworkId": 323
-}`
-)
+func TestConfig(t *testing.T) {
-func TestConfigWriteRead(t *testing.T) {
- tmp, err := ioutil.TempDir(os.TempDir(), "bzz-test")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmp)
+ var hexprvkey = "65138b2aa745041b372153550584587da326ab440576b2a1191dd95cee30039c"
prvkey, err := crypto.HexToECDSA(hexprvkey)
if err != nil {
t.Fatalf("failed to load private key: %v", err)
}
- orig, err := NewConfig(tmp, common.Address{}, prvkey, 323)
- if err != nil {
- t.Fatalf("expected no error, got %v", err)
+
+ one := NewDefaultConfig()
+ two := NewDefaultConfig()
+
+ if equal := reflect.DeepEqual(one, two); equal == false {
+ t.Fatal("Two default configs are not equal")
}
- data, err := ioutil.ReadFile(filepath.Join(orig.Path, "config.json"))
- if err != nil {
- t.Fatalf("default config file cannot be read: %v", err)
+
+ one.Init(prvkey)
+
+ //the init function should set the following fields
+ if one.BzzKey == "" {
+ t.Fatal("Expected BzzKey to be set")
}
- exp := strings.Replace(defaultConfig, "TMPDIR", orig.Path, -1)
- exp = strings.Replace(exp, "\\", "\\\\", -1)
- if string(data) != exp {
- t.Fatalf("default config mismatch:\nexpected: %v\ngot: %v", exp, string(data))
+ if one.PublicKey == "" {
+ t.Fatal("Expected PublicKey to be set")
}
- conf, err := NewConfig(tmp, common.Address{}, prvkey, 323)
- if err != nil {
- t.Fatalf("expected no error, got %v", err)
+ //the Init function should append subdirs to the given path
+ if one.Swap.PayProfile.Beneficiary == (common.Address{}) {
+ t.Fatal("Failed to correctly initialize SwapParams")
}
- if conf.Swap.Beneficiary.Hex() != orig.Swap.Beneficiary.Hex() {
- t.Fatalf("expected beneficiary from loaded config %v to match original %v", conf.Swap.Beneficiary.Hex(), orig.Swap.Beneficiary.Hex())
+
+ if one.SyncParams.RequestDbPath == one.Path {
+ t.Fatal("Failed to correctly initialize SyncParams")
}
+ if one.HiveParams.KadDbPath == one.Path {
+ t.Fatal("Failed to correctly initialize HiveParams")
+ }
+
+ if one.StoreParams.ChunkDbPath == one.Path {
+ t.Fatal("Failed to correctly initialize StoreParams")
+ }
}