From 3232cf0c60c5c78c07e2fb08a505933d00d686e6 Mon Sep 17 00:00:00 2001 From: Silas Davis <silas@erisindustries.com> Date: Wed, 6 Jul 2016 17:32:31 +0100 Subject: [PATCH] fix RPC starting --- rpc/tendermint/test/common_test.go | 21 +++++++++++--------- rpc/tendermint/test/shared.go | 31 ++++++++++++++++-------------- test/fixtures/file_fixtures.go | 2 -- 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/rpc/tendermint/test/common_test.go b/rpc/tendermint/test/common_test.go index 871df79e..0c5ba609 100644 --- a/rpc/tendermint/test/common_test.go +++ b/rpc/tendermint/test/common_test.go @@ -3,33 +3,36 @@ package rpctest import ( "testing" "github.com/eris-ltd/eris-db/test/fixtures" - "os" "fmt" + "os" ) // Needs to be in a _test.go file to be picked up func TestMain(m *testing.M) { ffs := fixtures.NewFileFixtures("Eris-DB") defer ffs.RemoveAll() - fmt.Println("Defered!!") - initGlobalVariables(ffs) + err := initGlobalVariables(ffs) - if ffs.Error != nil { - panic(ffs.Error) + if err != nil { + panic(err) } saveNewPriv() // start a node - ready := make(chan struct{}) + ready := make(chan error) go newNode(ready) - <-ready + err = <-ready - returnValue := m.Run() + if err != nil { + panic(err) + } + returnValue := m.Run() + fmt.Println("foooooo", returnValue) - os.Exit(returnValue) + defer os.Exit(returnValue) } diff --git a/rpc/tendermint/test/shared.go b/rpc/tendermint/test/shared.go index b6044544..39b47367 100644 --- a/rpc/tendermint/test/shared.go +++ b/rpc/tendermint/test/shared.go @@ -40,47 +40,52 @@ var ( ) // initialize config and create new node -func initGlobalVariables(ffs *fixtures.FileFixtures) { +func initGlobalVariables(ffs *fixtures.FileFixtures) error { testConfigFile := ffs.AddFile("config.toml", defaultConfig) rootWorkDir = ffs.AddDir("rootWorkDir") rootDataDir := ffs.AddDir("rootDataDir") genesisFile := ffs.AddFile("rootWorkDir/genesis.json", defaultGenesis) + if ffs.Error != nil { + return ffs.Error + } + testConfig := viper.New() testConfig.SetConfigFile(testConfigFile) err := testConfig.ReadInConfig() if err != nil { - panic(err) + return err } chainID = testConfig.GetString("chain.assert_chain_id") rpcAddr := testConfig.GetString("erismint.tendermint_host") websocketAddr = rpcAddr + config.Tendermint.RpcLocalAddress = rpcAddr websocketEndpoint = "/websocket" consensusConfig, err := core.LoadModuleConfig(testConfig, rootWorkDir, rootDataDir, genesisFile, chainID, "consensus") if err != nil { - panic(err) + return err } managerConfig, err := core.LoadModuleConfig(testConfig, rootWorkDir, rootDataDir, genesisFile, chainID, "manager") if err != nil { - panic(err) + return err } testCore, err = core.NewCore("testCore", consensusConfig, managerConfig) - if err != nil { - panic(err) + return err } clients = map[string]rpcclient.Client{ "JSONRPC": rpcclient.NewClientURI(rpcAddr), "HTTP": rpcclient.NewClientJSONRPC(rpcAddr), } + return nil } // deterministic account generation, synced with genesis file in config/tendermint_test/config.go @@ -95,18 +100,16 @@ func makeUsers(n int) []*acm.PrivAccount { } // create a new node and sleep forever -func newNode(ready chan struct{}) { - testCore.NewGatewayTendermint(config) +func newNode(ready chan error) { // Run the RPC server. _, err := testCore.NewGatewayTendermint(config) - if err != nil { - panic("Could not create tendermint gateway for testing") - } - ready <- struct{}{} + ready <- err // Sleep forever - ch := make(chan struct{}) - <-ch + if err == nil { + ch := make(chan struct{}) + <-ch + } } func saveNewPriv() { diff --git a/test/fixtures/file_fixtures.go b/test/fixtures/file_fixtures.go index a17933e4..5c1da7be 100644 --- a/test/fixtures/file_fixtures.go +++ b/test/fixtures/file_fixtures.go @@ -4,7 +4,6 @@ import ( "github.com/docker/docker/pkg/ioutils" "path" "os" - "fmt" ) // FileFixtures writes files to a temporary location for use in testing. @@ -54,7 +53,6 @@ func (ffs *FileFixtures) AddDir(name string) string { // Cleans up the the temporary files (with fire) func (ffs *FileFixtures) RemoveAll() { - fmt.Println("cleanup!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") if err := os.RemoveAll(ffs.tempDir); err != nil { // Since we expect to be called from being deferred in a test it's // better if we panic here so that the caller finds -- GitLab