VOL-1774 Etcd Crash Handling

Change-Id: I1eeb726654c3972fd0a4fafae134607e5a810415
diff --git a/rw_core/core/grpc_nbi_api_handler_test.go b/rw_core/core/grpc_nbi_api_handler_test.go
index e9499e3..4acb8aa 100755
--- a/rw_core/core/grpc_nbi_api_handler_test.go
+++ b/rw_core/core/grpc_nbi_api_handler_test.go
@@ -69,6 +69,8 @@
 }
 
 func (nb *NBTest) startCore(inCompeteMode bool) {
+	ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
+	defer cancel()
 	cfg := config.NewRWCoreFlags()
 	cfg.CorePairTopic = "rw_core"
 	cfg.DefaultRequestTimeout = nb.defaultTimeout.Nanoseconds() / 1000000 //TODO: change when Core changes to Duration
@@ -82,11 +84,14 @@
 	cfg.GrpcHost = "127.0.0.1"
 	setCoreCompeteMode(inCompeteMode)
 	client := setupKVClient(cfg, nb.coreInstanceID)
-	nb.core = NewCore(nb.coreInstanceID, cfg, client, nb.kClient)
-	nb.core.Start(context.Background())
+	nb.core = NewCore(ctx, nb.coreInstanceID, cfg, client, nb.kClient)
+	err = nb.core.Start(context.Background())
+	if err != nil {
+		log.Fatal("Cannot start core")
+	}
 }
 
-func (nb *NBTest) createAndregisterAdapters() {
+func (nb *NBTest) createAndregisterAdapters(t *testing.T) {
 	// Setup the mock OLT adapter
 	oltAdapter, err := createMockAdapter(OltAdapter, nb.kClient, nb.coreInstanceID, coreName, nb.oltAdapterName)
 	if err != nil {
@@ -103,7 +108,10 @@
 	}
 	types := []*voltha.DeviceType{{Id: nb.oltAdapterName, Adapter: nb.oltAdapterName, AcceptsAddRemoveFlowUpdates: true}}
 	deviceTypes := &voltha.DeviceTypes{Items: types}
-	nb.core.adapterMgr.registerAdapter(registrationData, deviceTypes)
+	if _, err := nb.core.adapterMgr.registerAdapter(registrationData, deviceTypes); err != nil {
+		log.Errorw("failed-to-register-adapter", log.Fields{"error": err})
+		assert.NotNil(t, err)
+	}
 
 	// Setup the mock ONU adapter
 	if _, err := createMockAdapter(OnuAdapter, nb.kClient, nb.coreInstanceID, coreName, nb.onuAdapterName); err != nil {
@@ -117,7 +125,10 @@
 	}
 	types = []*voltha.DeviceType{{Id: nb.onuAdapterName, Adapter: nb.onuAdapterName, AcceptsAddRemoveFlowUpdates: true}}
 	deviceTypes = &voltha.DeviceTypes{Items: types}
-	nb.core.adapterMgr.registerAdapter(registrationData, deviceTypes)
+	if _, err := nb.core.adapterMgr.registerAdapter(registrationData, deviceTypes); err != nil {
+		log.Errorw("failed-to-register-adapter", log.Fields{"error": err})
+		assert.NotNil(t, err)
+	}
 }
 
 func (nb *NBTest) stopAll() {
@@ -314,7 +325,7 @@
 	// Try to create a device with invalid data
 	_, err = nbi.CreateDevice(getContext(), &voltha.Device{Type: nb.oltAdapterName})
 	assert.NotNil(t, err)
-	assert.Equal(t, "No Device Info Present; MAC or HOSTIP&PORT", err.Error())
+	assert.Equal(t, "no-device-info-present; MAC or HOSTIP&PORT", err.Error())
 
 	// Ensure we only have 1 device in the Core
 	devices, err := nbi.ListDevices(getContext(), &empty.Empty{})
@@ -477,7 +488,7 @@
 	nb.testCoreWithoutData(t, nbi)
 
 	// Create/register the adapters
-	nb.createAndregisterAdapters()
+	nb.createAndregisterAdapters(t)
 
 	// 2. Test adapter registration
 	nb.testAdapterRegistration(t, nbi)