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