Fixed bug in uppl module. 72/2172/1
authorShigeru Yasuda <s-yasuda@da.jp.nec.com>
Fri, 25 Oct 2013 17:03:28 +0000 (02:03 +0900)
committerShigeru Yasuda <s-yasuda@da.jp.nec.com>
Fri, 25 Oct 2013 17:03:28 +0000 (02:03 +0900)
  * itc_kt_boundary.cc, itc_kt_controller.cc
    Eliminate access to out-of-scoped local variable.
  * phy_util.c
    Fix bug that may cause buffer overrun.

In addition, this patch refines unit tests for uppl and upll coordinator
modules:

  * Provide build environment for coodinator module unit test, and use it.
    * Don't create any file in the source directory.
  * Remove destructive tests.
  * Remove so many unused local variables and functions.
  * Eliminate access to uninitialized memory.

Change-Id: Ib88363e2002d3aa7489ace81b651f14b237219a0
Signed-off-by: Shigeru Yasuda <s-yasuda@da.jp.nec.com>
97 files changed:
coordinator/modules/uppl/itc_kt_boundary.cc
coordinator/modules/uppl/itc_kt_controller.cc
coordinator/modules/uppl/phy_util.cc
coordinator/test/modules/defs.mk [new file with mode: 0644]
coordinator/test/modules/rules.mk [new file with mode: 0644]
coordinator/test/modules/upll/ut/Makefile
coordinator/test/modules/upll/ut/stub/Makefile [deleted file]
coordinator/test/modules/upll/ut/stub/capa_module/Makefile [deleted file]
coordinator/test/modules/upll/ut/stub/capa_module/capa_intf.hh [deleted file]
coordinator/test/modules/upll/ut/stub/capa_module/capa_module_stub.cc
coordinator/test/modules/upll/ut/stub/capa_module/capa_module_stub.hh
coordinator/test/modules/upll/ut/stub/capa_module/momgr_intf_stub.hh
coordinator/test/modules/upll/ut/stub/dal/Makefile [deleted file]
coordinator/test/modules/upll/ut/stub/dal/dal_bind_info.cc
coordinator/test/modules/upll/ut/stub/dal/dal_bind_info.hh
coordinator/test/modules/upll/ut/stub/dal/dal_cursor.hh
coordinator/test/modules/upll/ut/stub/dal/dal_dml_intf.hh
coordinator/test/modules/upll/ut/stub/dal/dal_odbc_mgr.cc
coordinator/test/modules/upll/ut/stub/dal/dal_odbc_mgr.hh
coordinator/test/modules/upll/ut/stub/dal/dal_schema.cc
coordinator/test/modules/upll/ut/stub/dal/dal_schema.hh
coordinator/test/modules/upll/ut/stub/dal/include/dal_bind_column_info.hh [deleted file]
coordinator/test/modules/upll/ut/stub/dal/include/dal_conn_intf.hh [deleted file]
coordinator/test/modules/upll/ut/stub/dal/include/dal_defines.hh [deleted file]
coordinator/test/modules/upll/ut/stub/dal/include/dal_dml_intf.hh [deleted file]
coordinator/test/modules/upll/ut/stub/dal/include/dal_schema.hh [deleted file]
coordinator/test/modules/upll/ut/stub/include/VrtIfstub.hh [deleted file]
coordinator/test/modules/upll/ut/stub/include/core_include/pfc/ipc_client.h
coordinator/test/modules/upll/ut/stub/include/cxx/pfcxx/ipc_client.hh
coordinator/test/modules/upll/ut/stub/include/cxx/pfcxx/ipc_server.hh
coordinator/test/modules/upll/ut/stub/include/cxx/pfcxx/module.hh
coordinator/test/modules/upll/ut/stub/include/stub_momgr.hh [deleted file]
coordinator/test/modules/upll/ut/stub/include/uncxx/alarm.hh [deleted file]
coordinator/test/modules/upll/ut/stub/ipc_client_server/Makefile [deleted file]
coordinator/test/modules/upll/ut/stub/ipc_client_server/module.cc [deleted file]
coordinator/test/modules/upll/ut/stub/misc/alarm.cc [moved from coordinator/test/modules/upll/ut/stub/ipc_client_server/alarm.cc with 97% similarity]
coordinator/test/modules/upll/ut/stub/misc/ipc_client.cc [moved from coordinator/test/modules/upll/ut/stub/ipc_client_server/ipc_client.cc with 100% similarity]
coordinator/test/modules/upll/ut/stub/misc/ipc_server.cc [moved from coordinator/test/modules/upll/ut/stub/ipc_client_server/ipc_server.cc with 100% similarity]
coordinator/test/modules/upll/ut/stub/misc/module.cc [new file with mode: 0644]
coordinator/test/modules/upll/ut/stub/tclib_module/Makefile [deleted file]
coordinator/test/modules/upll/ut/stub/tclib_module/tclib_module.cc
coordinator/test/modules/upll/ut/stub/tclib_module/tclib_module.hh
coordinator/test/modules/upll/ut/stub/tclib_module/tclib_struct_defs.hh [deleted file]
coordinator/test/modules/upll/ut/ut_stub.h [new file with mode: 0644]
coordinator/test/modules/upll/ut/ut_util.hh [new file with mode: 0644]
coordinator/test/modules/upll/ut/util.cc [new file with mode: 0644]
coordinator/test/modules/upll/ut/vbr_if_momgr_ut.cc
coordinator/test/modules/upll/ut/vbr_momgr_ut.cc
coordinator/test/modules/upll/ut/vtn_momgr_ut.cc
coordinator/test/modules/uppl/utest/Boundary_ut.cc
coordinator/test/modules/uppl/utest/Controller_ut.cc
coordinator/test/modules/uppl/utest/Domain_ut.cc
coordinator/test/modules/uppl/utest/Link_ut.cc [moved from coordinator/test/modules/uppl/utest/KtLink_ut.cc with 67% similarity]
coordinator/test/modules/uppl/utest/LogicalMemberPort_ut.cc [moved from coordinator/test/modules/uppl/utest/KtLogicalMemberPort_ut.cc with 72% similarity]
coordinator/test/modules/uppl/utest/LogicalPort_ut.cc [moved from coordinator/test/modules/uppl/utest/KtLogicalPort_ut.cc with 75% similarity]
coordinator/test/modules/uppl/utest/Makefile
coordinator/test/modules/uppl/utest/PhysicalLayerStub.cc
coordinator/test/modules/uppl/utest/PhysicalLayerStub.hh
coordinator/test/modules/uppl/utest/Port_ut.cc [moved from coordinator/test/modules/uppl/utest/KtPort.cc with 67% similarity]
coordinator/test/modules/uppl/utest/Switch_ut.cc [moved from coordinator/test/modules/uppl/utest/ut_switch.cc with 57% similarity]
coordinator/test/modules/uppl/utest/stub/Makefile [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/Makefile [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_common.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_db_tableschema.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_mgr.hh
coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_common.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_db_tableschema.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_mgr.cc [deleted file]
coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_mgr_stub.cc [new file with mode: 0644]
coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_utils_stub.cc
coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_utils_stub.hh
coordinator/test/modules/uppl/utest/stub/ODBC/physical_common_def.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/clstat/clstat_api.h
coordinator/test/modules/uppl/utest/stub/clstat/event.c [deleted file]
coordinator/test/modules/uppl/utest/stub/clstat/event.h [deleted file]
coordinator/test/modules/uppl/utest/stub/include/VrtIfstub.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/include/core_include/pfc/ipc_client.h
coordinator/test/modules/uppl/utest/stub/include/core_include/pfc/module.h [deleted file]
coordinator/test/modules/uppl/utest/stub/include/cxx/pfcxx/ipc_client.hh
coordinator/test/modules/uppl/utest/stub/include/cxx/pfcxx/ipc_server.hh
coordinator/test/modules/uppl/utest/stub/include/cxx/pfcxx/module.hh
coordinator/test/modules/uppl/utest/stub/include/stub_momgr.hh [deleted file]
coordinator/test/modules/uppl/utest/stub/ipc_client_server/Makefile [deleted file]
coordinator/test/modules/uppl/utest/stub/ipc_client_server/_cfdef_uppl_ctr_capability.c [deleted file]
coordinator/test/modules/uppl/utest/stub/ipc_client_server/ipc_client.cc [deleted file]
coordinator/test/modules/uppl/utest/stub/ipc_client_server/module.cc [deleted file]
coordinator/test/modules/uppl/utest/stub/misc/alarm.cc [moved from coordinator/test/modules/uppl/utest/stub/ipc_client_server/alarm.cc with 100% similarity]
coordinator/test/modules/uppl/utest/stub/misc/ipc_client.cc [new file with mode: 0644]
coordinator/test/modules/uppl/utest/stub/misc/ipc_server.cc [moved from coordinator/test/modules/uppl/utest/stub/ipc_client_server/ipc_server.cc with 100% similarity]
coordinator/test/modules/uppl/utest/stub/misc/module.cc [new file with mode: 0644]
coordinator/test/modules/uppl/utest/stub/tclib_module/Makefile [deleted file]
coordinator/test/modules/uppl/utest/stub/tclib_module/tclib_module.cc
coordinator/test/modules/uppl/utest/stub/tclib_module/tclib_module.hh
coordinator/test/modules/uppl/utest/stub/tclib_module/tclib_struct_defs.hh [deleted file]
coordinator/test/modules/uppl/utest/ut_stub.h [new file with mode: 0644]
coordinator/test/modules/uppl/utest/ut_util.hh [new file with mode: 0644]
coordinator/test/modules/uppl/utest/util.cc [new file with mode: 0644]

index 28728b0425cca838374b5ea43aa70edb347150db..622d8c51200250257f6d22f707ea69208e26794b 100644 (file)
@@ -377,9 +377,10 @@ UpplReturnCode Kt_Boundary::ReadInternal(OdbcmConnectionHandler *db_conn,
   }
   void *key_struct = boundary_key[0];
   void *val_struct = NULL;
+  val_boundary_st_t st_boundary_val;
   if (!boundary_val.empty()) {
-    val_boundary_st_t st_boundary_val =
-        *(reinterpret_cast<val_boundary_st_t *> (boundary_val[0]));
+    st_boundary_val =
+      *(reinterpret_cast<val_boundary_st_t *> (boundary_val[0]));
     val_struct = reinterpret_cast<void *>(&st_boundary_val.boundary);
   }
 
index 5f863cfbc517dc67a2c8c60683b7a4edd9620890..9c482e02ccecb72849a37394817b93d84c07ddf9 100644 (file)
@@ -595,8 +595,9 @@ UpplReturnCode Kt_Controller::ReadInternal(OdbcmConnectionHandler *db_conn,
   }
   void *key_struct = ctr_key[0];
   void *val_struct = NULL;
+  val_ctr_st_t st_ctr_val;
   if (!ctr_val.empty()) {
-    val_ctr_st_t st_ctr_val = *(reinterpret_cast<val_ctr_st_t *> (ctr_val[0]));
+    st_ctr_val = *(reinterpret_cast<val_ctr_st_t *> (ctr_val[0]));
     val_struct = reinterpret_cast<void *>(&st_ctr_val.controller);
   }
   // Get read response from database
index 5f06c8ec3caf8e2ef83a3a2fd8e2c167a7cea542..f885bb5856e3726fe5ae199e5351bf3899ca79a3 100644 (file)
@@ -21,6 +21,19 @@ using unc::uppl::PhysicalLayer;
 using unc::uppl::ODBCMUtils;
 using unc::uppl::ODBCMTableColumns;
 
+/*
+ * Set UINT8 value to the specified TableAttrSchema.
+ */
+#define TABLE_ATTR_SCHEMA_UINT8_SET(schema, len, str, bufsize)          \
+  do {                                                                  \
+    ColumnAttrValue <unsigned char[(bufsize)]> *__v=                    \
+      new ColumnAttrValue <unsigned char[(bufsize)]>;                   \
+    strncpy(reinterpret_cast<char *>(__v->value), (str).c_str(),        \
+            (bufsize));                                                 \
+    (schema).p_table_attribute_value = __v;                             \
+    (schema).table_attribute_length = (len);                            \
+  } while (0)
+
 /**getRespHeaderFromReqHeader
  * @Description : This function is for giving response to logical using
  *                serversession object
@@ -591,149 +604,71 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name, string attr_value,
       table_attr_schema.p_table_attribute_value = value;
       break;
     }
+
     case DATATYPE_IPV6:
-    {
-      ColumnAttrValue <unsigned char[16+1]> *value=
-          new ColumnAttrValue <unsigned char[16+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  16 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_2:
-    {
-      ColumnAttrValue <unsigned char[2+1]> *value=
-          new ColumnAttrValue <unsigned char[2+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  2 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_3:
-    {
-      ColumnAttrValue <unsigned char[3+1]> *value=
-          new ColumnAttrValue <unsigned char[3+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  3 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_6:
-    {
-      ColumnAttrValue <unsigned char[6+1]> *value=
-          new ColumnAttrValue <unsigned char[6+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  6 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_8:
-    {
-      ColumnAttrValue <unsigned char[8+1]> *value=
-          new ColumnAttrValue <unsigned char[8+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  8 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_9:
-    {
-      ColumnAttrValue <unsigned char[9+1]> *value=
-          new ColumnAttrValue <unsigned char[9+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  9 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_11:
-    {
-      ColumnAttrValue <unsigned char[11+1]> *value=
-          new ColumnAttrValue <unsigned char[11+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  11 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_16:
-    {
-      ColumnAttrValue <unsigned char[16+1]> *value=
-          new ColumnAttrValue <unsigned char[16+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  16 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_32:
-    {
-      ColumnAttrValue <unsigned char[32+1]> *value=
-          new ColumnAttrValue <unsigned char[32+1]>;
-      memset(value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  32 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_128:
-    {
-      ColumnAttrValue <unsigned char[128+1]> *value=
-          new ColumnAttrValue <unsigned char[128+1]>;
-      memset(value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  128 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_256:
-    {
-      ColumnAttrValue <unsigned char[256+1]> *value=
-          new ColumnAttrValue <unsigned char[256+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  256 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_257:
-    {
-      ColumnAttrValue <unsigned char[257+1]> *value=
-          new ColumnAttrValue <unsigned char[257+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  257 + 1);
       break;
-    }
+
     case DATATYPE_UINT8_ARRAY_320:
-    {
-      ColumnAttrValue <unsigned char[320+1]> *value=
-          new ColumnAttrValue <unsigned char[320+1]>;
-      memset(&value->value, '\0', sizeof(value->value));
-      memcpy(value->value,
-             attr_value.c_str(), attr_length+1);
-      table_attr_schema.p_table_attribute_value = value;
-      table_attr_schema.table_attribute_length = attr_length;
+      TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
+                                  320 + 1);
       break;
-    }
   }
   table_attr_schema.request_attribute_type = attr_type;
   vect_attr.push_back(table_attr_schema);
diff --git a/coordinator/test/modules/defs.mk b/coordinator/test/modules/defs.mk
new file mode 100644 (file)
index 0000000..33fdd49
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2013 NEC Corporation
+# All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+##
+## Common configurations to build unit tests for VTN Coordinator modules.
+## GTEST_SRCROOT must be defined in advance.
+##
+
+include $(GTEST_SRCROOT)/test/build/gtest-defs.mk
+
+MODULE_SRCROOT = $(GTEST_SRCROOT)/modules
+
+# Construct header include path.
+ifeq   ($(strip $(SUBARCH)),)
+CC_INCDIRS     = core/include/arch/$(ARCH)
+else   # !empty(SUBARCH)
+CC_INCDIRS     = core/include/arch/$(SUBARCH) core/include/arch/$(ARCH)
+endif  # empty(SUBARCH)
+
+CC_INCDIRS     += core/include/os/$(OSTYPE) core/include
+CC_INCDIRS_PREP        = $(UT_INCDIRS_PREP) $(UNC_INCDIRS) $(CORE_EXP_INCDIR)
+
+CXX_INCDIRS    = core/include/cxx
+
+CXX_INCLUDES   = $(UT_INCDIRS_PREP:%=-I%) $(UTXX_INCDIRS_PREP:%=-I%)
+CXX_INCLUDES   += $(CXX_INCDIRS:%=-I$(SRCROOT)/%) $(BOOST_INCDIR:%=-I%)
+CXX_INCLUDES   += $(EXTRA_CXX_INCDIRS:%=-I%)
diff --git a/coordinator/test/modules/rules.mk b/coordinator/test/modules/rules.mk
new file mode 100644 (file)
index 0000000..e38681f
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2013 NEC Corporation
+# All rights reserved.
+# 
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+##
+## Common rules to build unit tests for VTN Coordinator modules.
+## defs.mk must be included in advance.
+##
+
+ALT_CFDEF_NAMES        = $(notdir $(ALT_CFDEF_FILES))
+CFDEF_SOURCES  += $(ALT_CFDEF_NAMES:%.cfdef=$(OBJDIR)/$(CFDEF_PREFIX)%.c)
+CFDEF_DEPFILES += $(ALT_CFDEF_NAMES:%=$(OBJ_DEPDIR)/%.d)
+OBJECTS                += $(ALT_CFDEF_NAMES:%.cfdef=$(CFDEF_PREFIX)%.o)
+
+include $(GTEST_BLDDIR)/gtest-rules.mk
+
+# Define rules to build source files under ALT_SRCDIRS.
+define COMPILE_TEMPLATE
+$$(OBJDIR)/%.o $$(OBJ_CMDDIR)/%.cc.cmd:        $(1)/%.cc FRC
+       @$$(call CMD_EXECUTE,CXX_O,$$(OBJ_CMDDIR)/$$*.cc.cmd,$$?)
+endef
+
+$(foreach dir,$(ALT_SRCDIRS),$(eval $(call COMPILE_TEMPLATE,$(dir))))
+
+# Define rules to compile cfdef files in ALT_CFDEF_FILES.
+ALT_CFDEF_DIRS = $(sort $(dir $(ALT_CFDEF_FILES)))
+
+define CFDEF_TEMPLATE
+$$(OBJDIR)/$$(CFDEF_PREFIX)%.c $$(OBJ_CMDDIR)/%.cfdef.cmd:     $(1)%.cfdef FRC
+       @$$(call CMD_EXECUTE,CFDEF_C,$$(OBJ_CMDDIR)/$$*.cfdef.cmd,$$?)
+endef
+
+$(foreach dir,$(ALT_CFDEF_DIRS),$(eval $(call CFDEF_TEMPLATE,$(dir))))
index c90e09b14e3814d7cd45900dfabeac157313a4ad..54990afe3622bef108406238826f82f7faefd87e 100644 (file)
 ## Makefile that run the unit tests for UPLL.
 ##
 
-
-GTEST_SRCROOT = ../../../../modules
-
-CPPFLAGS  +=  
-
-INCLUDE = -Iinclude \
-                                       -Istub/include \
-                                       -Istub/include/cxx \
-                                       -Istub/include/cxx/pfcxx \
-                                       -Istub/include/core_include \
-                                       -Istub \
-                                       -Istub/tclib_module \
-                                       -Istub/capa_module \
-                                       -I$(GTEST_SRCROOT)/capa/include \
-                                       -Istub/dal \
-                                       -Istub/dal/include \
-                                       -I$(GTEST_SRCROOT)/upll \
-                                       -I$(GTEST_SRCROOT)/dal/ \
-                                       -I$(GTEST_SRCROOT) \
-                                       -I$(GTEST_SRCROOT)/../dist/target/objs/include \
-                                       -I$(GTEST_SRCROOT)/../dist/target/objs/core_include \
-                                       -I$(GTEST_SRCROOT)/../dist/target/objs/core/include \
-                                       -I$(GTEST_SRCROOT)/../core/include \
-                                       -I$(GTEST_SRCROOT)/../core/include/cxx \
-                                       -I$(GTEST_SRCROOT)/../include/ \
-                                       -I$(GTEST_SRCROOT)/../include/pfcapi/pfcapi_generic/ \
-                                       -I$(GTEST_SRCROOT)/../include/unc \
-                                       -I$(GTEST_SRCROOT)/upll/include \
-                                       -I$(GTEST_SRCROOT) \
-                                       -I$(GTEST_SRCROOT)/../test/modules/upll/ut \
-                                       -I$(GTEST_SRCROOT)/alarm/include\
-        
-
-CXXFLAGS += -g -fprofile-arcs -ftest-coverage -Dprivate=public -Dprotected=public
-
-SOURCE_FILES = $(GTEST_SRCROOT)/upll/ipc_util.cc \
-                                                        $(GTEST_SRCROOT)/upll/ipct_st.cc  \
-                                                        $(GTEST_SRCROOT)/upll/config_mgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/ctrlr_mgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/key_tree.cc \
-                                                        $(GTEST_SRCROOT)/upll/tclib_intf_impl.cc \
-                                                        $(GTEST_SRCROOT)/upll/momgr_intf.cc \
-                                                        $(GTEST_SRCROOT)/upll/momgr_impl.cc \
-                                                        $(GTEST_SRCROOT)/upll/tx_mgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/config_lock.cc \
-                                                        $(GTEST_SRCROOT)/upll/kt_util.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtn_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_if_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vlanmap_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/nwm_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/nwm_host_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/iproute_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/dhcprelay_if_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/dhcprelay_server_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vrt_if_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vunk_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vunk_if_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vnode_child_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/momgr_util.cc \
-                                                        $(GTEST_SRCROOT)/upll/vnode_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/read_bulk.cc \
-                                                        $(GTEST_SRCROOT)/upll/vlink_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vrt_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtn_flowfilter_entry_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtn_flowfilter_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/flowlist_entry_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/flowlist_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/policingprofile_entry_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/policingprofile_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_flowfilter_entry_momgr.cc\
-                                                        $(GTEST_SRCROOT)/upll/vbr_flowfilter_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_if_flowfilter_entry_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_if_flowfilter_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_if_policingmap_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vbr_policingmap_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vrt_if_flowfilter_entry_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vrt_if_flowfilter_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtn_policingmap_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtep_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtep_if_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtep_grp_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtepgrp_mem_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtunnel_momgr.cc \
-                                                        $(GTEST_SRCROOT)/upll/vtunnel_if_momgr.cc \
-
-
-SRC_OBJS = $(patsubst $(GTEST_SRCROOT)/upll/%.cc,$(OBJSDIR)/upll/%.o,$(SOURCE_FILES))
-
-UNITTEST_FILES = vbr_if_momgr_ut.cc vtn_momgr_ut.cc vbr_momgr_ut.cc 
-
-OBJSDIR = objs
-
-UT_OBJS_DIR = objs/ut
-UPLL_OBJS_DIR = objs/upll
-
-EXEC_NAME =  vbr_if_momgr_ut vbr_momgr_ut vtn_momgr_ut 
-
-UT_LIBS = -L$(GTEST_SRCROOT)/../dist/target/objs/ldlibs -lpthread -lpfc_util -lgtest_main $(UT_OBJS_DIR)/upll_ut.a ./stub/stub_objs/stub.a ./stub/stub_objs/stub.a -lgcov
-
-LD_LIBRARY_PATH= $(GTEST_SRCROOT)/../dist/target/objs/ldlibs
-export LD_LIBRARY_PATH
-.NOTPARALLEL: createobjsupll createobjsut stub upll_lib ut_exe
-all  : createobjsupll createobjsut stub upll_lib ut_exe
-test : 
-                       ./vtn_momgr_ut
-                       ./vbr_momgr_ut
-               ./vbr_if_momgr_ut       
-clean :
-       @(cd $(OBJSDIR)/ut/;  rm -f upll_ut.a *.o *.gcno *.gcov *.gcda);
-       @(cd $(OBJSDIR)/upll/;  rm -f *.o *.gcno *.gcov *.gcda);
-       @(cd ./stub/; $(MAKE) clean);
-       rm -f $(EXEC_NAME) *.gcov
-
-
-UT_OBJS = $(patsubst %.cc,$(OBJSDIR)/ut/%.o,$(UNITTEST_FILES))
-
-$(SRC_OBJS): $(OBJSDIR)/upll/%.o : $(GTEST_SRCROOT)/upll/%.cc 
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-$(UT_OBJS): $(OBJSDIR)/ut/%.o : %.cc
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-createobjsupll:
-       mkdir -p $(UPLL_OBJS_DIR)
-
-createobjsut:
-       mkdir -p $(UT_OBJS_DIR)
-
-stub:
-       @echo "****** Invoking stub makefile"
-       @($(MAKE) -C ./stub/ );
-
-.PHONY: stub upll_lib \
-
-upll_lib : $(UT_OBJS_DIR)/upll_ut.a
-
-$(UT_OBJS_DIR)/upll_ut.a : $(SRC_OBJS)
-               $(AR) $(ARFLAGS) $@ $^
-
-compile_ut:$(UT_OBJS)
-
-ut_exe : $(EXEC_NAME)
-
-vtn_momgr_ut : $(UT_OBJS_DIR)/vtn_momgr_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-vbr_momgr_ut : $(UT_OBJS_DIR)/vbr_momgr_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-vbr_if_momgr_ut : $(UT_OBJS_DIR)/vbr_if_momgr_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-
-install: all
+GTEST_SRCROOT  := ../../../..
+include ../../defs.mk
+
+EXEC_NAME      :=  upll_ut
+
+TCLIB_STUBDIR  = stub/tclib_module
+CAPA_STUBDIR   = stub/capa_module
+DAL_STUBDIR    = stub/dal
+MISC_STUBDIR   = stub/misc
+
+UPLL_SRCDIR    = $(MODULE_SRCROOT)/upll
+CAPA_SRCDIR    = $(MODULE_SRCROOT)/capa
+DAL_SRCDIR     = $(MODULE_SRCROOT)/dal
+TCLIB_SRCDIR   = $(MODULE_SRCROOT)/tclib
+ALARM_SRCDIR   = $(MODULE_SRCROOT)/alarm
+
+# Define a list of directories that contain source files.
+ALT_SRCDIRS    = $(UPLL_SRCDIR) $(CAPA_STUBDIR) $(DAL_STUBDIR)
+ALT_SRCDIRS    += $(TCLIB_STUBDIR) $(MISC_STUBDIR)
+
+UT_INCDIRS_PREP                = stub/include stub/include/core_include
+
+UTXX_INCDIRS_PREP      = $(TCLIB_STUBDIR)
+UTXX_INCDIRS_PREP      += $(CAPA_STUBDIR)
+UTXX_INCDIRS_PREP      += $(DAL_STUBDIR)
+UTXX_INCDIRS_PREP      += $(DAL_STUBDIR)/include
+
+EXTRA_CXX_INCDIRS      = $(MODULE_SRCROOT)
+EXTRA_CXX_INCDIRS      += $(CAPA_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(UPLL_SRCDIR)
+EXTRA_CXX_INCDIRS      += $(UPLL_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(DAL_SRCDIR)
+EXTRA_CXX_INCDIRS      += $(TCLIB_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(ALARM_SRCDIR)/include
+
+CPPFLAGS       += -include ut_stub.h
+
+UPLL_SOURCES   = ipc_util.cc
+UPLL_SOURCES   += ipct_st.cc 
+UPLL_SOURCES   += config_mgr.cc
+UPLL_SOURCES   += ctrlr_mgr.cc
+UPLL_SOURCES   += key_tree.cc
+UPLL_SOURCES   += tclib_intf_impl.cc
+UPLL_SOURCES   += momgr_intf.cc
+UPLL_SOURCES   += momgr_impl.cc
+UPLL_SOURCES   += tx_mgr.cc
+UPLL_SOURCES   += config_lock.cc
+UPLL_SOURCES   += kt_util.cc
+UPLL_SOURCES   += vtn_momgr.cc
+UPLL_SOURCES   += vbr_momgr.cc
+UPLL_SOURCES   += vbr_if_momgr.cc
+UPLL_SOURCES   += vlanmap_momgr.cc
+UPLL_SOURCES   += nwm_momgr.cc
+UPLL_SOURCES   += nwm_host_momgr.cc
+UPLL_SOURCES   += iproute_momgr.cc
+UPLL_SOURCES   += dhcprelay_if_momgr.cc
+UPLL_SOURCES   += dhcprelay_server_momgr.cc
+UPLL_SOURCES   += vrt_if_momgr.cc
+UPLL_SOURCES   += vunk_momgr.cc
+UPLL_SOURCES   += vunk_if_momgr.cc
+UPLL_SOURCES   += vnode_child_momgr.cc
+UPLL_SOURCES   += momgr_util.cc
+UPLL_SOURCES   += vnode_momgr.cc
+UPLL_SOURCES   += read_bulk.cc
+UPLL_SOURCES   += vlink_momgr.cc
+UPLL_SOURCES   += vrt_momgr.cc
+UPLL_SOURCES   += vtn_flowfilter_entry_momgr.cc
+UPLL_SOURCES   += vtn_flowfilter_momgr.cc
+UPLL_SOURCES   += flowlist_entry_momgr.cc
+UPLL_SOURCES   += flowlist_momgr.cc
+UPLL_SOURCES   += policingprofile_entry_momgr.cc
+UPLL_SOURCES   += policingprofile_momgr.cc
+UPLL_SOURCES   += vbr_flowfilter_entry_momgr.cc
+UPLL_SOURCES   += vbr_flowfilter_momgr.cc
+UPLL_SOURCES   += vbr_if_flowfilter_entry_momgr.cc
+UPLL_SOURCES   += vbr_if_flowfilter_momgr.cc
+UPLL_SOURCES   += vbr_if_policingmap_momgr.cc
+UPLL_SOURCES   += vbr_policingmap_momgr.cc
+UPLL_SOURCES   += vrt_if_flowfilter_entry_momgr.cc
+UPLL_SOURCES   += vrt_if_flowfilter_momgr.cc
+UPLL_SOURCES   += vtn_policingmap_momgr.cc
+UPLL_SOURCES   += vtep_momgr.cc
+UPLL_SOURCES   += vtep_if_momgr.cc
+UPLL_SOURCES   += vtep_grp_momgr.cc
+UPLL_SOURCES   += vtepgrp_mem_momgr.cc
+UPLL_SOURCES   += vtunnel_momgr.cc
+UPLL_SOURCES   += vtunnel_if_momgr.cc
+
+CAPA_SOURCES   = capa_module_stub.cc
+DAL_SOURCES    = dal_odbc_mgr.cc dal_bind_info.cc dal_schema.cc
+TCLIB_SOURCES  = tclib_module.cc
+MISC_SOURCES   = alarm.cc ipc_client.cc ipc_server.cc module.cc
+
+UT_SOURCES     = vtn_momgr_ut.cc
+UT_SOURCES     += vbr_momgr_ut.cc
+UT_SOURCES     += vbr_if_momgr_ut.cc
+
+CXX_SOURCES    = $(UT_SOURCES) util.cc
+CXX_SOURCES    += $(UPLL_SOURCES) $(CAPA_SOURCES) $(DAL_SOURCES)
+CXX_SOURCES    += $(TCLIB_SOURCES) $(MISC_SOURCES)
+
+EXTRA_CXXFLAGS += -fprofile-arcs -ftest-coverage
+EXTRA_CXXFLAGS += -Dprivate=public -Dprotected=public
+
+UNC_LIBS       = libpfc_util libpfc libpfc_ipcsrv libpfc_ipcclnt
+UNC_LIBS       += libpfcxx libpfcxx_ipcsrv libpfcxx_ipcclnt
+EXTRA_LDLIBS   += -lgcov
+
+include ../../rules.mk
diff --git a/coordinator/test/modules/upll/ut/stub/Makefile b/coordinator/test/modules/upll/ut/stub/Makefile
deleted file mode 100644 (file)
index 6c3fb99..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that includes stubs to run UPLL test cases.
-##
-
-STUB_OBJS=stub_objs
-.NOTPARALLEL: createobjs buildall link_stub
-all: createobjs buildall link_stub
-
-createobjs: 
-       mkdir -p $(STUB_OBJS)
-
-OBJS = $(STUB_OBJS)/capa_module_stub.o \
-       $(STUB_OBJS)/tclib_module.o \
-       $(STUB_OBJS)/dal_bind_info.o \
-       $(STUB_OBJS)/dal_odbc_mgr.o \
-       $(STUB_OBJS)/dal_schema.o \
-       $(STUB_OBJS)/ipc_client.o \
-       $(STUB_OBJS)/ipc_server.o \
-       $(STUB_OBJS)/module.o \
-       $(STUB_OBJS)/alarm.o \
-       
-buildall:
-
-       @echo "****** Invoking tclib_stub makefile"
-       @($(MAKE) -C ./tclib_module/ );
-
-       @echo "****** Invoking dal_stub makefile"
-        @($(MAKE) -C ./dal/ )
-       @echo "****** Invoking Cap_Stub makefile"
-        @($(MAKE) -C ./capa_module/ );
-       
-       @echo "****** Invoking ipc_client_server_stub makefile"
-        @($(MAKE) -C ./ipc_client_server/ );
-       
-clean: clearall
-
-clearall:
-                @(cd ./capa_module/ ;$(MAKE) clean)
-                @(cd ./ipc_client_server/ ;$(MAKE) clean)
-                @(cd ./tclib_module/ ;$(MAKE) clean)
-                @(cd ./dal/ ;$(MAKE) clean)
-                @(cd $(STUB_OBJS) ;rm -rf stub.a)
-
-link_stub :$(STUB_OBJS)/stub.a
-
-$(STUB_OBJS)/stub.a :$(OBJS)
-          $(AR) $(ARFLAGS) $@ $^
diff --git a/coordinator/test/modules/upll/ut/stub/capa_module/Makefile b/coordinator/test/modules/upll/ut/stub/capa_module/Makefile
deleted file mode 100644 (file)
index a3db0ad..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that capa module stubs to run unit tests for UPLL modules.
-##
-
-
-CPPFLAGS = -g 
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-STUB_DIR =..
-INCLUDE =   -I$(STUB_DIR)/include \
-                                   -I$(STUB_DIR)/include/cxx \
-            -I$(STUB_DIR)/include/cxx/pfcxx \
-                               -I$(SRC_DIR)/../core/include \
-                                   -I$(SRC_DIR)/../include \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-                               -I$(SRC_DIR)/../dist/target/objs/core_include \
-                                   -I$(SRC_DIR)/../dist/target/objs/include \
-            -I$(SRC_DIR)/upll/include \
-
-
-
-all: $(OBJS)/capa_module_stub.o
-
-OBJ=capa_module_stub.o
-
-clean :
-       @(cd $(OBJS); rm -rf $(OBJS)/$(OBJ) )
-
-$(OBJS)/capa_module_stub.o :capa_module_stub.cc capa_module_stub.hh
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-       
-
-
-             
-
diff --git a/coordinator/test/modules/upll/ut/stub/capa_module/capa_intf.hh b/coordinator/test/modules/upll/ut/stub/capa_module/capa_intf.hh
deleted file mode 100644 (file)
index 68cdc1e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-
-#include"../../../../../../modules/capa/include/capa_intf.hh"
index 332a9c0201a1147747fe15ca7b47285d175bc078..4ddf5576f7dbc0ed69cdfb8f250a4acac1d1f794 100644 (file)
 namespace unc {
 namespace capa {
 
- std::map<CapaModuleStub::CapaMethod,bool>CapaModuleStub::method_capa_map;
-   uint32_t CapaModuleStub::max_instance_count_local;
-   uint32_t *CapaModuleStub::num_attrs_local;
-   uint8_t *CapaModuleStub::attrs_local;
-
-  void CapaModuleStub::stub_setResultcode(CapaModuleStub::CapaMethod methodType ,bool res_code) {
-        method_capa_map.insert(std::make_pair(methodType,res_code));
-    }
-
-  bool CapaModuleStub::stub_getMappedResultCode(CapaModuleStub::CapaMethod methodType)
-    {
-         if (0!= method_capa_map.count(methodType))
-         {
-                 return method_capa_map[methodType];
-         }
-         return false;
-    }
-
-  void CapaModuleStub::stub_clearStubData()
-  {
-         method_capa_map.clear();
+std::map<CapaModuleStub::CapaMethod,bool>CapaModuleStub::method_capa_map;
+uint32_t CapaModuleStub::max_instance_count_local;
+uint32_t *CapaModuleStub::num_attrs_local;
+uint8_t *CapaModuleStub::attrs_local;
+
+static CapaModuleStub  theInstance(NULL);
+
+void
+CapaModuleStub::stub_loadCapaModule(void)
+{
+  pfc::core::Module::capaModule = &theInstance;
+}
+
+void
+CapaModuleStub::stub_unloadCapaModule(void)
+{
+  pfc::core::Module::capaModule = NULL;
+}
+
+void
+CapaModuleStub::stub_setResultcode(CapaModuleStub::CapaMethod methodType,
+                                   bool res_code)
+{
+  method_capa_map.insert(std::make_pair(methodType,res_code));
+}
+
+bool
+CapaModuleStub::stub_getMappedResultCode(CapaModuleStub::CapaMethod methodType)
+{
+  if (method_capa_map.count(methodType) != 0) {
+    return method_capa_map[methodType];
   }
+  return false;
+}
 
+void
+CapaModuleStub::stub_clearStubData()
+{
+  method_capa_map.clear();
 }
 
 }
+}
index 8a3d8a89b7e7b65e4a8239d1bbea28fe20ed701b..6695e445170cd9026bea556e5795209f7009b945 100644 (file)
@@ -23,126 +23,123 @@ namespace unc {
 namespace capa {
 
 class CapaModuleStub : public pfc::core::Module,CapaIntf {
- public:
-       enum CapaMethod
-       {
-               INIT,
-               FINI,
-               LOAD_CAPABILLITY_FILES,
-               GET_INSTANCE_COUNT,
-               GET_CREATE_CAPABILITY,
-               GET_UPDATE_CAPABILITY,
-               GET_READ_CAPABILITY,
-               GET_STATE_CAPABILITY,
-       };
+public:
+  enum CapaMethod {
+    INIT,
+    FINI,
+    LOAD_CAPABILLITY_FILES,
+    GET_INSTANCE_COUNT,
+    GET_CREATE_CAPABILITY,
+    GET_UPDATE_CAPABILITY,
+    GET_READ_CAPABILITY,
+    GET_STATE_CAPABILITY,
+  };
+
   CapaModuleStub(const pfc_modattr_t *attr)
-  :pfc::core::Module(attr)
+    : pfc::core::Module(attr)
   {
-
   }
+
   ~CapaModuleStub()
   {
-
   }
 
-  inline pfc_bool_t init(){
-         return stub_getMappedResultCode(CapaModuleStub::INIT);
+  inline pfc_bool_t init() {
+    return stub_getMappedResultCode(CapaModuleStub::INIT);
   }
 
   inline pfc_bool_t fini(void) {
-         return stub_getMappedResultCode(CapaModuleStub::FINI);
+    return stub_getMappedResultCode(CapaModuleStub::FINI);
   }
 
-  static CapaModuleStub* get_capability_mgr()
-  {
-         pfc_modattr_t attr;
-
-         return new CapaModuleStub(&attr);
+  static CapaModuleStub* get_capability_mgr() {
+    pfc_modattr_t attr;
+    return new CapaModuleStub(&attr);
   }
 
   virtual bool  LoadCapabilityFiles() {
-         return stub_getMappedResultCode(CapaModuleStub::LOAD_CAPABILLITY_FILES);
+    return stub_getMappedResultCode(CapaModuleStub::LOAD_CAPABILLITY_FILES);
   }
 
   virtual std::string GetCtrlrParentVersion(const std::string &version) {
-         return std::string("ParentVersion");
+    return std::string("ParentVersion");
   }
 
-  virtual bool GetInstanceCount(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
-                         unc_key_type_t keytype, uint32_t &instance_count) {
-         return stub_getMappedResultCode(CapaModuleStub::GET_INSTANCE_COUNT);
+  virtual bool GetInstanceCount(unc_keytype_ctrtype_t ctrlr_type,
+                                const std::string &version,
+                                unc_key_type_t keytype,
+                                uint32_t &instance_count) {
+    return stub_getMappedResultCode(CapaModuleStub::GET_INSTANCE_COUNT);
   }
 
-  virtual bool GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
-                           unc_key_type_t keytype,
-                           uint32_t *instnace_count,
-                           uint32_t *num_attrs, const uint8_t  **attrs) {
-               *instnace_count = max_instance_count_local;
-                 num_attrs  = num_attrs_local;
-                 *attrs = attrs_local;
-         return stub_getMappedResultCode(CapaModuleStub::GET_CREATE_CAPABILITY);
+  virtual bool GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                   const std::string &version,
+                                   unc_key_type_t keytype,
+                                   uint32_t *instnace_count,
+                                   uint32_t *num_attrs,
+                                   const uint8_t  **attrs) {
+    *instnace_count = max_instance_count_local;
+    *num_attrs  = *num_attrs_local;
+    *attrs = attrs_local;
+    return stub_getMappedResultCode(CapaModuleStub::GET_CREATE_CAPABILITY);
   }
 
-
-  virtual bool GetUpdateCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
-                           unc_key_type_t keytype,
-                           uint32_t *num_attrs, const uint8_t  **attrs) {
-                         num_attrs  = num_attrs_local;
-                          *attrs = attrs_local;
-         return stub_getMappedResultCode(CapaModuleStub::GET_UPDATE_CAPABILITY);
+  virtual bool GetUpdateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                   const std::string &version,
+                                   unc_key_type_t keytype,
+                                   uint32_t *num_attrs,
+                                   const uint8_t  **attrs) {
+    *num_attrs = *num_attrs_local;
+    *attrs = attrs_local;
+    return stub_getMappedResultCode(CapaModuleStub::GET_UPDATE_CAPABILITY);
   }
 
-  virtual bool GetReadCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
-                         unc_key_type_t keytype,
-                         uint32_t *num_attrs, const uint8_t  **attrs) {
-                num_attrs  = num_attrs_local; 
-               *attrs = attrs_local;
+  virtual bool GetReadCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                 const std::string &version,
+                                 unc_key_type_t keytype,
+                                 uint32_t *num_attrs, const uint8_t  **attrs) {
+    *num_attrs = *num_attrs_local; 
+    *attrs = attrs_local;
 
-         return stub_getMappedResultCode(CapaModuleStub::GET_READ_CAPABILITY);
+    return stub_getMappedResultCode(CapaModuleStub::GET_READ_CAPABILITY);
   }
 
-  virtual bool GetStateCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
-                          unc_key_type_t keytype,
-                          uint32_t *num_attrs, const uint8_t  **attrs) {
-         return stub_getMappedResultCode(CapaModuleStub::GET_STATE_CAPABILITY);
+  virtual bool GetStateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                  const std::string &version,
+                                  unc_key_type_t keytype,
+                                  uint32_t *num_attrs, const uint8_t  **attrs) {
+    return stub_getMappedResultCode(CapaModuleStub::GET_STATE_CAPABILITY);
   }
 
-
   inline void VerboseDumpAll() {
-
   }
 
-  inline void VerboseDump(unc_keytype_ctrtype_t ctrlr_type, std::string version){
-
+  inline void VerboseDump(unc_keytype_ctrtype_t ctrlr_type,
+                          std::string version) {
   }
 
   //stub Methods
-  static void stub_setResultcode(CapaModuleStub::CapaMethod methodType ,bool res_code);
+  static void stub_setResultcode(CapaModuleStub::CapaMethod methodType,
+                                 bool res_code);
   static void stub_clearStubData();
 
-  static void  stub_setCreatecapaParameters(uint32_t max_instance_count, uint32_t *num_attrs, uint8_t *attrs) {
-  max_instance_count_local = max_instance_count;
-  num_attrs_local = num_attrs;
-  attrs_local = attrs;
- }
-
-  static void stub_loadCapaModule()  {
-         const pfc_modattr_t *attr;
-         pfc::core::Module* module(reinterpret_cast<pfc::core::Module*>(static_cast<CapaIntf*>(new CapaModuleStub(attr))));
-         Module::capaModule= module;
-    }
+  static void  stub_setCreatecapaParameters(uint32_t max_instance_count,
+                                            uint32_t *num_attrs,
+                                            uint8_t *attrs) {
+    max_instance_count_local = max_instance_count;
+    num_attrs_local = num_attrs;
+    attrs_local = attrs;
+  }
 
-  static void stub_unloadCapaModule()  {
-         Module::capaModule= NULL;
-      }
+  static void stub_loadCapaModule(void);
+  static void stub_unloadCapaModule(void);
 
- private:
+private:
   static bool stub_getMappedResultCode(CapaModuleStub::CapaMethod methodType);
   static std::map<CapaModuleStub::CapaMethod,bool> method_capa_map;
   static uint32_t max_instance_count_local;
   static uint32_t *num_attrs_local;
   static uint8_t *attrs_local;
-
 };
 // NOLINT
 
index 3d7a721df76012a7c010847e4a9d50950f76173c..70154e6db38ab0d5c9f4fa269d451f52b2f0db10 100644 (file)
@@ -7,6 +7,8 @@
 * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 */
 
+#ifndef        _TEST_UPLL_MOMGR_INTF_STUB_HH
+#define        _TEST_UPLL_MOMGR_INTF_STUB_HH
 
 #include "vbr_momgr.hh"
 
@@ -23,11 +25,11 @@ class VbrMoMgrStub : public VbrMoMgr {
   ~VbrMoMgrStub(){}
   bool GetCreateCapability(const char *ctrlr_name,
                                    unc_key_type_t keytype,
-                                   uint32_t *instnace_count,
+                                   uint32_t *instance_count,
                                    uint32_t *num_attrs,
                                    const uint8_t **attrs) {
-    instnace_count = max_inst_;
-    num_attrs = num_attrs_;
+    *instance_count = *max_inst_;
+    *num_attrs = *num_attrs_;
     if (*num_attrs == 0) return false;
     *attrs = attrs_;
     return true;
@@ -78,3 +80,4 @@ class VbrMoMgrStub : public VbrMoMgr {
 }  // namespace upll
 }  // namespace unc
 
+#endif /* !_TEST_UPLL_MOMGR_INTF_STUB_HH */
diff --git a/coordinator/test/modules/upll/ut/stub/dal/Makefile b/coordinator/test/modules/upll/ut/stub/dal/Makefile
deleted file mode 100644 (file)
index bbef9de..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that includes dal module as stub to run  unit tests for UPLL module.
-##
-
-
-CPPFLAGS = -g
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-
-INCLUDE =   -I$ ../stub/include \
-           -I$ ../stub/include/cxx \
-            -I$ ../stub/include/cxx/pfcxx \
-            -I$ ../stub/dal/include \
-           -I$ ../stub/dal \
-           -I$(SRC_DIR)/ \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-           -I$(SRC_DIR)/../dist/target/objs/core_include \
-            -I$(SRC_DIR)/../dist/target/objs/core/include \
-           -I$(SRC_DIR)/../dist/target/objs/include \
-           -I$(SRC_DIR)/../core/include \
-           -I$(SRC_DIR)/../include/ \
-            -I$(SRC_DIR)/upll/include \
-           -I$(SRC_DIR)/modules \
-           -I$(SRC_DIR)/dal \
-
-
-all: compile
-
-Dependent_File = dal_odbc_mgr.cc dal_bind_info.cc dal_schema.cc
-OBJ1 = $(patsubst %.cc,$(OBJS)/%.o,$(Dependent_File))
-
-clean :
-       @(cd $(OBJS); rm -rf *.o)
-
-$(OBJ1):$(OBJS)/%.o : %.cc dal_odbc_mgr.hh dal_bind_info.hh dal_cursor.hh dal_schema.hh
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-compile :$(OBJ1)
-             
-
index 1e83027ef431c7d26d398d50c57ac2626c11f85b..8d9f8a7d29dd78812e20e9146a430c3f1e532067 100644 (file)
@@ -26,23 +26,23 @@ DalBindInfo::~DalBindInfo() {
 }
 
 bool DalBindInfo::BindInput(const DalColumnIndex column_index,
-                  const DalCDataType app_data_type,
-                  const size_t array_size,
-                  const void *bind_addr) {
+                            const DalCDataType app_data_type,
+                            const size_t array_size,
+                            const void *bind_addr) {
   return stub_getMappedResultCode(DalBindInfo::BIND_INPUT);
 }
 
 bool DalBindInfo::BindOutput(const DalColumnIndex column_index,
-                   const DalCDataType app_data_type,
-                   const size_t array_size,
-                   const void *bind_addr) {
+                             const DalCDataType app_data_type,
+                             const size_t array_size,
+                             const void *bind_addr) {
   return stub_getMappedResultCode(DalBindInfo::BIND_OUTPUT);
 }
 
 bool DalBindInfo::BindMatch(const DalColumnIndex column_index,
-                  const DalCDataType app_data_type,
-                  const size_t array_size,
-                  const void *bind_addr) {
+                            const DalCDataType app_data_type,
+                            const size_t array_size,
+                            const void *bind_addr) {
   return stub_getMappedResultCode(DalBindInfo::BIND_MATCH);
 }
 
@@ -55,11 +55,12 @@ bool  DalBindInfo::ResetDalOutBuffer() {
 }
 
 bool DalBindInfo::stub_getMappedResultCode(DalBindInfo::Method methodType) {
-if (0 != method_result_map.count(methodType))  {
-return method_result_map[methodType];
-}
-return false;
+  if (0 != method_result_map.count(methodType))  {
+    return method_result_map[methodType];
+  }
+  return false;
 }
+
 }
 }
 }
index a3fcad0a4074d7bc30c174df26146837dafb8414..406cedcdea277ed7f6704cd8e2a587ccf16204e8 100644 (file)
@@ -14,9 +14,9 @@
 #include <string.h>
 #include <vector>
 #include <map>
-#include "include/dal_defines.hh"
-#include "include/dal_schema.hh"
-#include "include/dal_bind_column_info.hh"
+#include <dal_defines.hh>
+#include <dal_schema.hh>
+#include <dal_bind_column_info.hh>
 
 namespace unc {
 namespace upll {
@@ -26,101 +26,102 @@ namespace dal {
 typedef std::vector<DalBindColumnInfo *> DalBindList;
 
 class DalBindInfo {
-  public:
+public:
 
-enum Method
-       {
-               BIND_INPUT,
-               BIND_OUTPUT,
-               BIND_MATCH,
-               COPY,
-               RESET
-       };
+  enum Method {
+    BIND_INPUT,
+    BIND_OUTPUT,
+    BIND_MATCH,
+    COPY,
+    RESET
+  };
 
-    explicit DalBindInfo(const DalTableIndex table_index);
+  explicit DalBindInfo(const DalTableIndex table_index);
 
-    ~DalBindInfo();
+  ~DalBindInfo();
 
-    bool BindInput(const DalColumnIndex column_index,
-                   const DalCDataType app_data_type,
-                   const size_t array_size,
-                   const void *bind_addr);
+  bool BindInput(const DalColumnIndex column_index,
+                 const DalCDataType app_data_type,
+                 const size_t array_size,
+                 const void *bind_addr);
 
-    bool BindOutput(const DalColumnIndex column_index,
-                    const DalCDataType app_data_type,
-                    const size_t array_size,
-                    const void *bind_addr);
+  bool BindOutput(const DalColumnIndex column_index,
+                  const DalCDataType app_data_type,
+                  const size_t array_size,
+                  const void *bind_addr);
 
-    bool BindMatch(const DalColumnIndex column_index,
-                   const DalCDataType app_data_type,
-                   const size_t array_size,
-                   const void *bind_addr);
+  bool BindMatch(const DalColumnIndex column_index,
+                 const DalCDataType app_data_type,
+                 const size_t array_size,
+                 const void *bind_addr);
 
-    inline DalTableIndex get_table_index() const {
-      return (table_index_);
-    }
+  inline DalTableIndex get_table_index() const {
+    return (table_index_);
+  }
 
-    inline DalBindList get_bind_list() const {
-      return (bind_list_);
-    }
+  inline DalBindList get_bind_list() const {
+    return (bind_list_);
+  }
 
-    inline uint16_t get_input_bind_count() const {
-      return (input_bind_count_);
-    }
+  inline uint16_t get_input_bind_count() const {
+    return (input_bind_count_);
+  }
 
-    inline uint16_t get_output_bind_count() const {
-      return (output_bind_count_);
-    }
+  inline uint16_t get_output_bind_count() const {
+    return (output_bind_count_);
+  }
 
-    inline uint16_t get_match_bind_count() const {
-      return (match_bind_count_);
-    }
+  inline uint16_t get_match_bind_count() const {
+    return (match_bind_count_);
+  }
 
-    static void stub_set_table_index(DalTableIndex tableIndex) {
-       table_index_ = tableIndex;
-    }
+  static void stub_set_table_index(DalTableIndex tableIndex) {
+    table_index_ = tableIndex;
+  }
 
-    static void stub_set_bind_list( DalBindList dalBindList) {
-      bind_list_ = dalBindList;
-    }
+  static void stub_set_bind_list( DalBindList dalBindList) {
+    bind_list_ = dalBindList;
+  }
 
-    static void  stub_set_input_bind_count(uint16_t bind_count) {
-       input_bind_count_= bind_count;
-    }
+  static void  stub_set_input_bind_count(uint16_t bind_count) {
+    input_bind_count_= bind_count;
+  }
 
-    static void  stub_set_output_bind_count( uint16_t output_bind) {
-         output_bind_count_=output_bind;
-    }
+  static void  stub_set_output_bind_count( uint16_t output_bind) {
+    output_bind_count_=output_bind;
+  }
 
-    static void stub_set_match_bind_count(uint16_t bind_count) {
-       match_bind_count_ = bind_count;
-    }
+  static void stub_set_match_bind_count(uint16_t bind_count) {
+    match_bind_count_ = bind_count;
+  }
 
-    static void stub_setResultcode(DalBindInfo::Method methodType ,DalResultCode res_code) {
-       method_result_map.insert(std::make_pair(methodType,res_code));
-    }
+  static void stub_setResultcode(DalBindInfo::Method methodType,
+                                 DalResultCode res_code) {
+    method_result_map.insert(std::make_pair(methodType,res_code));
+  }
 
-    static void clearStubData() {
-       method_result_map.clear();
-    }
+  static void clearStubData() {
+    method_result_map.clear();
+  }
 
+  bool CopyResultToApp();
 
-    bool CopyResultToApp();
+  bool ResetDalOutBuffer();
+private:
+  bool stub_getMappedResultCode(DalBindInfo::Method);
+  static DalBindList bind_list_;
+  static DalTableIndex table_index_;
+  static uint16_t input_bind_count_;
 
-    bool ResetDalOutBuffer();
-  private:
-    bool stub_getMappedResultCode(DalBindInfo::Method);
-    static DalBindList bind_list_;
-    static DalTableIndex table_index_;
-    static uint16_t input_bind_count_;
+  static uint16_t output_bind_count_;
 
-    static uint16_t output_bind_count_;
-
-    static uint16_t match_bind_count_;
-    static std::map<DalBindInfo::Method,bool> method_result_map;
+  static uint16_t match_bind_count_;
+  static std::map<DalBindInfo::Method,bool> method_result_map;
 
 };  // class DalBindInfo
+
 }  // namespace dal
 }  // namespace upll
 }  // namespace unc
+
 #endif  // __DAL_BIND_INFO_HH__
index 5ccd0b5b6b6b451fc02a6d9b825fb9cda772ebd5..77a67ca4a45f97152db744d77f91cdc573c0e0fa 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 /*
  * dal_cusor.hh
@@ -23,20 +23,37 @@ namespace unc {
 namespace upll {
 namespace dal {
 
-
 class DalCursor {
-  public :
-    explicit DalCursor( ) {
-    }
-    ~DalCursor() {
-    }
-    DalResultCode GetNextRecord() {
-       return kDalRcSuccess;
-    }
-    DalResultCode CloseCursor(bool delete_bind) {
-       return kDalRcSuccess;
+public :
+  DalCursor(const DalBindInfo *info)
+    : _bindInfo1(info),
+      _bindInfo2(reinterpret_cast<const DalBindInfo *>(NULL)) {}
+
+  DalCursor(const DalBindInfo *info1, const DalBindInfo *info2)
+    : _bindInfo1(info1), _bindInfo2(info2) {}
+
+  ~DalCursor() {}
+
+  inline DalResultCode
+  GetNextRecord()
+  {
+    return kDalRcSuccess;
+  }
+
+  inline DalResultCode
+  CloseCursor(bool delete_bind)
+  {
+    if (delete_bind) {
+      delete _bindInfo1;
+      delete _bindInfo2;
     }
 
+    return kDalRcSuccess;
+  }
+
+private:
+  const DalBindInfo *_bindInfo1;
+  const DalBindInfo *_bindInfo2;
 };  // class DalCursor
 
 }  // namespace dal
index f01cace1c0c12898e696bb60ed689bc9d916d514..66139c3804baaedacf8f4612682ded43b33038ae 100644 (file)
 #define __DAL_DML_INTF_HH__
 
 #include <stdint.h>
-#include "include/dal_defines.hh"
-#include "dal_bind_info.hh"
-#include "include/dal_schema.hh"
-#include "dal_cursor.hh"
+#include <dal_defines.hh>
+#include <dal_bind_info.hh>
+#include <dal_schema.hh>
+#include <dal_cursor.hh>
 
 namespace unc {
 namespace upll {
index 1c41c8e6c068be730ef923185c38121d00704beb..93eb9b9a8b25ec4a5d231f40b31d0f6109d06dfe 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #include "dal_odbc_mgr.hh"
 
@@ -20,211 +20,195 @@ uint32_t DalOdbcMgr::count=0;
 std::map<uint8_t,DalResultCode> DalOdbcMgr::resultcodes;
 
 DalOdbcMgr::DalOdbcMgr(void) {
-
 }
+
 DalOdbcMgr::~DalOdbcMgr(void) {
 }
 
 DalResultCode DalOdbcMgr::Init(void) {
-       return stub_getMappedResultCode(DalOdbcMgr::INIT);
-}
-DalResultCode DalOdbcMgr::ConnectToDb(const DalConnType conn_type) {
-       return stub_getMappedResultCode(DalOdbcMgr::CONNECT);
+  return stub_getMappedResultCode(DalOdbcMgr::INIT);
 }
 
-DalResultCode DalOdbcMgr::DisconnectFromDb() {
-       return stub_getMappedResultCode(DalOdbcMgr::DISCONNECT);
+DalResultCode DalOdbcMgr::ConnectToDb(const DalConnType conn_type) const {
+  return stub_getMappedResultCode(DalOdbcMgr::CONNECT);
 }
 
-DalResultCode DalOdbcMgr::CommitTransaction(){
-       return stub_getMappedResultCode(DalOdbcMgr::COMMIT);
+DalResultCode DalOdbcMgr::DisconnectFromDb() const {
+  return stub_getMappedResultCode(DalOdbcMgr::DISCONNECT);
+}
 
+DalResultCode DalOdbcMgr::CommitTransaction() const {
+  return stub_getMappedResultCode(DalOdbcMgr::COMMIT);
 }
 
-DalResultCode DalOdbcMgr::RollbackTransaction() {
-       return stub_getMappedResultCode(DalOdbcMgr::ROLLBACK);
+DalResultCode DalOdbcMgr::RollbackTransaction() const {
+  return stub_getMappedResultCode(DalOdbcMgr::ROLLBACK);
 }
+
 DalConnType DalOdbcMgr::get_conn_type() {
-       return conn_type_;
+  return conn_type_;
 }
-DalResultCode DalOdbcMgr::GetSingleRecord(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *ouput_and_matching_attr_info) {
-       return stub_getMappedResultCode(DalOdbcMgr::SINGLE);
 
+DalResultCode DalOdbcMgr::GetSingleRecord(
+  const UpllCfgType cfg_type, const DalTableIndex table_index,
+  const DalBindInfo *output_and_matching_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::SINGLE);
 }
 
 DalResultCode DalOdbcMgr::GetMultipleRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor) {
-        *cursor=new DalCursor();
-       return stub_getMappedResultCode(DalOdbcMgr::MULTIPLE);
-
+  const UpllCfgType cfg_type, const DalTableIndex table_index,
+  const size_t max_record_count,
+  const DalBindInfo *output_and_matching_attr_info, DalCursor **cursor) {
+  return initCursor(cursor, output_and_matching_attr_info, MULTIPLE);
 }
 
 DalResultCode DalOdbcMgr::GetNextRecord(const DalCursor *cursor) {
-
-       return resultcodes[count++];
+  return resultcodes[count++];
 }
 
-DalResultCode DalOdbcMgr::CloseCursor(DalCursor *cursor, bool) {
-       return stub_getMappedResultCode(DalOdbcMgr::CLOSE_CURSOR);
+DalResultCode DalOdbcMgr::CloseCursor(DalCursor *cursor, bool delete_bind) {
+  if (cursor != NULL) {
+    cursor->CloseCursor(delete_bind);
+    delete cursor;
+  }
+  return stub_getMappedResultCode(DalOdbcMgr::CLOSE_CURSOR);
 }
 
 DalResultCode DalOdbcMgr::RecordExists(const UpllCfgType cfg_type,
-                               const DalTableIndex table_index,
-                               const DalBindInfo *matching_attr_info,
-                               bool *existence) {
-                *existence=exists_;
-       return stub_getMappedResultCode(DalOdbcMgr::RECORD_EXISTS);
+                                       const DalTableIndex table_index,
+                                       const DalBindInfo *matching_attr_info,
+                                       bool *existence) {
+  *existence=exists_;
+  return stub_getMappedResultCode(DalOdbcMgr::RECORD_EXISTS);
 }
 
 DalResultCode DalOdbcMgr::GetSiblingBegin(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor)  {
-       return stub_getMappedResultCode(DalOdbcMgr::SIBLING_BEGIN);
+  const UpllCfgType cfg_type, const DalTableIndex table_index,
+  const size_t max_record_count,
+  const DalBindInfo *output_and_matching_attr_info, DalCursor **cursor)  {
+  return initCursor(cursor, output_and_matching_attr_info, SIBLING_BEGIN);
 }
 
 DalResultCode  DalOdbcMgr::GetSiblingRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor)  {
-       return stub_getMappedResultCode(DalOdbcMgr::SIBLING_COUNT);
+  const UpllCfgType cfg_type, const DalTableIndex table_index,
+  const size_t max_record_count,
+  const DalBindInfo *output_and_matching_attr_info, DalCursor **cursor)  {
+  return initCursor(cursor, output_and_matching_attr_info, SIBLING_COUNT);
 }
 
 DalResultCode DalOdbcMgr::GetSiblingCount(const UpllCfgType cfg_type,
-                                  const DalTableIndex table_index,
-                                  const DalBindInfo *matching_attr_info,
-                                  uint32_t *count) {
-       return stub_getMappedResultCode(DalOdbcMgr::SIBLING_COUNT);
+                                          const DalTableIndex table_index,
+                                          const DalBindInfo *matching_attr_info,
+                                          uint32_t *count) {
+  return stub_getMappedResultCode(DalOdbcMgr::SIBLING_COUNT);
 }
 
 DalResultCode DalOdbcMgr::GetRecordCount(const UpllCfgType cfg_type,
-                                 const DalTableIndex table_index,
-                                 const DalBindInfo *matching_attr_info,
-                                 uint32_t *count)  {
-        *count=sibling_count_;
-       return stub_getMappedResultCode(DalOdbcMgr::RECORD_COUNT);
+                                         const DalTableIndex table_index,
+                                         const DalBindInfo *matching_attr_info,
+                                         uint32_t *count)  {
+  *count=sibling_count_;
+  return stub_getMappedResultCode(DalOdbcMgr::RECORD_COUNT);
 }
 
 DalResultCode DalOdbcMgr::DeleteRecords(const UpllCfgType cfg_type,
-                                const DalTableIndex table_index,
-                                const DalBindInfo *matching_attr_info) {
-       return stub_getMappedResultCode(DalOdbcMgr::DELETE_RECORD);
+                                        const DalTableIndex table_index,
+                                        const DalBindInfo *matching_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::DELETE_RECORD);
 }
 
 DalResultCode DalOdbcMgr::CreateRecord(const UpllCfgType cfg_type,
-                               const DalTableIndex table_index,
-                               const DalBindInfo *input_attr_info) {
-       return stub_getMappedResultCode(DalOdbcMgr::UPDATE_RECORD);
+                                       const DalTableIndex table_index,
+                                       const DalBindInfo *input_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::UPDATE_RECORD);
 }
 
 DalResultCode DalOdbcMgr::UpdateRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *input_and_matching_attr_info) {
-       return stub_getMappedResultCode(DalOdbcMgr::CREATE_RECORD);
+  const UpllCfgType cfg_type, const DalTableIndex table_index,
+  const DalBindInfo *input_and_matching_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::CREATE_RECORD);
 }
 
 DalResultCode DalOdbcMgr::GetDeletedRecords(const UpllCfgType cfg_type_1,
-                                    const UpllCfgType cfg_type_2,
-                                    const DalTableIndex table_index,
-                                    const size_t max_record_count,
-                                    const DalBindInfo *output_attr_info,
-                                    DalCursor **cursor) {
-       return stub_getMappedResultCode(DalOdbcMgr::GET_DELETED_RECORDS);
+                                            const UpllCfgType cfg_type_2,
+                                            const DalTableIndex table_index,
+                                            const size_t max_record_count,
+                                            const DalBindInfo *output_attr_info,
+                                            DalCursor **cursor) {
+  return initCursor(cursor, output_attr_info, GET_DELETED_RECORDS);
 }
 
 DalResultCode DalOdbcMgr::GetCreatedRecords(const UpllCfgType cfg_type_1,
-                                    const UpllCfgType cfg_type_2,
-                                    const DalTableIndex table_index,
-                                    const size_t max_record_count,
-                                    const DalBindInfo *output_attr_info,
-                                    DalCursor **cursor)  {
-       return stub_getMappedResultCode(DalOdbcMgr::GET_CREATED_RECORDS);
+                                            const UpllCfgType cfg_type_2,
+                                            const DalTableIndex table_index,
+                                            const size_t max_record_count,
+                                            const DalBindInfo *output_attr_info,
+                                            DalCursor **cursor)  {
+  return initCursor(cursor, output_attr_info, GET_CREATED_RECORDS);
 }
 
 DalResultCode DalOdbcMgr::GetUpdatedRecords(
-                    const UpllCfgType cfg_type_1,
-                    const UpllCfgType cfg_type_2,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *cfg_1_output_and_match_attr_info,
-                    const DalBindInfo *cfg_2_output_and_match_attr_info,
-                    DalCursor **cursor)  {
-       return stub_getMappedResultCode(DalOdbcMgr::GET_UPDATED_RECORDS);
+  const UpllCfgType cfg_type_1, const UpllCfgType cfg_type_2,
+  const DalTableIndex table_index, const size_t max_record_count,
+  const DalBindInfo *cfg_1_output_and_match_attr_info,
+  const DalBindInfo *cfg_2_output_and_match_attr_info, DalCursor **cursor)  {
+  return initCursor(cursor, cfg_1_output_and_match_attr_info,
+                    cfg_2_output_and_match_attr_info, GET_UPDATED_RECORDS);
 }
 
-DalResultCode DalOdbcMgr::CopyEntireRecords(const UpllCfgType dest_cfg_type,
-                                    const UpllCfgType src_cfg_type,
-                                    const DalTableIndex table_index,
-                                    const DalBindInfo *output_attr_info) {
-       return stub_getMappedResultCode(DalOdbcMgr::COPY_ENTIRE);
+DalResultCode DalOdbcMgr::CopyEntireRecords(
+  const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+  const DalTableIndex table_index, const DalBindInfo *output_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::COPY_ENTIRE);
 }
 
 DalResultCode DalOdbcMgr::CopyModifiedRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info)  {
-       return stub_getMappedResultCode(DalOdbcMgr::COPY_MODIFY);
+  const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+  const DalTableIndex table_index,
+  const DalBindInfo *output_and_match_attr_info)  {
+  return stub_getMappedResultCode(DalOdbcMgr::COPY_MODIFY);
 }
-DalResultCode DalOdbcMgr::CopyModifiedInsertRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) {
 
-       return stub_getMappedResultCode(DalOdbcMgr::COPY_MODIFY_INSERT);
+DalResultCode DalOdbcMgr::CopyModifiedInsertRecords(
+  const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+  const DalTableIndex table_index,
+  const DalBindInfo *output_and_match_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::COPY_MODIFY_INSERT);
 }
 
 DalResultCode DalOdbcMgr::CopyMatchingRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) {
-       return stub_getMappedResultCode(DalOdbcMgr::COPY_MATCHING);
+  const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+  const DalTableIndex table_index,
+  const DalBindInfo *output_and_match_attr_info) {
+  return stub_getMappedResultCode(DalOdbcMgr::COPY_MATCHING);
 }
+
 DalResultCode DalOdbcMgr::ExecuteAppQueryMultipleRecords(
-                         const std::string query_stmt,
-                         const size_t max_record_count,
-                         const DalBindInfo *bind_info,
-                         DalCursor **cursor) {
-       return stub_getMappedResultCode(DalOdbcMgr::EXECUTE_APPQUERY_MULTIPLE);
+  const std::string query_stmt, const size_t max_record_count,
+  const DalBindInfo *bind_info, DalCursor **cursor) {
+  return initCursor(cursor, bind_info, EXECUTE_APPQUERY_MULTIPLE);
 }
 
-DalResultCode DalOdbcMgr::CheckRecordsIdentical(const UpllCfgType cfg_type_1,
-                                        const UpllCfgType cfg_type_2,
-                                        const DalTableIndex table_index,
-                                        const DalBindInfo *matching_attr_info,
-                                        bool *identical) {
-       return stub_getMappedResultCode(DalOdbcMgr::CHECK_IDENTICAL);
-
+DalResultCode DalOdbcMgr::CheckRecordsIdentical(
+  const UpllCfgType cfg_type_1, const UpllCfgType cfg_type_2,
+  const DalTableIndex table_index, const DalBindInfo *matching_attr_info,
+  bool *identical) {
+  return stub_getMappedResultCode(DalOdbcMgr::CHECK_IDENTICAL);
 }
 
 DalResultCode DalOdbcMgr::ExecuteQuery(SQLHANDLE *dal_stmt_handle,
-                         const std::string *query_stmt,
-                         const DalBindInfo *bind_info,
-                         const uint32_t max_count) {
-
-        return stub_getMappedResultCode(DalOdbcMgr::EXECUTE_QUERY);
-}
-DalResultCode DalOdbcMgr::stub_getMappedResultCode(DalOdbcMgr::Method methodType) {
-
-        if (0 != method_resultcode_map.count(methodType))
-                {
-                        return method_resultcode_map[methodType];
-                }
-                return kDalRcGeneralError;
+                                       const std::string *query_stmt,
+                                       const DalBindInfo *bind_info,
+                                       const uint32_t max_count) {
+  return stub_getMappedResultCode(DalOdbcMgr::EXECUTE_QUERY);
+}
+
+DalResultCode DalOdbcMgr::stub_getMappedResultCode(
+  DalOdbcMgr::Method methodType) const {
+  if (0 != method_resultcode_map.count(methodType)) {
+    return method_resultcode_map[methodType];
+  }
+  return kDalRcGeneralError;
 }
 
 }  // namespace dal
index 2681f0a6555e3cf12531b1f600d978bf83cf46bc..cd181cd9570df6e29b1958e4df2a8576cbad8099 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 /**
  * dal_odbc_mgr.hh
 #ifndef __DAL_ODBC_MGR_HH__
 #define __DAL_ODBC_MGR_HH__
 
-#include "include/dal_defines.hh"
-#include "include/dal_conn_intf.hh"
-#include "include/dal_schema.hh"
-#include "dal_bind_info.hh"
-#include "dal_cursor.hh"
-#include "dal_dml_intf.hh"
+#include <dal_defines.hh>
+#include <dal_conn_intf.hh>
+#include <dal_schema.hh>
+#include <dal_bind_info.hh>
+#include <dal_cursor.hh>
+#include <dal_dml_intf.hh>
 //#include "upll/upll_log.hh"
 #include <iostream>
 #include <map>
 #include <list>
+
 using namespace std;
+
 namespace unc {
 namespace upll {
 namespace dal {
@@ -34,202 +36,209 @@ namespace dal {
 //class DalCursor;
 //typedef upll_keytype_datatype_t UpllCfgType;
 class DalOdbcMgr :public DalConnIntf, public DalDmlIntf {
-  public:
-
-       enum Method
-       {
-               INIT,
-               CONNECT,
-               DISCONNECT,
-               COMMIT,
-               ROLLBACK,
-               SINGLE,
-               MULTIPLE,
-               NEXT,
-               CLOSE_CURSOR,
-               RECORD_EXISTS,
-               SIBLING_BEGIN,
-               SIBLING_RECORDS,
-               SIBLING_COUNT,
-               RECORD_COUNT,
-               DELETE_RECORD,
-               UPDATE_RECORD,
-               CREATE_RECORD,
-               GET_DELETED_RECORDS,
-               GET_CREATED_RECORDS,
-               GET_UPDATED_RECORDS,
-               COPY_ENTIRE,
-               COPY_MODIFY,
-                COPY_MODIFY_INSERT,
-               COPY_MATCHING,
-               CHECK_IDENTICAL,
-                EXECUTE_APPQUERY_MULTIPLE,
-                EXECUTE_QUERY,
-       };
-    DalOdbcMgr(void);
-
-    ~DalOdbcMgr(void);
-
-    DalResultCode Init(void);
-    DalResultCode ConnectToDb(const DalConnType conn_type) ;
-    DalResultCode DisconnectFromDb();
-
-    DalResultCode CommitTransaction();
-
-    DalResultCode RollbackTransaction();
-
-    DalConnType get_conn_type();
-
-    DalResultCode GetSingleRecord(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *ouput_and_matching_attr_info) ;
-
-    DalResultCode GetMultipleRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor);
-
-    DalResultCode GetNextRecord(const DalCursor *cursor);
-
-    DalResultCode CloseCursor(DalCursor *cursor,bool);
-
-    DalResultCode RecordExists(const UpllCfgType cfg_type,
+public:
+  enum Method {
+    INIT,
+    CONNECT,
+    DISCONNECT,
+    COMMIT,
+    ROLLBACK,
+    SINGLE,
+    MULTIPLE,
+    NEXT,
+    CLOSE_CURSOR,
+    RECORD_EXISTS,
+    SIBLING_BEGIN,
+    SIBLING_RECORDS,
+    SIBLING_COUNT,
+    RECORD_COUNT,
+    DELETE_RECORD,
+    UPDATE_RECORD,
+    CREATE_RECORD,
+    GET_DELETED_RECORDS,
+    GET_CREATED_RECORDS,
+    GET_UPDATED_RECORDS,
+    COPY_ENTIRE,
+    COPY_MODIFY,
+    COPY_MODIFY_INSERT,
+    COPY_MATCHING,
+    CHECK_IDENTICAL,
+    EXECUTE_APPQUERY_MULTIPLE,
+    EXECUTE_QUERY,
+  };
+
+  DalOdbcMgr(void);
+  ~DalOdbcMgr(void);
+
+  DalResultCode Init(void);
+  DalResultCode ConnectToDb(const DalConnType conn_type) const;
+  DalResultCode DisconnectFromDb() const;
+  DalResultCode CommitTransaction() const;
+  DalResultCode RollbackTransaction() const;
+
+  DalConnType get_conn_type();
+
+  DalResultCode GetSingleRecord(
+    const UpllCfgType cfg_type, const DalTableIndex table_index,
+    const DalBindInfo *ouput_and_matching_attr_info) ;
+
+  DalResultCode GetMultipleRecords(
+    const UpllCfgType cfg_type, const DalTableIndex table_index,
+    const size_t max_record_count,
+    const DalBindInfo *ouput_and_matching_attr_info, DalCursor **cursor);
+
+  DalResultCode GetNextRecord(const DalCursor *cursor);
+
+  DalResultCode CloseCursor(DalCursor *cursor, bool delete_bind = false);
+
+  DalResultCode RecordExists(const UpllCfgType cfg_type,
+                             const DalTableIndex table_index,
+                             const DalBindInfo *matching_attr_info,
+                             bool *existence);
+
+  DalResultCode GetSiblingBegin(
+    const UpllCfgType cfg_type, const DalTableIndex table_index,
+    const size_t max_record_count,
+    const DalBindInfo *ouput_and_matching_attr_info, DalCursor **cursor);
+
+  DalResultCode GetSiblingRecords(
+    const UpllCfgType cfg_type, const DalTableIndex table_index,
+    const size_t max_record_count,
+    const DalBindInfo *ouput_and_matching_attr_info, DalCursor **cursor);
+
+  DalResultCode GetSiblingCount(const UpllCfgType cfg_type,
+                                const DalTableIndex table_index,
+                                const DalBindInfo *matching_attr_info,
+                                uint32_t *count);
+
+  DalResultCode GetRecordCount(const UpllCfgType cfg_type,
                                const DalTableIndex table_index,
                                const DalBindInfo *matching_attr_info,
-                               bool *existence);
-
-    DalResultCode GetSiblingBegin(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor);
-
-    DalResultCode GetSiblingRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor);
-
-    DalResultCode GetSiblingCount(const UpllCfgType cfg_type,
-                                  const DalTableIndex table_index,
-                                  const DalBindInfo *matching_attr_info,
-                                  uint32_t *count);
+                               uint32_t *count);
 
-    DalResultCode GetRecordCount(const UpllCfgType cfg_type,
-                                 const DalTableIndex table_index,
-                                 const DalBindInfo *matching_attr_info,
-                                 uint32_t *count);
+  DalResultCode DeleteRecords(const UpllCfgType cfg_type,
+                              const DalTableIndex table_index,
+                              const DalBindInfo *matching_attr_info);
 
-    DalResultCode DeleteRecords(const UpllCfgType cfg_type,
-                                const DalTableIndex table_index,
-                                const DalBindInfo *matching_attr_info);
+  DalResultCode CreateRecord(const UpllCfgType cfg_type,
+                             const DalTableIndex table_index,
+                             const DalBindInfo *input_attr_info);
 
-    DalResultCode CreateRecord(const UpllCfgType cfg_type,
-                               const DalTableIndex table_index,
-                               const DalBindInfo *input_attr_info);
-
-    DalResultCode UpdateRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *input_and_matching_attr_info);
-
-    DalResultCode GetDeletedRecords(const UpllCfgType cfg_type_1,
-                                    const UpllCfgType cfg_type_2,
-                                    const DalTableIndex table_index,
-                                    const size_t max_record_count,
-                                    const DalBindInfo *output_attr_info,
-                                    DalCursor **cursor);
-
-
-    DalResultCode GetCreatedRecords(const UpllCfgType cfg_type_1,
-                                    const UpllCfgType cfg_type_2,
-                                    const DalTableIndex table_index,
-                                    const size_t max_record_count,
-                                    const DalBindInfo *output_attr_info,
-                                    DalCursor **cursor);
-    DalResultCode GetUpdatedRecords(
-                    const UpllCfgType cfg_type_1,
-                    const UpllCfgType cfg_type_2,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *cfg_1_output_and_match_attr_info,
-                    const DalBindInfo *cfg_2_output_and_match_attr_info,
-                    DalCursor **cursor);
-
-    DalResultCode CopyEntireRecords(const UpllCfgType dest_cfg_type,
-                                    const UpllCfgType src_cfg_type,
-                                    const DalTableIndex table_index,
-                                    const DalBindInfo *output_attr_info);
-
-    DalResultCode CopyModifiedRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info);
-
-    DalResultCode CopyModifiedInsertRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info);
-
-
-    DalResultCode CopyMatchingRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info);
-
-    DalResultCode CheckRecordsIdentical(const UpllCfgType cfg_type_1,
-                                        const UpllCfgType cfg_type_2,
-                                        const DalTableIndex table_index,
-                                        const DalBindInfo *matching_attr_info,
-                                        bool *identical);
-
-    DalResultCode ExecuteAppQueryMultipleRecords(
-                         const std::string query_stmt,
-                         const size_t max_record_count,
-                         const DalBindInfo *bind_info,
-                         DalCursor **cursor) ;
-    DalResultCode ExecuteQuery(SQLHANDLE *dal_stmt_handle,
-                         const std::string *query_stmt,
-                         const DalBindInfo *bind_info,
-                         const uint32_t max_count);
-
-    static void stub_setResultcode(DalOdbcMgr::Method methodType ,DalResultCode res_code) {
-       method_resultcode_map.insert(std::make_pair(methodType,res_code));
-    }
+  DalResultCode UpdateRecords(const UpllCfgType cfg_type,
+                              const DalTableIndex table_index,
+                              const DalBindInfo *input_and_matching_attr_info);
 
-    static void stub_setSingleRecordExists(bool exists) {
-        exists_=exists;
-    }
-    static void stub_setSiblingCount(uint32_t sibling_count1) {
-        sibling_count_=sibling_count1;
-    }
+  DalResultCode GetDeletedRecords(const UpllCfgType cfg_type_1,
+                                  const UpllCfgType cfg_type_2,
+                                  const DalTableIndex table_index,
+                                  const size_t max_record_count,
+                                  const DalBindInfo *output_attr_info,
+                                  DalCursor **cursor);
 
-    static void clearStubData() {
-               method_resultcode_map.clear();
-                count=0;
-                resultcodes.clear();  
-        }
-    static void stub_setNextRecordResultCodes( const std::map<uint8_t,DalResultCode>&  amap) {
-      resultcodes=amap;
+  DalResultCode GetCreatedRecords(const UpllCfgType cfg_type_1,
+                                  const UpllCfgType cfg_type_2,
+                                  const DalTableIndex table_index,
+                                  const size_t max_record_count,
+                                  const DalBindInfo *output_attr_info,
+                                  DalCursor **cursor);
+
+  DalResultCode GetUpdatedRecords(
+    const UpllCfgType cfg_type_1, const UpllCfgType cfg_type_2,
+    const DalTableIndex table_index, const size_t max_record_count,
+    const DalBindInfo *cfg_1_output_and_match_attr_info,
+    const DalBindInfo *cfg_2_output_and_match_attr_info, DalCursor **cursor);
+
+  DalResultCode CopyEntireRecords(const UpllCfgType dest_cfg_type,
+                                  const UpllCfgType src_cfg_type,
+                                  const DalTableIndex table_index,
+                                  const DalBindInfo *output_attr_info);
+
+  DalResultCode CopyModifiedRecords(
+    const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+    const DalTableIndex table_index,
+    const DalBindInfo *output_and_match_attr_info);
+
+  DalResultCode CopyModifiedInsertRecords(
+    const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+    const DalTableIndex table_index,
+    const DalBindInfo *output_and_match_attr_info);
+
+  DalResultCode CopyMatchingRecords(
+    const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
+    const DalTableIndex table_index,
+    const DalBindInfo *output_and_match_attr_info);
+
+  DalResultCode CheckRecordsIdentical(const UpllCfgType cfg_type_1,
+                                      const UpllCfgType cfg_type_2,
+                                      const DalTableIndex table_index,
+                                      const DalBindInfo *matching_attr_info,
+                                      bool *identical);
+
+  DalResultCode ExecuteAppQueryMultipleRecords(
+    const std::string query_stmt, const size_t max_record_count,
+    const DalBindInfo *bind_info, DalCursor **cursor) ;
+
+  DalResultCode ExecuteQuery(SQLHANDLE *dal_stmt_handle,
+                             const std::string *query_stmt,
+                             const DalBindInfo *bind_info,
+                             const uint32_t max_count);
+
+  static void stub_setResultcode(DalOdbcMgr::Method methodType,
+                                 DalResultCode res_code) {
+    method_resultcode_map.insert(std::make_pair(methodType,res_code));
+  }
+
+  static void stub_setSingleRecordExists(bool exists) {
+    exists_ = exists;
+  }
+
+  static void stub_setSiblingCount(uint32_t sibling_count1) {
+    sibling_count_ = sibling_count1;
+  }
+
+  static void clearStubData() {
+    method_resultcode_map.clear();
+    count = 0;
+    resultcodes.clear();
+    exists_ = false;
+    sibling_count_ = 0;
+  }
+
+  static void stub_setNextRecordResultCodes(
+    const std::map<uint8_t,DalResultCode>&  amap) {
+    resultcodes=amap;
+  }
+
+private:
+  DalResultCode stub_getMappedResultCode(Method) const;
+
+  inline DalResultCode
+  initCursor(DalCursor **cursor, const DalBindInfo *info, Method type) const
+  {
+    DalResultCode ret(stub_getMappedResultCode(type));
+    if (ret == kDalRcSuccess) {
+      *cursor = new DalCursor(info);
     }
-  private:
-    DalResultCode stub_getMappedResultCode(Method);
-    static std::map<DalOdbcMgr::Method,DalResultCode> method_resultcode_map;
-    static  bool exists_;
-    static uint32_t sibling_count_;
-    mutable DalConnType conn_type_;
-    static map<uint8_t,DalResultCode> resultcodes;
-    static uint32_t count;
-
-
+    return ret;
+  }
+
+  inline DalResultCode
+  initCursor(DalCursor **cursor, const DalBindInfo *info1,
+             const DalBindInfo *info2, Method type) const
+  {
+    DalResultCode ret(stub_getMappedResultCode(type));
+    if (ret == kDalRcSuccess) {
+      *cursor = new DalCursor(info1, info2);
+    }
+    return ret;
+  }
+
+  static std::map<DalOdbcMgr::Method,DalResultCode> method_resultcode_map;
+  static  bool exists_;
+  static uint32_t sibling_count_;
+  mutable DalConnType conn_type_;
+  static map<uint8_t,DalResultCode> resultcodes;
+  static uint32_t count;
 };  // class DalOdbcMgr
 
 }  // namespace dal
index dc411073a6e217308a5f04dc02e48402bae079ad..719d1c31e694fac1af16d58d39a3506fec547b75 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 /*
  * dal_schema.cc - contians schema information of all tables
index 058ba966243bdc2a34c3fce306fd1ec47759c054..abac23888a2dd4b3d71270e0fb57a70ce716e3c8 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 /*
  * dal_schema.hh - contians schema information of all tables
diff --git a/coordinator/test/modules/upll/ut/stub/dal/include/dal_bind_column_info.hh b/coordinator/test/modules/upll/ut/stub/dal/include/dal_bind_column_info.hh
deleted file mode 100644 (file)
index 4c709f5..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-#include "../../../../../../../modules/dal/dal_bind_column_info.hh"
diff --git a/coordinator/test/modules/upll/ut/stub/dal/include/dal_conn_intf.hh b/coordinator/test/modules/upll/ut/stub/dal/include/dal_conn_intf.hh
deleted file mode 100644 (file)
index f69c0d5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-/*
- * dal_conn_intf.h
- *   Contians class definition for Database connection and transaction
- *   interfaces
- *
- *   Implemented by DalOdbcMgr
- */
-#ifndef __DAL_CONN_INTF_HH__
-#define __DAL_CONN_INTF_HH__
-
-#include "dal_defines.hh"
-
-namespace unc {
-namespace upll {
-namespace dal {
-
-enum DalConnType {
-  kDalConnReadOnly = 0,  // Read Only Connection
-  kDalConnReadWrite      // Read Write Connection
-};
-
-/**
- *  DalConnIntf
- *    Connection and Transaction APIs for database
- *
- *  Inherited by DalOdbcMgr
- */
-class DalConnIntf {
-  public:
-    /**
-     * DalConnIntf - Constructor
-     *
-     * @return void             - None
-     */
-    DalConnIntf() {
-    }
-
-    /**
-     * ~DalConnIntf - Destructor
-     *
-     * @return void             - None
-     */
-    virtual ~DalConnIntf() {
-    }
-
-    /**
-     * ConnectToDb
-     *   Connects to the DB with the connection parameters from conf file.
-     *
-     * @param[in] conn_type       - Type of the connection (Read-Only or Read/Write)
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     */
-    virtual DalResultCode ConnectToDb(const DalConnType conn_type)= 0;
-
-    /**
-     * DisconnectFromDb
-     * Disconnects from the database for the corresponding connection
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     */
-    virtual DalResultCode DisconnectFromDb() = 0;
-
-    /**
-     * CommitTransaction
-     * Commits all the pending changes in the database for the correpsonding
-     * connection.
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     */
-    virtual DalResultCode CommitTransaction() = 0;
-
-    /**
-     * RollbackTransaction
-     * Discards all the pending changes in the database for the correpsonding
-     * connection.
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     */
-    virtual DalResultCode RollbackTransaction() = 0;
-
-    virtual DalConnType get_conn_type() = 0;
-
-
-};
-
-}  // namespace dal
-}  // namespace upll
-}  // namespace unc
-#endif  // __DAL_CONN_INTF_HH__
diff --git a/coordinator/test/modules/upll/ut/stub/dal/include/dal_defines.hh b/coordinator/test/modules/upll/ut/stub/dal/include/dal_defines.hh
deleted file mode 100644 (file)
index 7a6bee6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-#include "../../../../../../../modules/dal/dal_defines.hh"
-
diff --git a/coordinator/test/modules/upll/ut/stub/dal/include/dal_dml_intf.hh b/coordinator/test/modules/upll/ut/stub/dal/include/dal_dml_intf.hh
deleted file mode 100644 (file)
index 6ed8969..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-/*      Copyright (c) 2013 NEC Corporation                        */
-/*      NEC CONFIDENTIAL AND PROPRIETARY                          */
-/*      All rights reserved by NEC Corporation.                   */
-/*      This program must be used solely for the purpose for      */
-/*      which it was furnished by NEC Corporation.   No part      */
-/*      of this program may be reproduced  or  disclosed  to      */
-/*      others,  in  any form,  without  the  prior  written      */
-/*      permission of NEC Corporation.    Use  of  copyright      */
-/*      notice does not evidence publication of the program.      */
-
-/*
- * dal_dml_intf.hh
- *   Contains definition of DalDmlIntf
- *   DML interface of database
- * 
- * Implemented by DalOdbcMgr
- */ 
-
-#ifndef __DAL_DML_INTF_HH__
-#define __DAL_DML_INTF_HH__
-
-#include <stdint.h>
-#include "dal_defines.hh"
-#include "dal_bind_info.hh"
-#include "dal_schema.hh"
-#include "dal_cursor.hh"
-
-namespace unc {
-namespace upll {
-namespace dal {
-
-/**
- *  DalConnIntf 
- *    Database management query APIs for database
- *
- *  Inherited by DalOdbcMgr
- */
-class DalDmlIntf {
-  public:
-    /**
-     * DalDmlIntf - Constructor
-     *
-     * @return void             - None
-     */
-    DalDmlIntf() {
-    }
-
-    /**
-     * DalDmlIntf - Constructor
-     *
-     * @return void             - None
-     */
-
-    virtual ~DalDmlIntf() {
-    }
-
-    /**
-     * GetSingleRecords
-     *   Gets single record of the given table that matches the given values
-     *
-     * @param[in] cfg_type        - Configuration Type from which the matching
-     *                              records are required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] output_and_matching_attr_info
-     *                            - Bind Information for matching and output
-     *                              attributes
-     *                            - Output values are populated in the dal
-     *                              output buffer bound, on successful execution
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Mandatory.
-     *     It is recommended to bind all the primary keys to get a unique ouput.
-     *  4. BindOutput is mandatory for the interested attributes.
-     */
-    virtual DalResultCode GetSingleRecord(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *ouput_and_matching_attr_info) const = 0;
-
-    /**
-     * GetMultipleRecords
-     *   Gets the records of the given table that matches the given values
-     *
-     * @param[in] cfg_type        - Configuration Type from which the matching
-     *                              records are required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] max_record_count- Will be filled later. Under discussion
-     * @param[in] output_and_matching_attr_info
-     *                            - Bind Information for matching and output
-     *                              attributes
-     * @param[in/out] cursor      - reference to the unallocated DalCursor
-     *                              pointer
-     *                            - Output - cursor pointer with valid instance
-     *                              of DalCursor
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Optional.
-     *     If not used, return all the records of the table.
-     *  4. BindOutput is mandatory for the interested attributes.
-     *
-     * Information on usage of cursor
-     *  1. Input - Reference to the unallocated DalCursor pointer.
-     *  2. Output - Allocated cursor pointer with valid instance of DalCursor
-     *  3. GetNextRecord with this cursor as input populates the output
-     *     records to the output_attr_info
-     *  4. Only the attributes bound for output are populated in
-     *     output_attr_info
-     *  5. CloseCursor with this cursor as input will destroy the cursor object
-     */
-    virtual DalResultCode GetMultipleRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor) const = 0;
-
-    /**
-     * GetNextRecord
-     *   Gets the next record pointer by the cursor.
-     *   aavailable.
-     *
-     * @param[in] cursor          - Pointer to the valid cursor instance
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * On successful execution, the values of the attributes that are bound for
-     * output are populated in the dal user output buffer
-     */
-    virtual DalResultCode GetNextRecord(const DalCursor *cursor) const = 0;
-
-    /**
-     * CloseCursor
-     *   Close and destroy the cursor. After this call, cursor object is not
-     *   aavailable.
-     *
-     * @param[in] cursor          - Pointer to the valid cursor instance
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     */
-    virtual DalResultCode CloseCursor(DalCursor *cursor) const = 0;
-
-    /**
-     * RecordExists
-     *   Checks the existence of the record that matches the given values from
-     *   the table
-     *
-     * @param[in] cfg_type        - Configuration Type from which the count is
-     *                              required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] matching_attr_info
-     *                            - Bind Information for matching attributes
-     * @param[in/out] existence   - Input - Reference to the existence variable
-     *                            - Output - contains valid existence value on
-     *                              successful execution
-     *                              true - if record exists
-     *                              false - if record not exists
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Mandatory.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode RecordExists(const UpllCfgType cfg_type,
-                               const DalTableIndex table_index,
-                               const DalBindInfo *matching_attr_info,
-                               bool *existence) const = 0;
-
-    /**
-     * GetSiblingBegin
-     *   Gets the sibling records from the begin to the given matching record
-     *   of the table from the given cfg_type
-     *
-     * @param[in] cfg_type        - Configuration Type from which the
-     *                              sibling records are required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] max_record_count- Will be filled later. Under discussion
-     * @param[in] output_and_matching_attr_info
-     *                            - Bind Information for matching and output
-     *                              attributes
-     * @param[in/out] cursor      - reference to the unallocated DalCursor
-     *                              pointer
-     *                            - Output - cursor pointer with valid instance
-     *                              of DalCursor
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Definition of Sibling Begin
-     *   Records that match the last but one bound attributes
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Optional.
-     *     It is recommended to bind only the primary keys.
-     *  4. BindOutput is mandatory for the interested attributes.
-     *
-     * Information on usage of cursor
-     *  1. Input - Reference to the unallocated DalCursor pointer.
-     *  2. Output - Allocated cursor pointer with valid instance of DalCursor
-     *  3. GetNextRecord with this cursor as input populates the output
-     *     records to the output_attr_info
-     *  4. Only the attributes bound for output are populated in
-     *     output_attr_info
-     *  5. CloseCursor with this cursor as input will destroy the cursor object
-     */
-    virtual DalResultCode GetSiblingBegin(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor) const = 0;
-
-    /**
-     * GetSiblingRecords
-     *   Gets the sibling records to the given matching record of the
-     *   table from the given cfg_type
-     *
-     * @param[in] cfg_type        - Configuration Type from which the
-     *                              sibling records are required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] max_record_count- Will be filled later. Under discussion
-     * @param[in] output_and_matching_attr_info
-     *                            - Bind Information for matching and output
-     *                              attributes
-     * @param[in/out] cursor      - reference to the unallocated DalCursor
-     *                              pointer
-     *                            - Output - cursor pointer with valid instance
-     *                              of DalCursor
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Definition of Sibling
-     *   Records that match the last but one bound attributes and the last
-     *   bound attribute with greater values
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is mandatory.
-     *     It is recommended to bind only the primary keys.
-     *  4. BindOutput is mandatory for the interested attributes.
-     *
-     * Information on usage of cursor
-     *  1. Input - Reference to the unallocated DalCursor pointer.
-     *  2. Output - Allocated cursor pointer with valid instance of DalCursor
-     *  3. GetNextRecord with this cursor as input populates the output
-     *     records to the output_attr_info
-     *  4. Only the attributes bound for output are populated in
-     *     output_attr_info
-     *  5. CloseCursor with this cursor as input will destroy the cursor object
-     */
-    virtual DalResultCode GetSiblingRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *ouput_and_matching_attr_info,
-                    DalCursor **cursor) const = 0;
-
-    /**
-     * GetSiblingCount
-     *   Gets the count of sibling records to the given matching record of the
-     *   table from the given cfg_type
-     *
-     * @param[in] cfg_type        - Configuration Type from which the count of
-     *                              sibling records is required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] matching_attr_info
-     *                            - Bind Information for matching attributes
-     * @param[in/out] count       - Input - Reference to the count variable
-     *                            - Output - contains valid count value on
-     *                              successful execution
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Definition of Sibling
-     *   Records that match the last but one bound attributes and the last
-     *   bound attribute with greater values
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Mandatory.
-     *     It is recommended to bind only the primary keys.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode GetSiblingCount(const UpllCfgType cfg_type,
-                                  const DalTableIndex table_index,
-                                  const DalBindInfo *matching_attr_info,
-                                  uint32_t *count) const = 0;
-
-    /**
-     * GetRecordCount
-     *   Gets the count of the records of the table from the given cfg_type
-     *   that match the given values.
-     *
-     * @param[in] cfg_type        - Configuration Type from which the count is
-     *                              required
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] matching_attr_info
-     *                            - Bind Information for matching attributes
-     * @param[in/out] count       - Input - Reference to the count variable
-     *                            - Output - contains valid count value on
-     *                              successful execution
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is optional.
-     *     BindMatch if used, count has the number of records that match the
-     *     given values.
-     *     BindMatch if not used, count has the number of records in the table.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode GetRecordCount(const UpllCfgType cfg_type,
-                                 const DalTableIndex table_index,
-                                 const DalBindInfo *matching_attr_info,
-                                 uint32_t *count) const = 0;
-
-    /**
-     * DeleteRecords
-     *   Deletes the records of table from the given cfg_type
-     *
-     * @param[in] cfg_type        - Configuration Type for which the records
-     *                              have to be updated
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] matching_attr_info
-     *                            - Bind Information for deleting records
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is optional.
-     *     But it is recommended to provide all primary keys for match to
-     *     delete unique record.
-     *     BindMatch if used, deletes all the records that match the given
-     *     values.
-     *     BindMatch if not used, deletes all the records from the table.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode DeleteRecords(const UpllCfgType cfg_type,
-                                const DalTableIndex table_index,
-                                const DalBindInfo *matching_attr_info) const = 0;
-
-    /**
-     * CreateRecord
-     *   Creates the record in table with the given input data for 
-     *   the given cfg_type
-     *
-     * @param[in] cfg_type        - Configuration Type for which the record
-     *                              has to be created
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] input_attr_info - Bind Information for creating record
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput is mandatory for the interested attributes.
-     *     It is mandatory to bind input for all primary keys.
-     *  3. BindMatch if used for any attributes, ignored.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode CreateRecord(const UpllCfgType cfg_type,
-                               const DalTableIndex table_index,
-                               const DalBindInfo *input_attr_info) const = 0;
-
-    /**
-     * UpdateRecords
-     *   Updates the records of table with the given input data for 
-     *   the given cfg_type
-     *
-     * @param[in] cfg_type        - Configuration Type for which the records
-     *                              have to be updated
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] input_and_matching_attr_info
-     *                            - Bind Information for updating records
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput is mandatory for the interested attributes.
-     *  3. BindMatch is optional.
-     *     But it is recommended to provide all primary keys for match to
-     *     update unique record.
-     *     BindMatch if used, updates multiple records that match the given
-     *     values.
-     *     BindMatch if not used, updates all the records from the table.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode UpdateRecords(
-                    const UpllCfgType cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *input_and_matching_attr_info) const = 0;
-
-    /**
-     * GetDeletedRecords
-     *   Fetches the records from cfg_type_2 which are not in cfg_type_1
-     *
-     * @param[in] cfg_type_1      - Configuration Type 1
-     *                              (not equal to cfg_type_2)
-     * @param[in] cfg_type_2      - Configuration Type 2
-     *                              (not equal to cfg_type_1)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] max_record_count- Will be filled later. Under discussion
-     * @param[in] output_attr_info
-     *                            - Bind Information for output records
-     * @param[in/out] cursor      - reference to the unallocated DalCursor
-     *                              pointer
-     *                            - Output - cursor pointer with valid instance
-     *                              of DalCursor
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch if used for any attributes, ignored.
-     *  4. BindOutput is mandatory for the interested attributes.
-     *
-     * Information on usage of cursor
-     *  1. Input - Reference to the unallocated DalCursor pointer.
-     *  2. Output - Allocated cursor pointer with valid instance of DalCursor
-     *  3. GetNextRecord with this cursor as input populates the output
-     *     records to the output_attr_info
-     *  4. Only the attributes bound for output are populated in
-     *     output_attr_info
-     *  5. CloseCursor with this cursor as input will destroy the cursor object
-     */
-    virtual DalResultCode GetDeletedRecords(const UpllCfgType cfg_type_1,
-                                    const UpllCfgType cfg_type_2,
-                                    const DalTableIndex table_index,
-                                    const size_t max_record_count,
-                                    const DalBindInfo *output_attr_info,
-                                    DalCursor **cursor) const = 0;
-
-    /**
-     * GetCreatedRecords
-     *   Fetches the records from cfg_type_1 which are not in cfg_type_2
-     *
-     * @param[in] cfg_type_1      - Configuration Type 1
-     *                              (not equal to cfg_type_2)
-     * @param[in] cfg_type_2      - Configuration Type 2
-     *                              (not equal to cfg_type_1)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] max_record_count- Will be filled later. Under discussion
-     * @param[in] output_attr_info
-     *                            - Bind Information for output records
-     * @param[in/out] cursor      - reference to the unallocated DalCursor
-     *                              pointer
-     *                            - Output - cursor pointer with valid instance
-     *                              of DalCursor
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch if used for any attributes, ignored.
-     *  4. BindOutput is mandatory for the interested attributes.
-     *
-     * Information on usage of cursor
-     *  1. Input - Reference to the unallocated DalCursor pointer.
-     *  2. Output - Allocated cursor pointer with valid instance of DalCursor
-     *  3. GetNextRecord with this cursor as input populates the output
-     *     records to the output_attr_info
-     *  4. Only the attributes bound for output are populated in
-     *     output_attr_info
-     *  5. CloseCursor with this cursor as input will destroy the cursor object
-     */
-    virtual DalResultCode GetCreatedRecords(const UpllCfgType cfg_type_1,
-                                    const UpllCfgType cfg_type_2,
-                                    const DalTableIndex table_index,
-                                    const size_t max_record_count,
-                                    const DalBindInfo *output_attr_info,
-                                    DalCursor **cursor) const = 0;
-
-    /**
-     * GetUpdatedRecords
-     *   Fetches the records from cfg_type_1 and cfg_type_2,
-     *   that are updated in cfg_type_1 as compared to cfg_type_2
-     *
-     * @param[in] cfg_type_1      - Configuration Type 1
-     *                              (not equal to cfg_type_2)
-     * @param[in] cfg_type_2      - Configuration Type 2
-     *                              (not equal to cfg_type_1)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] max_record_count- Will be filled later. Under discussion
-     * @param[in] cfg_1_output_and_match_attr_info
-     *                            - Bind Information for output records of
-     *                            - cfg_type_1
-     * @param[in] cfg_2_output_and_match_attr_info
-     *                            - Bind Information for output records of
-     *                            - cfg_type_2
-     * @param[in/out] cursor      - reference to the unallocated DalCursor
-     *                              pointer
-     *                            - Output - cursor pointer with valid instance
-     *                              of DalCursor
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is optional.
-     *     BindMatch if used, Primary Key attributes are mandtory.
-     *     BindMatch if used, comparison is done only for the bound columns
-     *     BindMatch if not used, comparison is done only for all the columns.
-     *     Bound value is not used for comparison. The comparison is performed
-     *     between the values in the cfg_type_1 and cfg_type_2 for the specific
-     *     columns.
-     *     Both cfg_type_1 and cfg_type_2 should bind same columns for match
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     *  4. BindOutput is mandatory for the interested attributes.
-     *
-     * Information on usage of cursor
-     *  1. Input - Reference to the unallocated DalCursor pointer.
-     *  2. Output - Allocated cursor pointer with valid instance of DalCursor
-     *  3. GetNextRecord with this cursor as input populates the output records
-     *     of cfg_type_1 and cfg_type_2 to the correponding DalBindInfo
-     *     instances.
-     *  4. Only the attributes bound for output are populated in both
-     *     cfg_1_output_attr_info and cfg_2_output_attr_info.
-     *  5. CloseCursor with this cursor as input will destroy the cursor object
-     */
-    virtual DalResultCode GetUpdatedRecords(
-                    const UpllCfgType cfg_type_1,
-                    const UpllCfgType cfg_type_2,
-                    const DalTableIndex table_index,
-                    const size_t max_record_count,
-                    const DalBindInfo *cfg_1_output_and_match_attr_info,
-                    const DalBindInfo *cfg_2_output_and_match_attr_info,
-                    DalCursor **cursor) const = 0;
-
-    /**
-     * CopyEntireRecords
-     *   Copies the entire records of table from source configuration to
-     *   destination configuration.
-     *
-     * @param[in] dest_cfg_type   - Configuration Type where the records to be
-     *                              copied (not equal to src_cfg_type)
-     * @param[in] src_cfg_type    - Configuration Type from where the records
-     *                              will be copied (not equal to dest_cfg_type)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] output_attr_info
-     *                            - Bind Information for output columns
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *                              On successful execution, both the
-     *                              configurations have same records.
-     *
-     * Note:
-     * Information on Copy Logic
-     * 1. Remove the entire records of the dest_cfg_type
-     * 2. Copy the entire records from src_cfg_type to dest_cfg_type
-     * 3. Recommended to use this API, where difference between both the
-     *    configurations are drastically more.
-     *
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch if used for any attributes, ignored.
-     *  4. BindOutput is optional.
-     *     BindOutput, if used, copy the values of bound columns from
-     *     src_cfg_type to dst_cfg_type
-     *     BindOutput, if not used, copy the values of all columns from
-     *     src_cfg_type to dst_cfg_type
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     */
-    virtual DalResultCode CopyEntireRecords(const UpllCfgType dest_cfg_type,
-                                    const UpllCfgType src_cfg_type,
-                                    const DalTableIndex table_index,
-                                    const DalBindInfo *output_attr_info) const = 0;
-
-    /**
-     * CopyModifiedRecords
-     *   Copies the entire records of table from source configuration to
-     *   destination configuration.
-     *
-     * @param[in] dest_cfg_type   - Configuration Type where the records to be
-     *                              copied (not equal to src_cfg_type)
-     * @param[in] src_cfg_type    - Configuration Type from where the records
-     *                              will be copied (not equal to dest_cfg_type)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] output_and_match_attr_info
-     *                            - Bind Information for output and match
-     *                            - columns
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *                              On successful execution, both the
-     *                              configurations have same records.
-     *
-     * Note:
-     * Information on Copy Logic
-     * 1. Remvoe the records from dest_cfg_type that are result of
-     *    GetDeletedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 2. Add the records in dest_cfg_type that are result of
-     *    GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 3. Update the records in dest_cfg_type with the records from 
-     *    src_cfg_type that are result of
-     *    GetUpdatedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 4. Recommended to use this API, where difference between both the
-     *    configurations are comparitively lesser.
-     *    
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is optional. Used in step 3 of Copy Logic.
-     *     BindMatch if used, Primary Key attributes are mandtory.
-     *     BindMatch if used, comparison is done only for the bound columns
-     *     BindMatch if not used, comparison is done only for all the columns.
-     *     Bound value is not used for comparison. The comparison is performed
-     *     between the values in the cfg_type_1 and cfg_type_2 for the specific
-     *     columns.
-     *     Both src_cfg_type and dst_cfg_type_2 should bind same columns
-     *     for match
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL.
-     *  4. BindOutput is optional.
-     *     BindOutput, if used, copy the values of bound columns from
-     *     src_cfg_type to dst_cfg_type
-     *     BindOutput, if not used, copy the values of all columns from
-     *     src_cfg_type to dst_cfg_type
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     *
-     */
-    virtual DalResultCode CopyModifiedRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) const = 0;
-
-    /**
-     * CopyMatchingRecords
-     *   Copies all the matching records of table from source configuration to
-     *   destination configuration.
-     *
-     * @param[in] dest_cfg_type   - Configuration Type where the records to be
-     *                              copied (not equal to src_cfg_type)
-     * @param[in] src_cfg_type    - Configuration Type from where the records
-     *                              will be copied (not equal to dest_cfg_type)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] output_and_match_attr_info
-     *                            - Bind Information for match and ouput columns
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Mandatory.
-     *  4. BindOutput is optional.
-     *     BindOutput, if used, Primary Key columns are mandatory.
-     *     BindOutput, if used, copy the values of bound columns from
-     *     src_cfg_type to dst_cfg_type
-     *     BindOutput, if not used, copy the values of all columns from
-     *     src_cfg_type to dst_cfg_type
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     */
-    virtual DalResultCode CopyMatchingRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) const = 0;
-
-    /**
-     * CheckRecordsIdentical
-     *   Checks whether cfg_type_1 and cfg_type_2 configurations contains same
-     *   records in the given table.
-     *
-     * @param[in] cfg_type_1      - Configuration Type 1
-     *                              (not equal to cfg_type_2)
-     * @param[in] cfg_type_2      - Configuration Type 2
-     *                              (not equal to cfg_type_1)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] matching_attr_info
-     *                            - Bind Information for comparing columns
-     * @param[in/out] identical   - Pointer to the identical value.
-     *                            - On successful execution, contains
-     *                              true, if both config have same records
-     *                              false, if not
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *
-     * Note:
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch is Optional.
-     *     If used, comparison is done only for bound columns.
-     *     If not used, comparison is done for all the columns.
-     *     Bound value is not used for comparison. The comparison is performed
-     *     between the values in the cfg_type_1 and cfg_type_2 for the specific
-     *     columns.
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     *  4. BindOutput if used for any attributes, ignored.
-     */
-    virtual DalResultCode CheckRecordsIdentical(const UpllCfgType cfg_type_1,
-                                        const UpllCfgType cfg_type_2,
-                                        const DalTableIndex table_index,
-                                        const DalBindInfo *matching_attr_info,
-                                        bool *identical) const = 0;
-};  // class DalDmlIntf
-
-};  // namespace dal
-};  // namespace upll
-};  // namespace unc
-#endif  // __DAL_DML_INTF_HH__
diff --git a/coordinator/test/modules/upll/ut/stub/dal/include/dal_schema.hh b/coordinator/test/modules/upll/ut/stub/dal/include/dal_schema.hh
deleted file mode 100644 (file)
index c7d900c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-#include "../../../../../../../modules/dal/dal_schema.hh"
-
-
diff --git a/coordinator/test/modules/upll/ut/stub/include/VrtIfstub.hh b/coordinator/test/modules/upll/ut/stub/include/VrtIfstub.hh
deleted file mode 100644 (file)
index c02172d..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*\r
-* Copyright (c) 2012-2013 NEC Corporation\r
-* All rights reserved.\r
-*\r
-* This program and the accompanying materials are made available under the\r
-* terms of the Eclipse Public License v1.0 which accompanies this\r
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-*/\r
-\r
-\r
-#include "vrt_if_momgr.hh"\r
-#include <stdio.h>\r
-#include "momgr_impl.hh"\r
-#include "ipct_st.hh"\r
-#include "unc/keytype.h"\r
-#include "config_mgr.hh"\r
-#include "dal/dal_odbc_mgr.hh"\r
-#include "dal/dal_dml_intf.hh"\r
-#include "tclib_module.hh"\r
-#include "config_mgr.hh"\r
-#include "dal_defines.hh"\r
-\r
-using namespace unc::upll::kt_momgr;\r
-\r
-  enum Method\r
-  {Read1, Read2};\r
-\r
-class VrtIfstub : public VrtIfMoMgr {\r
-public:\r
-VrtIfstub() {std::cout<<"In VrtIfConstructor \n";}\r
-  static std::map<Method, upll_rc_t> stub_result_map;\r
-\r
-upll_rc_t ReadConfigDB(ConfigKeyVal *ikey,\r
-                                  upll_keytype_datatype_t dt_type,\r
-                                  unc_keytype_operation_t op,\r
-                                  DbSubOp dbop,\r
-                                  DalDmlIntf *dmi,\r
-                                  MoMgrTables tbl){\r
-std::cout << "hellllloooooooooooooo\n";\r
-return stub_result_map[Read1];\r
-}\r
-\r
-upll_rc_t ReadConfigDB(ConfigKeyVal *ikey,\r
-                                  upll_keytype_datatype_t dt_type,\r
-                                  unc_keytype_operation_t op,\r
-                                  DbSubOp dbop,\r
-                                  uint32_t &sibling_count,\r
-                                  DalDmlIntf *dmi,\r
-                                  MoMgrTables tbl) {\r
-std::cout << "hellllloooooooooooooo\n";\r
-return stub_result_map[Read2];\r
-}\r
-\r
-const MoManager *GetMoManager(unc_key_type_t kt) {\r
- std::cout<<" Get MoManager called \n";\r
- return new VrtIfstub();\r
-}\r
-\r
-                                                \r
-};\r
-std::map<Method, upll_rc_t> VrtIfstub::stub_result_map;\r
index c69ff4c35a750c12df709e297a7111066447a3da..491bcfbbe66324c0db9296a0fbab66c7137288d9 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #ifndef        _PFC_IPC_CLIENT_H
 #define        _PFC_IPC_CLIENT_H
@@ -466,6 +466,7 @@ inline int
 pfc_ipcclnt_altopen(const char *PFC_RESTRICT name,
                    pfc_ipcconn_t *PFC_RESTRICT connp)
 {
+       *connp = 1;
        return result_;
 }
 
index 466e97e11e9bd8929c6536da764cf8646b5b1191..b5d86dabc8ce2d4e6d713e1a6dc1bc83eb843002 100644 (file)
-/*\r
-* Copyright (c) 2012-2013 NEC Corporation\r
-* All rights reserved.\r
-*\r
-* This program and the accompanying materials are made available under the\r
-* terms of the Eclipse Public License v1.0 which accompanies this\r
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-*/\r
-\r
-\r
-#include <pfc/ipc.h>\r
-#include <netinet/in.h>\r
-#include <string>\r
-#include <map>\r
-#include <list>\r
-#include <pfc/ipc_client.h>\r
-#include <pfcxx/ipc_server.hh>\r
-\r
-#ifndef _PFCXX_IPC_CLIENT_HH\r
-#define _PFCXX_IPC_CLIENT_HH\r
-\r
-namespace pfc {\r
-namespace core {\r
-namespace ipc {\r
-\r
-class ClientSession\r
-{\r
-    friend class  ::pfc::core::ipc::ServerSession;\r
-\r
-public:\r
-    /*\r
-     * Constructors.\r
-     */\r
-    ClientSession(const char *name, pfc_ipcid_t service, int &err);\r
-    ClientSession(const char *name, pfc_ipcid_t service, int &err,\r
-                  uint32_t flags);\r
-    ClientSession(const std::string &name, pfc_ipcid_t service, int &err);\r
-    ClientSession(const std::string &name, pfc_ipcid_t service, int &err,\r
-                  uint32_t flags);\r
-    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,\r
-                  int &err);\r
-    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,\r
-                  int &err, uint32_t flags);\r
-    ClientSession(pfc_ipcconn_t conn, const std::string &name,\r
-                  pfc_ipcid_t service, int &err);\r
-    ClientSession(pfc_ipcconn_t conn, const std::string &name,\r
-                  pfc_ipcid_t service, int &err, uint32_t flags);\r
-    explicit ClientSession();\r
-\r
-    /*\r
-     * Destructor.\r
-     */\r
-    ~ClientSession();\r
-\r
-    /*\r
-     * Instance methods.\r
-     */\r
-    int   reset(const char *name, pfc_ipcid_t service);\r
-    int   reset(const std::string &name, pfc_ipcid_t service);\r
-\r
-    int   setTimeout(const pfc_timespec_t *timeout=NULL);\r
-    int   invoke(pfc_ipcresp_t &response);\r
-    int   cancel(pfc_bool_t discard=PFC_FALSE);\r
-    int   forward(ClientSession &sess, uint32_t begin = 0,\r
-                  uint32_t end = UINT32_MAX);\r
-    int   forward(ServerSession &sess, uint32_t begin = 0,\r
-                  uint32_t end = UINT32_MAX);\r
-    int   forwardTo(ServerSession &sess, uint32_t begin = 0,\r
-                    uint32_t end = UINT32_MAX);\r
-\r
-    int   addOutput(int8_t data);\r
-    int   addOutputInt8(int8_t data);\r
-    int   addOutput(uint8_t data);\r
-    int   addOutputUint8(uint8_t data);\r
-    int   addOutput(int16_t data);\r
-    int   addOutputInt16(int16_t data);\r
-    int   addOutput(uint16_t data);\r
-    int   addOutputUint16(uint16_t data);\r
-    int   addOutput(int32_t data);\r
-    int   addOutputInt32(int32_t data);\r
-    int   addOutput(uint32_t data);\r
-    int   addOutputUint32(uint32_t data);\r
-    int   addOutput(int64_t data);\r
-    int   addOutputInt64(int64_t data);\r
-    int   addOutput(uint64_t data);\r
-    int   addOutputUint64(uint64_t data);\r
-    int   addOutput(float data);\r
-    int   addOutputFloat(float data);\r
-    int   addOutput(double data);\r
-    int   addOutputDouble(double data);\r
-    int   addOutput(struct in_addr &data);\r
-    int   addOutput(struct in6_addr &data);\r
-    int   addOutput(const char *data);\r
-    int   addOutput(const std::string &data);\r
-    int   addOutput(const uint8_t *data, uint32_t length);\r
-    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);\r
-    int   addOutput(void);\r
-\r
-    int   getResponse(uint32_t index, int8_t &data);\r
-    int   getResponse(uint32_t index, uint8_t &data);\r
-    int   getResponse(uint32_t index, int16_t &data);\r
-    int   getResponse(uint32_t index, uint16_t &data);\r
-    int   getResponse(uint32_t index, int32_t &data);\r
-    int   getResponse(uint32_t index, uint32_t &data);\r
-    int   getResponse(uint32_t index, int64_t &data);\r
-    int   getResponse(uint32_t index, uint64_t &data);\r
-    int   getResponse(uint32_t index, float &data);\r
-    int   getResponse(uint32_t index, double &data);\r
-    int   getResponse(uint32_t index, struct in_addr &data);\r
-    int   getResponse(uint32_t index, struct in6_addr &data);\r
-    int   getResponse(uint32_t index, const char *&data);\r
-    int   getResponse(uint32_t index, const uint8_t *&data, uint32_t &length);\r
-    int   getResponse(uint32_t index, const pfc_ipcstdef_t &def,\r
-                      pfc_ptr_t datap);\r
-\r
-    uint32_t getResponseCount(void);\r
-    int getResponseType(uint32_t index, pfc_ipctype_t& type);\r
-\r
-    int   getResponseStructName(uint32_t index, const char *&name);\r
-    int   getResponseStructName(uint32_t index, std::string &name);\r
-\r
-    //stubs\r
-    static void stub_setResponseStructName(uint32_t index, std::string &name);\r
-    static void clearStubData(void);\r
-    static void stub_setResponse(int result);\r
-    static void stub_setResponsetype(uint32_t index,pfc_ipctype_t ipctype );\r
-    static void stub_setClientSessionErrorCode(int result);\r
-    static void stub_setAddOutput(int result);\r
-    static void stub_setAddOutput(uint32_t result);\r
-    static void stub_setAddOutput(const char* data);\r
-    static void stub_setResponseCount(int argCount);\r
-    static void stub_setResponse( uint32_t index,uint32_t value );\r
-    static void stub_setinvoke(pfc_ipcresp_t ipcresp,int err);\r
-\r
-private:\r
-// TODO add comments\r
-// TODO keep only modifed files; rest take it from system directory\r
-// TODO keep all stubs inside stub directory\r
-// TODO all changes prefix/suffic with stub_/_stub.\r
-    //stub data\r
-    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;\r
-    static std::map<uint32_t,std::string> structNameMap;//<index,structname>\r
-    static std::map<uint32_t,uint32_t> arg_map;\r
-    static std::list<uint32_t> add_output_list;//list of addoutput values\r
-    static int addOutPut_;\r
-    static int responseResult_;\r
-    static int ClientsesErrorCode_;\r
-    static int argCount_;\r
-    static pfc_ipcresp_t ipcresp_;\r
-    static int err_;\r
-    static std::list<const char*> add_output_str;\r
-};\r
-\r
-class IpcEventMask\r
-{\r
-\r
-public:\r
-    /* Create an event mask which contains all IPC event types. */\r
-    IpcEventMask(): _mask(PFC_IPC_EVENT_MASK_FILL) {}\r
-\r
-    /* Create an event mask which contains the specified IPC event type. */\r
-    explicit IpcEventMask(pfc_ipcevtype_t type)\r
-        : _mask(PFC_IPC_EVENT_MASK_BIT(type)) {}\r
-\r
-    /* Copy constructor. */\r
-    explicit IpcEventMask(const IpcEventMask &mask) : _mask(mask._mask) {}\r
-\r
-\r
-    inline void\r
-    empty(void)\r
-    {\r
-\r
-    }\r
-\r
-\r
-    inline void\r
-    fill(void)\r
-    {\r
-\r
-    }\r
-\r
-    inline int\r
-    add(pfc_ipcevtype_t type)\r
-    {\r
-        return 0;\r
-    }\r
-\r
-    inline int\r
-    remove(pfc_ipcevtype_t type)\r
-    {\r
-        return 0;\r
-    }\r
-\r
-    inline pfc_bool_t\r
-    test(pfc_ipcevtype_t type) const\r
-    {\r
-        return true;\r
-    }\r
-    inline const pfc_ipcevmask_t *\r
-    getMask(void) const\r
-    {\r
-        return &_mask;\r
-    }\r
-\r
-private:\r
-    /* Event mask value. */\r
-    pfc_ipcevmask_t    _mask;\r
-};\r
-\r
-class IpcEventAttr\r
-{\r
-public:\r
-   IpcEventAttr()\r
-   {\r
-\r
-   }\r
-\r
-\r
-   ~IpcEventAttr()\r
-   {\r
-\r
-   }\r
-\r
-\r
-   inline void\r
-   getHostSet(const char *&name) const\r
-   {\r
-\r
-\r
-   }\r
-\r
-\r
-   inline int\r
-   setHostSet(const char *name)\r
-   {\r
-       return 0;\r
-   }\r
-\r
-   inline void\r
-   getTarget(const char *service, IpcEventMask &mask) const\r
-   {\r
-\r
-\r
-   }\r
-\r
-   inline int\r
-   addTarget(const char *service)\r
-   {\r
-       return 0;\r
-   }\r
-\r
-   inline int\r
-   addTarget(const char *service, const IpcEventMask &mask)\r
-   {\r
-       return 0;\r
-   }\r
-\r
-\r
-   inline void\r
-   resetTarget(void)\r
-   {\r
-\r
-   }\r
-\r
-   inline void\r
-   getPriority(uint32_t &priority) const\r
-   {\r
-\r
-   }\r
-\r
-   inline void\r
-   setPriority(uint32_t priority)\r
-   {\r
-\r
-   }\r
-\r
-   inline void\r
-   getLog(pfc_bool_t &log) const\r
-   {\r
-\r
-   }\r
-\r
-\r
-   inline void\r
-   setLog(pfc_bool_t log)\r
-   {\r
-\r
-   }\r
-\r
-private:\r
-   pfc_ipcevattr_t   _attr;\r
-};\r
-\r
-class IpcEvent\r
-{\r
-public:\r
-    inline pfc_ipcevid_t\r
-    getSerial(void) const\r
-    {\r
-        return pfc_ipcevid_t();\r
-    }\r
-\r
-    inline pfc_ipcevtype_t\r
-    getType(void) const\r
-    {\r
-        return pfc_ipcevtype_t();\r
-    }\r
-\r
-    inline void\r
-    getTime(pfc_timespec_t &ts) const\r
-    {\r
-        ts=pfc_timespec_t();\r
-    }\r
-\r
-    inline const char *\r
-    getChannelName(void) const\r
-    {\r
-        return "channelName";\r
-    }\r
-\r
-\r
-    inline const pfc_hostaddr_t *\r
-    getHostAddress(void) const\r
-    {\r
-       pfc_hostaddr_t* host((pfc_hostaddr_t*)malloc(sizeof( pfc_hostaddr_t)));\r
-        return host;\r
-    }\r
-\r
-    inline const char *\r
-    getServiceName(void) const\r
-    {\r
-        return "serviceName";\r
-    }\r
-\r
-    /*inline pfc_ipcsess_t *\r
-    getSession(void) const\r
-    {\r
-        return pfc_ipcevent_getsess(_event);\r
-    }*/\r
-\r
-    inline pfc_bool_t\r
-    isStateChangeEvent(void) const\r
-    {\r
-        return true;\r
-    }\r
-\r
-private:\r
-    explicit IpcEvent(pfc_ipcevent_t *event) : _event(event) {}\r
-    pfc_ipcevent_t    *_event;\r
-};\r
-\r
-class IpcEventHandler\r
-{\r
-public:\r
-    IpcEventHandler() : _id() {}\r
-    virtual ~IpcEventHandler();\r
-    inline pfc_ipcevhdlr_t\r
-    getId(void) const\r
-    {\r
-        return _id;\r
-    }\r
-\r
-    virtual void  eventHandler(const IpcEvent &event) = 0;\r
-    virtual const char  *getName(void);\r
-\r
-private:\r
-    pfc_ipcevhdlr_t    _id;\r
-};\r
-\r
-extern int  add_event_handler(const char *channel, IpcEventHandler *handler,\r
-                              const IpcEventAttr *attr = NULL);\r
-extern int  remove_event_handler(pfc_ipcevhdlr_t id);\r
-static inline int\r
-remove_event_handler(IpcEventHandler *handler)\r
-{\r
-    return 0;\r
-}\r
-\r
-}\r
-}\r
-}\r
-#endif  /* !_PFCXX_IPC_CLIENT_HH */\r
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <pfc/ipc.h>
+#include <netinet/in.h>
+#include <string>
+#include <map>
+#include <list>
+#include <pfc/ipc_client.h>
+#include "ipc_server.hh"
+
+#ifndef _PFCXX_IPC_CLIENT_HH
+#define _PFCXX_IPC_CLIENT_HH
+
+namespace pfc {
+namespace core {
+namespace ipc {
+
+class ClientSession
+{
+    friend class  ::pfc::core::ipc::ServerSession;
+
+public:
+    /*
+     * Constructors.
+     */
+    ClientSession(const char *name, pfc_ipcid_t service, int &err);
+    ClientSession(const char *name, pfc_ipcid_t service, int &err,
+                  uint32_t flags);
+    ClientSession(const std::string &name, pfc_ipcid_t service, int &err);
+    ClientSession(const std::string &name, pfc_ipcid_t service, int &err,
+                  uint32_t flags);
+    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,
+                  int &err);
+    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,
+                  int &err, uint32_t flags);
+    ClientSession(pfc_ipcconn_t conn, const std::string &name,
+                  pfc_ipcid_t service, int &err);
+    ClientSession(pfc_ipcconn_t conn, const std::string &name,
+                  pfc_ipcid_t service, int &err, uint32_t flags);
+    explicit ClientSession();
+
+    /*
+     * Destructor.
+     */
+    ~ClientSession();
+
+    /*
+     * Instance methods.
+     */
+    int   reset(const char *name, pfc_ipcid_t service);
+    int   reset(const std::string &name, pfc_ipcid_t service);
+
+    int   setTimeout(const pfc_timespec_t *timeout=NULL);
+    int   invoke(pfc_ipcresp_t &response);
+    int   cancel(pfc_bool_t discard=PFC_FALSE);
+    int   forward(ClientSession &sess, uint32_t begin = 0,
+                  uint32_t end = UINT32_MAX);
+    int   forward(ServerSession &sess, uint32_t begin = 0,
+                  uint32_t end = UINT32_MAX);
+    int   forwardTo(ServerSession &sess, uint32_t begin = 0,
+                    uint32_t end = UINT32_MAX);
+
+    int   addOutput(int8_t data);
+    int   addOutputInt8(int8_t data);
+    int   addOutput(uint8_t data);
+    int   addOutputUint8(uint8_t data);
+    int   addOutput(int16_t data);
+    int   addOutputInt16(int16_t data);
+    int   addOutput(uint16_t data);
+    int   addOutputUint16(uint16_t data);
+    int   addOutput(int32_t data);
+    int   addOutputInt32(int32_t data);
+    int   addOutput(uint32_t data);
+    int   addOutputUint32(uint32_t data);
+    int   addOutput(int64_t data);
+    int   addOutputInt64(int64_t data);
+    int   addOutput(uint64_t data);
+    int   addOutputUint64(uint64_t data);
+    int   addOutput(float data);
+    int   addOutputFloat(float data);
+    int   addOutput(double data);
+    int   addOutputDouble(double data);
+    int   addOutput(struct in_addr &data);
+    int   addOutput(struct in6_addr &data);
+    int   addOutput(const char *data);
+    int   addOutput(const std::string &data);
+    int   addOutput(const uint8_t *data, uint32_t length);
+    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);
+    int   addOutput(void);
+
+    int   getResponse(uint32_t index, int8_t &data);
+    int   getResponse(uint32_t index, uint8_t &data);
+    int   getResponse(uint32_t index, int16_t &data);
+    int   getResponse(uint32_t index, uint16_t &data);
+    int   getResponse(uint32_t index, int32_t &data);
+    int   getResponse(uint32_t index, uint32_t &data);
+    int   getResponse(uint32_t index, int64_t &data);
+    int   getResponse(uint32_t index, uint64_t &data);
+    int   getResponse(uint32_t index, float &data);
+    int   getResponse(uint32_t index, double &data);
+    int   getResponse(uint32_t index, struct in_addr &data);
+    int   getResponse(uint32_t index, struct in6_addr &data);
+    int   getResponse(uint32_t index, const char *&data);
+    int   getResponse(uint32_t index, const uint8_t *&data, uint32_t &length);
+    int   getResponse(uint32_t index, const pfc_ipcstdef_t &def,
+                      pfc_ptr_t datap);
+
+    uint32_t getResponseCount(void);
+    int getResponseType(uint32_t index, pfc_ipctype_t& type);
+
+    int   getResponseStructName(uint32_t index, const char *&name);
+    int   getResponseStructName(uint32_t index, std::string &name);
+
+    //stubs
+    static void stub_setResponseStructName(uint32_t index, std::string &name);
+    static void clearStubData(void);
+    static void stub_setResponse(int result);
+    static void stub_setResponsetype(uint32_t index,pfc_ipctype_t ipctype );
+    static void stub_setClientSessionErrorCode(int result);
+    static void stub_setAddOutput(int result);
+    static void stub_setAddOutput(uint32_t result);
+    static void stub_setAddOutput(const char* data);
+    static void stub_setResponseCount(int argCount);
+    static void stub_setResponse( uint32_t index,uint32_t value );
+    static void stub_setinvoke(pfc_ipcresp_t ipcresp,int err);
+
+private:
+// TODO add comments
+// TODO keep only modifed files; rest take it from system directory
+// TODO keep all stubs inside stub directory
+// TODO all changes prefix/suffic with stub_/_stub.
+    //stub data
+    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;
+    static std::map<uint32_t,std::string> structNameMap;//<index,structname>
+    static std::map<uint32_t,uint32_t> arg_map;
+    static std::list<uint32_t> add_output_list;//list of addoutput values
+    static int addOutPut_;
+    static int responseResult_;
+    static int ClientsesErrorCode_;
+    static int argCount_;
+    static pfc_ipcresp_t ipcresp_;
+    static int err_;
+    static std::list<const char*> add_output_str;
+};
+
+class IpcEventMask
+{
+
+public:
+    /* Create an event mask which contains all IPC event types. */
+    IpcEventMask(): _mask(PFC_IPC_EVENT_MASK_FILL) {}
+
+    /* Create an event mask which contains the specified IPC event type. */
+    explicit IpcEventMask(pfc_ipcevtype_t type)
+        : _mask(PFC_IPC_EVENT_MASK_BIT(type)) {}
+
+    /* Copy constructor. */
+    explicit IpcEventMask(const IpcEventMask &mask) : _mask(mask._mask) {}
+
+
+    inline void
+    empty(void)
+    {
+
+    }
+
+
+    inline void
+    fill(void)
+    {
+
+    }
+
+    inline int
+    add(pfc_ipcevtype_t type)
+    {
+        return 0;
+    }
+
+    inline int
+    remove(pfc_ipcevtype_t type)
+    {
+        return 0;
+    }
+
+    inline pfc_bool_t
+    test(pfc_ipcevtype_t type) const
+    {
+        return true;
+    }
+    inline const pfc_ipcevmask_t *
+    getMask(void) const
+    {
+        return &_mask;
+    }
+
+private:
+    /* Event mask value. */
+    pfc_ipcevmask_t    _mask;
+};
+
+class IpcEventAttr
+{
+public:
+   IpcEventAttr()
+   {
+
+   }
+
+
+   ~IpcEventAttr()
+   {
+
+   }
+
+
+   inline void
+   getHostSet(const char *&name) const
+   {
+
+
+   }
+
+
+   inline int
+   setHostSet(const char *name)
+   {
+       return 0;
+   }
+
+   inline void
+   getTarget(const char *service, IpcEventMask &mask) const
+   {
+
+
+   }
+
+   inline int
+   addTarget(const char *service)
+   {
+       return 0;
+   }
+
+   inline int
+   addTarget(const char *service, const IpcEventMask &mask)
+   {
+       return 0;
+   }
+
+
+   inline void
+   resetTarget(void)
+   {
+
+   }
+
+   inline void
+   getPriority(uint32_t &priority) const
+   {
+
+   }
+
+   inline void
+   setPriority(uint32_t priority)
+   {
+
+   }
+
+   inline void
+   getLog(pfc_bool_t &log) const
+   {
+
+   }
+
+
+   inline void
+   setLog(pfc_bool_t log)
+   {
+
+   }
+
+private:
+   pfc_ipcevattr_t   _attr;
+};
+
+class IpcEvent
+{
+public:
+    inline pfc_ipcevid_t
+    getSerial(void) const
+    {
+        return pfc_ipcevid_t();
+    }
+
+    inline pfc_ipcevtype_t
+    getType(void) const
+    {
+        return pfc_ipcevtype_t();
+    }
+
+    inline void
+    getTime(pfc_timespec_t &ts) const
+    {
+        ts=pfc_timespec_t();
+    }
+
+    inline const char *
+    getChannelName(void) const
+    {
+        return "channelName";
+    }
+
+
+    inline const pfc_hostaddr_t *
+    getHostAddress(void) const
+    {
+       pfc_hostaddr_t* host((pfc_hostaddr_t*)malloc(sizeof( pfc_hostaddr_t)));
+        return host;
+    }
+
+    inline const char *
+    getServiceName(void) const
+    {
+        return "serviceName";
+    }
+
+    /*inline pfc_ipcsess_t *
+    getSession(void) const
+    {
+        return pfc_ipcevent_getsess(_event);
+    }*/
+
+    inline pfc_bool_t
+    isStateChangeEvent(void) const
+    {
+        return true;
+    }
+
+private:
+    explicit IpcEvent(pfc_ipcevent_t *event) : _event(event) {}
+    pfc_ipcevent_t    *_event;
+};
+
+class IpcEventHandler
+{
+public:
+    IpcEventHandler() : _id() {}
+    virtual ~IpcEventHandler();
+    inline pfc_ipcevhdlr_t
+    getId(void) const
+    {
+        return _id;
+    }
+
+    virtual void  eventHandler(const IpcEvent &event) = 0;
+    virtual const char  *getName(void);
+
+private:
+    pfc_ipcevhdlr_t    _id;
+};
+
+extern int  add_event_handler(const char *channel, IpcEventHandler *handler,
+                              const IpcEventAttr *attr = NULL);
+extern int  remove_event_handler(pfc_ipcevhdlr_t id);
+static inline int
+remove_event_handler(IpcEventHandler *handler)
+{
+    return 0;
+}
+
+}
+}
+}
+#endif  /* !_PFCXX_IPC_CLIENT_HH */
index 281b0cb60377f0103a44dcd35d5fc93680d19ef8..79df52c2aacd4df6d0590ec950db862d3ae50eeb 100644 (file)
-/*\r
-* Copyright (c) 2012-2013 NEC Corporation\r
-* All rights reserved.\r
-*\r
-* This program and the accompanying materials are made available under the\r
-* terms of the Eclipse Public License v1.0 which accompanies this\r
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-*/\r
-\r
-\r
-#include <pfc/ipc.h>\r
-#include <netinet/in.h>\r
-#include <string>\r
-#include <map>\r
-#include <list>\r
-#include <vector>\r
-#include<iostream>\r
-\r
-#ifndef _PFCXX_IPC_SERVER_HH\r
-#define _PFCXX_IPC_SERVER_HH\r
-\r
-namespace pfc {\r
-namespace core {\r
-namespace ipc {\r
-\r
-class ClientSession;\r
-class ServerCallback;\r
-class ServerEvent;\r
-\r
-/*\r
- * C++ wrapper for IPC server session instance.\r
- */\r
-class ServerSession\r
-{\r
-    friend class  ::pfc::core::ipc::ClientSession;\r
-    friend class  ::pfc::core::ipc::ServerEvent;\r
-\r
-public:\r
-    /*\r
-     * Constructor.\r
-     */\r
-    ServerSession();\r
-\r
-    /*\r
-     * Destructor.\r
-     */\r
-    virtual ~ServerSession(){\r
-\r
-    }\r
-\r
-    /*\r
-     * Instance methods.\r
-     */\r
-    int   setTimeout(const pfc_timespec_t *timeout=NULL);\r
-    int   getClientAddress(pfc_ipccladdr_t &claddr);\r
-\r
-    int   addOutput(int8_t data);\r
-    int   addOutputInt8(int8_t data);\r
-    int   addOutput(uint8_t data);\r
-    int   addOutputUint8(uint8_t data);\r
-    int   addOutput(int16_t data);\r
-    int   addOutputInt16(int16_t data);\r
-    int   addOutput(uint16_t data);\r
-    int   addOutputUint16(uint16_t data);\r
-    int   addOutput(int32_t data);\r
-    int   addOutputInt32(int32_t data);\r
-    int   addOutput(uint32_t data);\r
-    int   addOutputUint32(uint32_t data);\r
-    int   addOutput(int64_t data);\r
-    int   addOutputInt64(int64_t data);\r
-    int   addOutput(uint64_t data);\r
-    int   addOutputUint64(uint64_t data);\r
-    int   addOutput(float data);\r
-    int   addOutputFloat(float data);\r
-    int   addOutput(double data);\r
-    int   addOutputDouble(double data);\r
-    int   addOutput(struct in_addr &data);\r
-    int   addOutput(struct in6_addr &data);\r
-    int   addOutput(const char *data);\r
-    int   addOutput(const std::string &data);\r
-    int   addOutput(const uint8_t *data, uint32_t length);\r
-    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);\r
-    int   addOutput(void);\r
-\r
-\r
-    int   getArgument(uint32_t index, int8_t &data);\r
-    int   getArgument(uint32_t index, uint8_t &data);\r
-    int   getArgument(uint32_t index, int16_t &data);\r
-    int   getArgument(uint32_t index, uint16_t &data);\r
-    int   getArgument(uint32_t index, int32_t &data);\r
-    int   getArgument(uint32_t index, uint32_t &data);\r
-    int   getArgument(uint32_t index, int64_t &data);\r
-    int   getArgument(uint32_t index, uint64_t &data);\r
-    int   getArgument(uint32_t index, float &data);\r
-    int   getArgument(uint32_t index, double &data);\r
-    int   getArgument(uint32_t index, struct in_addr &data);\r
-    int   getArgument(uint32_t index, struct in6_addr &data);\r
-    int   getArgument(uint32_t index, const char *&data);\r
-    int   getArgument(uint32_t index, const uint8_t *&data, uint32_t &length);\r
-    int   getArgument(uint32_t index, const pfc_ipcstdef_t &def,\r
-                      pfc_ptr_t datap);\r
-\r
-    uint32_t getArgCount(void);\r
-    int   getArgType(uint32_t index, pfc_ipctype_t &type);\r
-    int   getArgStructName(uint32_t index, const char *&name);\r
-    int   getArgStructName(uint32_t index, std::string &name);\r
-\r
-    int   setCallback(pfc_ipcsrvcb_type_t type, ServerCallback *cbp);\r
-    void  unsetCallback(pfc_ipcsrvcb_type_t type);\r
-    void  clearCallbacks(void);\r
-\r
-    //stub functions\r
-    static void stub_setArgCount(uint32_t argCount);\r
-    static void stub_setArgStructName(uint32_t index, std::string &name);\r
-    static void stub_setArgument(int result);\r
-    static void stub_setArgument( uint32_t index,uint32_t value );\r
-    static void clearStubData();\r
-    static void stub_setArgType(uint32_t index, pfc_ipctype_t ipctype);\r
-    static void stub_setAddOutput(int result);\r
-    static void stub_setAddOutput(uint32_t value);\r
-\r
-private:\r
-    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;\r
-    static std::map<uint32_t,std::string> structNameMap;\r
-    static std::map<uint32_t,uint32_t> arg_map;\r
-    static std::vector<uint32_t> add_output_list;\r
-    static bool addOutPut_;\r
-    static int result_;\r
-    static uint32_t argCount_;\r
-};\r
-\r
-class ServerEvent\r
-    : public ServerSession\r
-{\r
-public:\r
-    ServerEvent(const char *name, pfc_ipcevtype_t type, int &err)\r
-        : ServerSession()\r
-    {\r
-       std::cout<<" ServerEvent(const char *name, pfc_ipcevtype_t type, int &err) "<<std::endl;\r
-        err = serverEventErr_;\r
-    }\r
-\r
-    ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)\r
-        : ServerSession()\r
-    {\r
-       std::cout<<" ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)"<<std::endl;\r
-        err = serverEventErr_;\r
-    }\r
-\r
-    ServerEvent(uint8_t type, int &err)\r
-           : ServerSession()\r
-    {\r
-       err = serverEventErr_;\r
-    }\r
-\r
-    ~ServerEvent()\r
-    {\r
-\r
-    }\r
-\r
-    inline int\r
-    post(void)\r
-    {\r
-       std::cout<<" post(void) "<<std::endl;\r
-        return postResult_;\r
-    }\r
-\r
-    inline int\r
-    postTo(pfc_ipccladdr_t &claddr)\r
-    {\r
-\r
-        return 0;\r
-    }\r
-\r
-    static void clearStubData();\r
-    static void stub_setserverEventErr(int err);\r
-    static void stub_setPostResult(int result);\r
-private:\r
-    static int serverEventErr_;\r
-    static int postResult_;\r
-};\r
-\r
-class ServerCallback\r
-{\r
-public:\r
-\r
-    ServerCallback(ServerSession &sess) : _sess(&sess), _refcnt(0) {}\r
-    virtual ~ServerCallback();\r
-    virtual void  callback(pfc_ipcsrvcb_type_t type) = 0;\r
-    inline ServerSession &\r
-    getSession(void)\r
-    {\r
-        return *_sess;\r
-    }\r
-\r
-private:\r
-    ServerSession  *_sess;\r
-    uint32_t  _refcnt;\r
-};\r
-\r
-}\r
-}\r
-}\r
-\r
-#endif  /* !_PFCXX_IPC_SERVER_HH */\r
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <pfc/ipc.h>
+#include <netinet/in.h>
+#include <string>
+#include <map>
+#include <list>
+#include <vector>
+#include <iostream>
+
+#ifndef _PFCXX_IPC_SERVER_HH
+#define _PFCXX_IPC_SERVER_HH
+
+namespace pfc {
+namespace core {
+namespace ipc {
+
+class ClientSession;
+class ServerCallback;
+class ServerEvent;
+
+/*
+ * C++ wrapper for IPC server session instance.
+ */
+class ServerSession
+{
+    friend class  ::pfc::core::ipc::ClientSession;
+    friend class  ::pfc::core::ipc::ServerEvent;
+
+public:
+    /*
+     * Constructor.
+     */
+    ServerSession();
+
+    /*
+     * Destructor.
+     */
+    virtual ~ServerSession(){
+
+    }
+
+    /*
+     * Instance methods.
+     */
+    int   setTimeout(const pfc_timespec_t *timeout=NULL);
+    int   getClientAddress(pfc_ipccladdr_t &claddr);
+
+    int   addOutput(int8_t data);
+    int   addOutputInt8(int8_t data);
+    int   addOutput(uint8_t data);
+    int   addOutputUint8(uint8_t data);
+    int   addOutput(int16_t data);
+    int   addOutputInt16(int16_t data);
+    int   addOutput(uint16_t data);
+    int   addOutputUint16(uint16_t data);
+    int   addOutput(int32_t data);
+    int   addOutputInt32(int32_t data);
+    int   addOutput(uint32_t data);
+    int   addOutputUint32(uint32_t data);
+    int   addOutput(int64_t data);
+    int   addOutputInt64(int64_t data);
+    int   addOutput(uint64_t data);
+    int   addOutputUint64(uint64_t data);
+    int   addOutput(float data);
+    int   addOutputFloat(float data);
+    int   addOutput(double data);
+    int   addOutputDouble(double data);
+    int   addOutput(struct in_addr &data);
+    int   addOutput(struct in6_addr &data);
+    int   addOutput(const char *data);
+    int   addOutput(const std::string &data);
+    int   addOutput(const uint8_t *data, uint32_t length);
+    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);
+    int   addOutput(void);
+
+
+    int   getArgument(uint32_t index, int8_t &data);
+    int   getArgument(uint32_t index, uint8_t &data);
+    int   getArgument(uint32_t index, int16_t &data);
+    int   getArgument(uint32_t index, uint16_t &data);
+    int   getArgument(uint32_t index, int32_t &data);
+    int   getArgument(uint32_t index, uint32_t &data);
+    int   getArgument(uint32_t index, int64_t &data);
+    int   getArgument(uint32_t index, uint64_t &data);
+    int   getArgument(uint32_t index, float &data);
+    int   getArgument(uint32_t index, double &data);
+    int   getArgument(uint32_t index, struct in_addr &data);
+    int   getArgument(uint32_t index, struct in6_addr &data);
+    int   getArgument(uint32_t index, const char *&data);
+    int   getArgument(uint32_t index, const uint8_t *&data, uint32_t &length);
+    int   getArgument(uint32_t index, const pfc_ipcstdef_t &def,
+                      pfc_ptr_t datap);
+
+    uint32_t getArgCount(void);
+    int   getArgType(uint32_t index, pfc_ipctype_t &type);
+    int   getArgStructName(uint32_t index, const char *&name);
+    int   getArgStructName(uint32_t index, std::string &name);
+
+    int   setCallback(pfc_ipcsrvcb_type_t type, ServerCallback *cbp);
+    void  unsetCallback(pfc_ipcsrvcb_type_t type);
+    void  clearCallbacks(void);
+
+    //stub functions
+    static void stub_setArgCount(uint32_t argCount);
+    static void stub_setArgStructName(uint32_t index, std::string &name);
+    static void stub_setArgument(int result);
+    static void stub_setArgument( uint32_t index,uint32_t value );
+    static void clearStubData();
+    static void stub_setArgType(uint32_t index, pfc_ipctype_t ipctype);
+    static void stub_setAddOutput(int result);
+    static void stub_setAddOutput(uint32_t value);
+
+private:
+    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;
+    static std::map<uint32_t,std::string> structNameMap;
+    static std::map<uint32_t,uint32_t> arg_map;
+    static std::vector<uint32_t> add_output_list;
+    static bool addOutPut_;
+    static int result_;
+    static uint32_t argCount_;
+};
+
+class ServerEvent
+    : public ServerSession
+{
+public:
+    ServerEvent(const char *name, pfc_ipcevtype_t type, int &err)
+        : ServerSession()
+    {
+       std::cout<<" ServerEvent(const char *name, pfc_ipcevtype_t type, int &err) "<<std::endl;
+        err = serverEventErr_;
+    }
+
+    ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)
+        : ServerSession()
+    {
+       std::cout<<" ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)"<<std::endl;
+        err = serverEventErr_;
+    }
+
+    ServerEvent(uint8_t type, int &err)
+           : ServerSession()
+    {
+       err = serverEventErr_;
+    }
+
+    ~ServerEvent()
+    {
+
+    }
+
+    inline int
+    post(void)
+    {
+       std::cout<<" post(void) "<<std::endl;
+        return postResult_;
+    }
+
+    inline int
+    postTo(pfc_ipccladdr_t &claddr)
+    {
+
+        return 0;
+    }
+
+    static void clearStubData();
+    static void stub_setserverEventErr(int err);
+    static void stub_setPostResult(int result);
+private:
+    static int serverEventErr_;
+    static int postResult_;
+};
+
+class ServerCallback
+{
+public:
+
+    ServerCallback(ServerSession &sess) : _sess(&sess), _refcnt(0) {}
+    virtual ~ServerCallback();
+    virtual void  callback(pfc_ipcsrvcb_type_t type) = 0;
+    inline ServerSession &
+    getSession(void)
+    {
+        return *_sess;
+    }
+
+private:
+    ServerSession  *_sess;
+    uint32_t  _refcnt;
+};
+
+}
+}
+}
+
+#endif  /* !_PFCXX_IPC_SERVER_HH */
index d94a8c347b7396ce890132ef5eae25eaf16cd527..b888e122b465eef1579784a69406de07d3bef94f 100644 (file)
@@ -1,11 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #ifndef        _PFCXX_MODULE_HH
 #define        _PFCXX_MODULE_HH
 
 #include <pfc/module.h>
 #include <pfc/log.h>
-#include <cxx/pfcxx/conf.hh>
-#include <cxx/pfcxx/event.hh>
-#include "cxx/pfcxx/ipc_client.hh"
-#include<string>
-
+#include <pfcxx/conf.hh>
+#include <pfcxx/event.hh>
+#include <pfcxx/ipc_client.hh>
+#include <string>
 
 namespace pfc {
 namespace core {
diff --git a/coordinator/test/modules/upll/ut/stub/include/stub_momgr.hh b/coordinator/test/modules/upll/ut/stub/include/stub_momgr.hh
deleted file mode 100644 (file)
index 8ab77ae..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-
-/*
- * stub_momgr_impl.hh
- *
- *  Created on: Feb 27, 2013
- *      Author: guest
- */
-
-#ifndef STUB_MOMGR_IMPL_HH_
-#define STUB_MOMGR_IMPL_HH_
-
-#include <limits.h>
-#include <gtest/gtest.h>
-#include "momgr_intf.hh"
-#include "pfc/event.h"
-#include "cxx/pfcxx/synch.hh"
-#include "unc/keytype.h"
-
-#include "upll_errno.h"
-#include "dal/dal_dml_intf.hh"
-#include "ipc_util.hh"
-#include "cxx/pfcxx/module.hh"
-#include "capa_module_stub.hh"
-#include "ctrlr_mgr.hh"
-#include "ipct_st.hh"
-#include "dal/dal_dml_intf.hh"
-
-using std::string;
-using std::list;
-using std::set;
-using unc::upll::ipc_util::IpcReqRespHeader;
-using unc::upll::ipc_util::ConfigKeyVal;
-using unc::upll::ipc_util::ConfigNotification;
-using unc::upll::dal::DalDmlIntf;
-
-
-using ::testing::TestWithParam;
-using namespace unc::upll::ipc_util;
-using ::testing::Values;
-
-using namespace unc::upll::config_momgr;
-
-class StubMoMgr : public MoManager
-{
-public:
-       virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                           uint32_t session_id, uint32_t config_id,
-                                           UpdateCtrlrPhase phase,
-                                           set<string> *affected_ctrlr_set,
-                                           DalDmlIntf *dmi,
-                                           ConfigKeyVal **err_ckv ) {
-               ConfigKeyVal* configKeyVal(new ConfigKeyVal(UNC_KT_FLOWLIST_ENTRY,IpctSt::kIpcInvalidStNum));
-               *err_ckv = configKeyVal;
-               if ( phase == kUpllUcpDelete )
-               {
-                       return ( session_id == 0)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-               }
-               else if ( phase == kUpllUcpCreate )
-               {
-                       return ( config_id == 0)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-               }
-               else if (phase == kUpllUcpUpdate )
-                       std::cout<<"affected_ctrlr_set->size() "<< affected_ctrlr_set->size()<<std::endl;
-                       return ( affected_ctrlr_set->size() == 0 )? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t TxVote(unc_key_type_t keytype, DalDmlIntf *dmi, ConfigKeyVal **err_ckv ) {
-                return UPLL_RC_SUCCESS;
-       }
-
-       virtual  upll_rc_t TxVoteCtrlrStatus(
-                       unc_key_type_t keytype,
-             list<CtrlrVoteStatus*> *ctrlr_vote_status,
-             DalDmlIntf *dmi) {
-                 return UPLL_RC_SUCCESS;
-       }
-
-
-virtual  upll_rc_t AuditUpdateController(unc_key_type_t, const char*, uint32_t, uint32_t, unc::upll::config_momgr::UpdateCtrlrPhase, bool*, unc::upll::dal::DalDmlIntf*){
- return UPLL_RC_SUCCESS;
-}
-
-       virtual upll_rc_t TxCopyCandidateToRunning(
-                       unc_key_type_t keytype,
-                       list<CtrlrCommitStatus*> *ctrlr_commit_status,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t TxEnd(unc_key_type_t keytype, DalDmlIntf *dmi){
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t CreateMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t CreateImportMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi, const char *ctrlr_id,const char *domain_id) {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-                 return UPLL_RC_SUCCESS;
-       }
-
-       /*virtual upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi, const char *ctrlr_id) {
-               return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-       }*/
-
-       virtual upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       bool begin, DalDmlIntf *dal)
-       {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t ReadSiblingCount(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t ControlMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-       }
-
-       virtual upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                       uint32_t session_id, uint32_t config_id,
-                       UpdateCtrlrPhase phase,
-                       DalDmlIntf *dmi)  {
-               if ( phase == kUpllUcpDelete )
-                       {
-                               return ( session_id == 0)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-                       }
-                       else if ( phase == kUpllUcpCreate )
-                       {
-                               return ( config_id == 10)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-                       }
-                       else if (phase == kUpllUcpUpdate )
-
-                               return UPLL_RC_SUCCESS;
-         }
-           // virtual upll_rc_t AuditVote(const char *ctrlr_id) = 0;
-       virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
-                       CtrlrVoteStatus *vote_satus,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-           }
-       virtual upll_rc_t AuditCommitCtrlrStatus(unc_key_type_t keytype,
-                       CtrlrCommitStatus *commit_satus,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-           }
-       virtual upll_rc_t AuditEnd(unc_key_type_t keytype, const char *ctrlr_id,
-                       DalDmlIntf *dmi) {
-               std::string cntrl_id(ctrlr_id);
-               return ( 0 == cntrl_id.compare("success"))?UPLL_RC_SUCCESS:UPLL_RC_ERR_GENERIC;
-       }
-
-       virtual upll_rc_t MergeValidate(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                       ConfigKeyVal *conflict_ckv,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t ImportClear(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                                       DalDmlIntf *dmi) {
-                return UPLL_RC_SUCCESS;
-            }
-
-    virtual upll_rc_t CopyRunningToStartup(unc_key_type_t kt,
-               DalDmlIntf *dmi) {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t ClearStartup(unc_key_type_t kt, DalDmlIntf *dmi) {
-                  return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t LoadStartup(unc_key_type_t kt, DalDmlIntf *dmi) {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t CopyRunningToCandidate(unc_key_type_t kt,
-               DalDmlIntf *dmi) {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t IsCandidateDirty(unc_key_type_t kt, bool *dirty,
-               DalDmlIntf *dmi)   {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual void UpplNotificationHandler(pfc_event_t event, pfc_ptr_t arg) {
-
-    }
-    virtual void DriverNotificationHandler(pfc_event_t event, pfc_ptr_t arg)  {
-
-    }
-};
-
-
-#endif /* STUB_MOMGR_IMPL_HH_ */
diff --git a/coordinator/test/modules/upll/ut/stub/include/uncxx/alarm.hh b/coordinator/test/modules/upll/ut/stub/include/uncxx/alarm.hh
deleted file mode 100644 (file)
index 004ea22..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-#ifndef ALARM_ALARM_HH
-#define ALARM_ALARM_HH
-
-#include <stdint.h>
-#include <string>
-#include <sys/time.h>
-
-namespace pfc{
-namespace alarm{
-
-/*
- * alarm API
- */
-
-#define ALARM_KEY_MAX  64
-
-typedef struct alarm_info {
-        uint8_t     alarm_class;
-        uint8_t     apl_No;
-        uint16_t    alarm_category;
-        uint32_t    alarm_id ;
-        uint8_t     alarm_kind;
-} alarm_info_t;
-
-typedef struct alarm_info_with_key {
-        uint8_t  alarm_class;
-        uint8_t  apl_No;
-        uint16_t alarm_category;
-        uint8_t  alarm_key_size;
-        uint8_t* alarm_key;
-        uint8_t  alarm_kind;
-} alarm_info_with_key_t;
-
-typedef enum{
-    ALM_EMERG=0,
-    ALM_ALERT,
-    ALM_CRITICAL,
-    ALM_ERROR,
-    ALM_WARNING,
-    ALM_NOTICE,
-    ALM_INFO,
-    ALM_DEBUG
-}alarm_level_t;
-    
-typedef enum {
-    ALM_OK = 0,
-    ALM_EAGAIN,
-    ALM_ERR
-} alarm_return_code_t;
-
-alarm_return_code_t
-pfc_alarm_initialize(int32_t *fd);
-
-alarm_return_code_t
-pfc_alarm_send(const std::string& VTN_name, const std::string& alm_msg,
-const std::string& alm_msg_summary,  alarm_info_t *data,  int32_t fd);
-
-alarm_return_code_t 
-pfc_alarm_send_with_key(const std::string& VTN_name, const std::string& alm_msg,
-const std::string& alm_msg_summary, alarm_info_with_key_t* data, int32_t fd);
-
-alarm_return_code_t 
-pfc_alarm_send_with_key2(const std::string& VTN_name,
-        const std::string& alm_msg, const std::string& alm_msg_summary,
-        alarm_info_with_key_t* data, int32_t fd, struct timeval* tv);
-
-alarm_return_code_t
-pfc_alarm_clear (uint8_t apl_No);
-
-alarm_return_code_t
-pfc_alarm_close(int32_t fd);
-
-alarm_return_code_t pfc_alarm_view_start(void);
-
-};
-};
-
-#endif /* !ALARM_ALARM_HH */
diff --git a/coordinator/test/modules/upll/ut/stub/ipc_client_server/Makefile b/coordinator/test/modules/upll/ut/stub/ipc_client_server/Makefile
deleted file mode 100644 (file)
index 74daf49..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that includes ipc stubs to run  unit tests for UPLL module.
-##
-
-CPPFLAGS = -g
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-STUB_DIR =..
-INCLUDE =   -I$(STUB_DIR)/include \
-                                   -I$(STUB_DIR)/include/cxx \
-            -I$(STUB_DIR)/include/cxx/pfcxx \
-                                               -I$(STUB_DIR)/include/uncxx \
-            -I$(STUB_DIR)/dal/include \
-                               -I$(SRC_DIR)/upll \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-                               -I$(SRC_DIR)/../dist/target/objs/core_include \
-            -I$(SRC_DIR)/../dist/target/objs/core/include \
-                               -I$(SRC_DIR)/../dist/target/objs/include \
-                               -I$(SRC_DIR)/../core/include \
-                               -I$(SRC_DIR)/../include/ \
-            -I$(SRC_DIR)/upll/include \
-                               -I$(SRC_DIR)/dal \
-            -I$(SRC_DIR)/alarm/include 
-all: compile
-
-clean :
-       @(cd $(OBJS); rm -rf $(OBJS)/ipc_client.o ipc_server.o alarm.o)
-DEPENDENT_FILES = ipc_server.cc ipc_client.cc module.cc alarm.cc 
-OBJ1 = $(patsubst %.cc,$(OBJS)/%.o,$(DEPENDENT_FILES))
-
-$(OBJ1):$(OBJS)/%.o : ./%.cc 
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-compile : $(OBJ1)
-
-
-
diff --git a/coordinator/test/modules/upll/ut/stub/ipc_client_server/module.cc b/coordinator/test/modules/upll/ut/stub/ipc_client_server/module.cc
deleted file mode 100644 (file)
index 59b5803..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-#include "cxx/pfcxx/module.hh"
-
-namespace pfc {
-namespace core {
-
-Module* Module::capaModule=NULL;
-Module* Module::tcLib=NULL;
-
-
- Module*  Module::getModule(const char* moduleName) {
-        if (!strcmp(moduleName,"capa"))
-        {
-                return capaModule;
-        }
-        else if(!strcmp(moduleName,"tclib"))
-        {
-                return tcLib;
-        }
-        else
-        {
-                return NULL;
-        }
-
- }
-
-}
-}
similarity index 97%
rename from coordinator/test/modules/upll/ut/stub/ipc_client_server/alarm.cc
rename to coordinator/test/modules/upll/ut/stub/misc/alarm.cc
index eba7dd137903e339c8c46589893cd7c80a702517..904cd4e7f2f6ac9503df056b038ddf1cf3058e39 100644 (file)
@@ -16,8 +16,8 @@
 #include <sys/un.h>
 #include <math.h>
 #include <string>
-#include "cxx/pfcxx/module.hh"
-#include "uncxx/alarm.hh"
+#include <pfcxx/module.hh>
+#include <alarm.hh>
 
 namespace pfc{
 namespace alarm{
diff --git a/coordinator/test/modules/upll/ut/stub/misc/module.cc b/coordinator/test/modules/upll/ut/stub/misc/module.cc
new file mode 100644 (file)
index 0000000..59d6ca4
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <string.h>
+#include <pfcxx/module.hh>
+
+namespace pfc {
+namespace core {
+
+Module* Module::capaModule = NULL;
+Module* Module::tcLib = NULL;
+
+Module*  Module::getModule(const char* moduleName) {
+  if (!strcmp(moduleName, "capa")) {
+    return capaModule;
+  }
+  if(!strcmp(moduleName, "tclib")) {
+    return tcLib;
+  }
+
+  return NULL;
+}
+
+}
+}
diff --git a/coordinator/test/modules/upll/ut/stub/tclib_module/Makefile b/coordinator/test/modules/upll/ut/stub/tclib_module/Makefile
deleted file mode 100644 (file)
index f0f0fec..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that include tclib modules stub to run unit tests for UPLL module.
-##
-
-
-
-
-CPPFLAGS = -g 
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-STUB_DIR =..
-INCLUDE =   -I$(STUB_DIR)/include \
-                                   -I$(STUB_DIR)/include/cxx \
-            -I$(STUB_DIR)/include/cxx/pfcxx \
-                               -I$(SRC_DIR)/../core/include \
-                               -I$(SRC_DIR)/../include \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-                               -I$(SRC_DIR)/../dist/target/objs/core_include \
-            -I$(SRC_DIR)/../dist/target/objs/core/include \
-                               -I$(SRC_DIR)/../dist/target/objs/include \
-            -I$(SRC_DIR)/upll/include \
-                               -I$(SRC_DIR)/dal \
-
-
-
-all: $(OBJS)/tclib_module.o
-
-clean :
-       @(cd $(OBJS); rm -rf $(OBJ) tclib_module.o)
-
-$(OBJS)/tclib_module.o :tclib_module.cc tclib_module.hh
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-       
-
-
-             
-
index 4b37317e19176a943a5b088e196980513e14f4d7..9c06863b03289e8d3444fbc88efc10197cf90506 100644 (file)
@@ -19,6 +19,18 @@ unc_keytype_ctrtype_t TcLibModule::controllerType;
 uint32_t TcLibModule::keyIndex;
 TcLibInterface* TcLibModule::pTcLibInterface_=0;
 
+static TcLibModule  theInstance(NULL);
+
+void
+TcLibModule::stub_loadtcLibModule(void) {
+    pfc::core::Module::tcLib = &theInstance;
+}
+
+void
+TcLibModule::stub_unloadtcLibModule(void) {
+    pfc::core::Module::tcLib = NULL;
+}
+
 TcApiCommonRet TcLibModule::TcLibRegisterHandler(TcLibInterface* handler) {
        pTcLibInterface_ = handler;
         return stub_getMappedResultCode(TcLibModule::REGISTER);
index 27897ba37821ba1b4031a7c78afed3302936746e..23c94aad046d454499f41272c766c2b650dbb7ea 100644 (file)
 #ifndef _UNC_TCLIB_MODULE_HH_
 #define _UNC_TCLIB_MODULE_HH_
 
-#include "cxx/pfcxx/module.hh"
-#include <cxx/pfcxx/synch.hh>
+#include <pfcxx/module.hh>
+#include <pfcxx/synch.hh>
 #include <uncxx/tclib/tclib_interface.hh>
-#include "tclib_struct_defs.hh"
+#include <tclib_struct_defs.hh>
 #include <string>
 
 namespace unc {
@@ -23,80 +23,72 @@ namespace tclib {
 class TcLibInterface;
 
 class TcLibModule : public pfc::core::Module {
- public:
-
-       enum TCApiCommonRet {
-               REGISTER,
-               AUDIT_CONTROLLER,
-               VALIDATE_UPDATE,
-               READ_KEY_VAL,
-               WRITE_CONTROLLER,
-               WRITE_KEY_VALUE,
-               IS_READ_KEY,
-               IS_WRITE_KEY,
-               KEY_INDEX,
-
-       };
-
-       enum TCCommonRet {
-               VALIDATE_OPER_TYPE,
-               VALIDATE_COMMIT_OPER,
-               VALIDATE_AUDIT_OPER,
-               VALIDATE_UPLL_COMMIT,
-               VALIDATE_DRIVER_COMMIT,
-               VALIDATE_UPLL_AUDIT,
-               VALIDATE_DRIVER_AUDIT,
-               UPDATE_CONTROLLER_KEY,
-               NOTIFY_SESSION_CONFIG,
-               COMMIT_TRANS_START,
-               COMMIT_VOTE_GLOBAL,
-               COMMIT_TRANS,
-               COMMIT_DRIVER_VOTE,
-               COMMIT_DRIVER_RESULT,
-               COMMIT_GLOBAL_ABORT,
-               AUDIT_TRANS_START,
-               AUDIT_VOTE_GLOBAL,
-               AUDIT_TRANS,
-               AUDIT_DRIVER_VOTE,
-               AUDIT_DRIVER_RESULT,
-               AUDIT_GLOBAL_ABORT,
-               SAVE_CONFIGURATION,
-               CLEAR_START_UP,
-               ABORT_CANDIDATE,
-               AUDIT_CONFIG,
-               SET_UP,
-               SET_UP_COMPLETE,
-       };
-
-  TcLibModule(const pfc_modattr_t *mattr):
-         pfc::core::Module(mattr){
-
+public:
+  enum TCApiCommonRet {
+    REGISTER,
+    AUDIT_CONTROLLER,
+    VALIDATE_UPDATE,
+    READ_KEY_VAL,
+    WRITE_CONTROLLER,
+    WRITE_KEY_VALUE,
+    IS_READ_KEY,
+    IS_WRITE_KEY,
+    KEY_INDEX,
+  };
+
+  enum TCCommonRet {
+    VALIDATE_OPER_TYPE,
+    VALIDATE_COMMIT_OPER,
+    VALIDATE_AUDIT_OPER,
+    VALIDATE_UPLL_COMMIT,
+    VALIDATE_DRIVER_COMMIT,
+    VALIDATE_UPLL_AUDIT,
+    VALIDATE_DRIVER_AUDIT,
+    UPDATE_CONTROLLER_KEY,
+    NOTIFY_SESSION_CONFIG,
+    COMMIT_TRANS_START,
+    COMMIT_VOTE_GLOBAL,
+    COMMIT_TRANS,
+    COMMIT_DRIVER_VOTE,
+    COMMIT_DRIVER_RESULT,
+    COMMIT_GLOBAL_ABORT,
+    AUDIT_TRANS_START,
+    AUDIT_VOTE_GLOBAL,
+    AUDIT_TRANS,
+    AUDIT_DRIVER_VOTE,
+    AUDIT_DRIVER_RESULT,
+    AUDIT_GLOBAL_ABORT,
+    SAVE_CONFIGURATION,
+    CLEAR_START_UP,
+    ABORT_CANDIDATE,
+    AUDIT_CONFIG,
+    SET_UP,
+    SET_UP_COMPLETE,
+  };
+
+  TcLibModule(const pfc_modattr_t *mattr) : pfc::core::Module(mattr) {
   }
 
   ~TcLibModule() {
-
   }
 
-
   pfc_bool_t init() {
-         return true;
+    return true;
   }
 
-
   pfc_bool_t fini() {
-         return true;
+    return true;
   }
 
   pfc_ipcresp_t ipcService(pfc::core::ipc::ServerSession& sess,
                            pfc_ipcid_t service) {
-         return pfc_ipcresp_t();
-}
+    return pfc_ipcresp_t();
+  }
 
   TcApiCommonRet TcLibRegisterHandler(TcLibInterface* handler);
 
   TcApiCommonRet TcLibAuditControllerRequest(std::string controller_id);
 
-
   TcApiCommonRet TcLibValidateUpdateMsg(uint32_t sessionid, uint32_t configid);
 
   TcApiCommonRet TcLibReadKeyValueDataInfo(std::string controller_id,
@@ -117,56 +109,41 @@ class TcLibModule : public pfc::core::Module {
                                             void* key_data,
                                             void* value_data);
 
- private:
-
+private:
   TcCommonRet ValidateOperTypeSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateCommitOperSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateAuditOperSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateUpllUpplCommitSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateDriverCommitSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateUpllUpplAuditSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateDriverAuditSequence(TcMsgOperType oper_type);
 
-
   TcApiCommonRet IsReadKeyValueAllowed();
 
   TcApiCommonRet IsWriteKeyValueAllowed();
 
-
   TcCommonRet UpdateControllerKeyList();
 
   TcCommonRet NotifySessionConfig();
 
-
   TcCommonRet CommitTransStartEnd(TcMsgOperType oper_type,
                                   TcCommitTransactionMsg commit_trans_msg);
 
-
   TcCommonRet CommitVoteGlobal(TcMsgOperType oper_type,
                                   TcCommitTransactionMsg commit_trans_msg);
 
-
   TcCommonRet CommitTransaction();
 
-
   TcCommonRet CommitDriverVoteGlobal();
 
-
   TcCommonRet CommitDriverResult();
 
-
   TcCommonRet CommitGlobalAbort();
 
   TcCommonRet AuditTransStartEnd(TcMsgOperType oper_type,
@@ -187,7 +164,6 @@ class TcLibModule : public pfc::core::Module {
 
   TcCommonRet SaveConfiguaration();
 
-
   TcCommonRet ClearStartup();
 
   TcCommonRet AbortCandidate();
@@ -208,40 +184,35 @@ class TcLibModule : public pfc::core::Module {
 
   //stub Methods
   static inline void Stub_setDriverId(unc_keytype_ctrtype_t driverid ) {
-         driverId = driverid;
+    driverId = driverid;
   }
 
   static inline void stub_setControllerType(unc_keytype_ctrtype_t cntrlrType) {
-         controllerType = cntrlrType;
+    controllerType = cntrlrType;
   }
 
   static inline void stub_setKeyIndex(uint32_t index) {
-         keyIndex = index;
-  }
-
-  static void stub_setTcCommonRetcode(TcLibModule::TCCommonRet methodType ,TcCommonRet res_code) {
-         method_tccommon_map.insert(std::make_pair(methodType,res_code));
+    keyIndex = index;
   }
 
-  static void stub_setTCApiCommonRetcode(TcLibModule::TCApiCommonRet methodType,TcApiCommonRet res_code) {
-         method_tcapi_map.insert(std::make_pair(methodType,res_code));
+  static void stub_setTcCommonRetcode(TcLibModule::TCCommonRet methodType,
+                                      TcCommonRet res_code) {
+    method_tccommon_map.insert(std::make_pair(methodType,res_code));
   }
 
-  static void stub_loadtcLibModule() {
-         const pfc_modattr_t *attr;
-         tcLib=static_cast<pfc::core::Module*>( new TcLibModule(attr) );
+  static void stub_setTCApiCommonRetcode(TcLibModule::TCApiCommonRet methodType,
+                                         TcApiCommonRet res_code) {
+    method_tcapi_map.insert(std::make_pair(methodType,res_code));
   }
 
-  static void stub_unloadtcLibModule() {
-         tcLib=NULL;
-  }
+  static void stub_loadtcLibModule(void);
+  static void stub_unloadtcLibModule(void);
 
   static void stub_clearTcLibStubData() {
-         method_tccommon_map.clear();
-         method_tcapi_map.clear();
-
+    method_tccommon_map.clear();
+    method_tcapi_map.clear();
   }
- private:
+
   static TcApiCommonRet stub_getMappedResultCode(TcLibModule::TCApiCommonRet);
   static TcCommonRet stub_getMappedResultCode(TcLibModule::TCCommonRet);
 
diff --git a/coordinator/test/modules/upll/ut/stub/tclib_module/tclib_struct_defs.hh b/coordinator/test/modules/upll/ut/stub/tclib_module/tclib_struct_defs.hh
deleted file mode 100644 (file)
index 7108c20..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-#include "../../../../../../modules/tclib/include/tclib_struct_defs.hh"
-
diff --git a/coordinator/test/modules/upll/ut/ut_stub.h b/coordinator/test/modules/upll/ut/ut_stub.h
new file mode 100644 (file)
index 0000000..f106d88
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef        _TEST_UPLL_UT_STUB_H
+#define        _TEST_UPLL_UT_STUB_H
+
+/*
+ * Include stub header files.
+ */
+
+#include "stub/include/core_include/pfc/ipc_client.h"
+
+#ifdef __cplusplus
+#include "stub/include/cxx/pfcxx/ipc_server.hh"
+#include "stub/include/cxx/pfcxx/ipc_client.hh"
+#include "stub/include/cxx/pfcxx/module.hh"
+#include "stub/dal/dal_cursor.hh"
+#include "stub/dal/dal_dml_intf.hh"
+#include "stub/dal/dal_bind_info.hh"
+#include "stub/dal/dal_odbc_mgr.hh"
+#include "stub/dal/dal_schema.hh"
+#include "stub/tclib_module/tclib_module.hh"
+#endif /* __cplusplus */
+
+#endif /* !_TEST_UPLL_UT_STUB_H */
diff --git a/coordinator/test/modules/upll/ut/ut_util.hh b/coordinator/test/modules/upll/ut/ut_util.hh
new file mode 100644 (file)
index 0000000..9da3f4c
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef        _TEST_UPLL_UT_UTIL_HH
+#define        _TEST_UPLL_UT_UTIL_HH
+
+/*
+ * Miscellaneous utility.
+ */
+#include <stdlib.h>
+#include <string.h>
+#include <gtest/gtest.h>
+#include <ipc_util.hh>
+#include <dal_odbc_mgr.hh>
+
+namespace unc {
+namespace upll {
+namespace test {
+
+/*
+ * Allocate zeroed buffer.
+ */
+#define        ZALLOC_TYPE(type)                                       \
+       (reinterpret_cast<type *>(calloc(1, sizeof(type))))
+#define        ZALLOC_ARRAY(type, nelems)                                      \
+       (reinterpret_cast<type *>(calloc((nelems), sizeof(type))))
+
+/*
+ * Create a shallow copy.
+ */
+static inline void *
+ut_clone(void *addr, size_t size) {
+       void    *newbuf(calloc(1, size));
+
+       if (PFC_EXPECT_TRUE(newbuf != NULL)) {
+               memcpy(newbuf, addr, size);
+       }
+       return newbuf;
+}
+
+#define        UT_CLONE(type, addr)                                            \
+       (reinterpret_cast<type *>(ut_clone(addr, sizeof(type))))
+
+/*
+ * Base class for test environment.
+ */
+class UpllTestEnv
+  : public ::testing::Test
+{
+protected:
+  virtual void  SetUp();
+  virtual void  TearDown();
+
+  inline unc::upll::dal::DalDmlIntf *
+  getDalDmlIntf(void)
+  {
+    return dynamic_cast<unc::upll::dal::DalDmlIntf *>(&_dalOdbcMgr);
+  }
+
+private:
+  unc::upll::dal::DalOdbcMgr  _dalOdbcMgr;
+};
+
+/*
+ * Declare IpcReqRespHeader as local variable.
+ */
+#define        IPC_REQ_RESP_HEADER_DECL(name)          \
+    IpcReqRespHeader  __buf_##name;             \
+    IpcReqRespHeader  *name(&__buf_##name);     \
+    memset(name, 0, sizeof(*name))
+
+/*
+ * Declare IpcResponse as local variable.
+ */
+#define        IPC_RESPONSE_DECL(name)                 \
+    IpcResponse  __buf_##name;                  \
+    IpcResponse  *name(&__buf_##name);          \
+    memset(name, 0, sizeof(*name))
+
+}  // test
+}  // upll
+}  // unc
+
+#endif /* !_TEST_UPLL_UT_UTIL_HH */
diff --git a/coordinator/test/modules/upll/ut/util.cc b/coordinator/test/modules/upll/ut/util.cc
new file mode 100644 (file)
index 0000000..81fc228
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/*
+ * misc.cc - Miscellaneous utilities.
+ */
+
+#include <capa_module_stub.hh>
+#include <dal_odbc_mgr.hh>
+#include <tclib_module.hh>
+#include <ctrlr_mgr.hh>
+#include <config_mgr.hh>
+#include "ut_util.hh"
+
+using namespace unc::upll::dal;
+using namespace unc::upll::test;
+using namespace unc::upll::config_momgr;
+using namespace unc::capa;
+using namespace unc::tclib;
+
+/*
+ * Set up test environment.
+ */
+void
+UpllTestEnv::SetUp()
+{
+  // Load stub modules.
+  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,
+                                          unc::tclib::TC_API_COMMON_SUCCESS);
+  TcLibModule::stub_loadtcLibModule();
+
+  // Initialize UpllConfigMgr.
+  UpllConfigMgr::GetUpllConfigMgr();
+}
+
+/*
+ * Clean up test environment.
+ */
+void
+UpllTestEnv::TearDown()
+{
+  CtrlrMgr::GetInstance()->CleanUp();
+
+  TcLibModule::stub_clearTcLibStubData();
+  TcLibModule::stub_unloadtcLibModule();
+
+  CapaModuleStub::stub_clearStubData();
+  CapaModuleStub::stub_unloadCapaModule();
+
+  DalOdbcMgr::clearStubData();
+}
index 4262146dd0e4dc9dda078124067ecf30882501c4..54892fd1eef800736a1d5d5691e4b393579e6c24 100644 (file)
 #include <limits.h>
 #include <arpa/inet.h>
 #include <gtest/gtest.h>
+#include <pfc/util.h>
 #include <pfc/ipc.h>
 #include <pfc/ipc_struct.h>
 #include <unc/keytype.h>
 #include <pfcxx/synch.hh>
-#include "vtn_momgr.hh"
-#include "vbr_momgr.hh"
-#include "vbr_if_momgr.hh"
-#include "unc/keytype.h"
-#include "config_mgr.hh"
-#include "dal_odbc_mgr.hh"
-#include "dal_dml_intf.hh"
-#include "capa_intf.hh"
-#include "capa_module_stub.hh"
-#include "tclib_module.hh"
-#include "ctrlr_mgr.hh"
-#include "momgr_intf_stub.hh"
-#include "dal_cursor.hh"
-#include "momgr_intf.hh"
-#include "momgr_impl.hh"
+#include <vtn_momgr.hh>
+#include <vbr_momgr.hh>
+#include <vbr_if_momgr.hh>
+#include <unc/keytype.h>
+#include <config_mgr.hh>
+#include <dal_odbc_mgr.hh>
+#include <dal_dml_intf.hh>
+#include <capa_intf.hh>
+#include <capa_module_stub.hh>
+#include <tclib_module.hh>
+#include <ctrlr_mgr.hh>
+#include <momgr_intf_stub.hh>
+#include <dal_cursor.hh>
+#include <momgr_intf.hh>
+#include <momgr_impl.hh>
+#include "ut_util.hh"
 
 using ::testing::TestWithParam;
 using ::testing::Values;
@@ -38,125 +40,125 @@ using namespace unc::tclib;
 using namespace unc::upll::dal;
 using namespace unc::upll::kt_momgr;
 using namespace unc::upll::config_momgr;
+using namespace unc::upll::test;
 using namespace unc::capa;
 using namespace pfc::core;
 using namespace unc::upll::dal::schema::table;
 
-namespace {
-
-class VbrIfMoMgrTest: public VbrMoMgr, public ::testing::Test {
- public:
- protected:
-  virtual void SetUp() {}
-
-  virtual void TearDown() {}
+class VbrIfMoMgrTest
+  : public UpllTestEnv
+{
 };
 
-
-
-void GetKeyValStruct(key_vbr_if *&kst, val_vbr_if *&vst) {
+static void GetKeyStruct(key_vbr_if *&kst) {
   const char *vtn_name = "VTN_1";
   const char *if_name = "IF_1";
   const char *vbr_name = "VBR_1";
-  const char *desc = "thisisvbridge";
-  const char *logical_port_id ="lport1";
-  kst = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(kst, 0, sizeof(key_vbr_if));
+
+  kst = ZALLOC_TYPE(key_vbr_if);
   strncpy(reinterpret_cast<char *>(kst->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(kst->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
   strncpy(reinterpret_cast<char *>(kst->if_name),
-  if_name, strlen(if_name)+1);
-  vst = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
-  memset(vst, 0, sizeof(val_vbr_if));
-  for( unsigned int loop = 0; loop < sizeof( vst->valid )/
-     sizeof( vst->valid[0] ); ++loop ) {
+          if_name, strlen(if_name)+1);
+}
+
+static void GetValStruct(val_vbr_if *&vst)
+{
+  const char *desc = "thisisvbridge";
+  const char *logical_port_id ="lport1";
+
+  vst = ZALLOC_TYPE(val_vbr_if);
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->valid); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   vst->cs_row_status = UNC_VF_VALID;
-  for( unsigned int loop = 0; loop < sizeof( vst->valid )/
-     sizeof(vst->valid[0]); ++loop) {
+
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->cs_attr);
+       ++loop) {
     vst->cs_attr[loop] = UNC_CS_APPLIED;
   }
+
   vst->admin_status = UPLL_ADMIN_ENABLE;
-  strncpy(reinterpret_cast<char *>(vst->description), desc,
-  strlen(desc)+1);
+  strncpy(reinterpret_cast<char *>(vst->description), desc, strlen(desc)+1);
   vst->portmap.vlan_id=1;
   vst->portmap.tagged=1;
-  for( unsigned int loop = 0; loop < sizeof( vst->portmap.valid )/
-     sizeof( vst->portmap.valid[0]); ++loop ) {
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->portmap.valid);
+       ++loop) {
     vst->portmap.valid[loop] = UNC_VF_VALID;
   }
-  for( unsigned int loop = 0; loop < sizeof( vst->portmap.valid )/
-     sizeof( vst->portmap.valid[0] ); ++loop ) {
+
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->portmap.valid);
+       ++loop) {
     vst->portmap.cs_attr[loop] = UNC_CS_APPLIED;
   }
-  strncpy(reinterpret_cast<char *>
-          (vst->portmap.logical_port_id), logical_port_id,
-  strlen(logical_port_id)+1);
+  strncpy(reinterpret_cast<char *>(vst->portmap.logical_port_id),
+          logical_port_id, strlen(logical_port_id)+1);
+}
 
+static void GetKeyValStruct(key_vbr_if *&kst, val_vbr_if *&vst)
+{
+  GetKeyStruct(kst);
+  GetValStruct(vst);
 }
-void GetKeyValDrvStruct(key_vbr_if *&kst, val_drv_vbr_if *&vst) {
 
+static void GetValDrvStruct(val_drv_vbr_if *&vst)
+{
   const char *vex_name = "Vex_1";
   const char *vex_if_name = "Vex if_1";
   const char *vex_link_name = "Vex link_1";
-  const char *vtn_name = "VTN_1";
-  const char *if_name = "IF_1";
-  const char *vbr_name = "VBR_1";
   const char *desc = "thisisvbridge";
   const char *logical_port_id ="lport1";
-  kst = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(kst,0,sizeof(key_vbr_if));
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->if_name),
-  if_name, strlen(if_name)+1);
-  vst = reinterpret_cast<val_drv_vbr_if *>(malloc
-  (sizeof(val_drv_vbr_if)));
-  memset(vst,0,sizeof(val_drv_vbr_if));
+
+  vst = ZALLOC_TYPE(val_drv_vbr_if);
   strncpy(reinterpret_cast<char *>(vst->vex_name), vex_name,
   strlen(vex_name)+1);
   strncpy(reinterpret_cast<char *>(vst->vex_if_name), vex_if_name,
   strlen(vex_if_name)+1);
   strncpy(reinterpret_cast<char *>(vst->vex_link_name), vex_link_name,
   strlen(vex_link_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
+
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->valid); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
-  for(unsigned int loop = 0; loop < sizeof(vst->vbr_if_val.valid)/
-     sizeof(vst->vbr_if_val.valid[0]); ++loop) {
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->vbr_if_val.valid);
+       ++loop) {
     vst->vbr_if_val.valid[loop] = UNC_VF_VALID;
   }
+
   vst->vbr_if_val.cs_row_status = UNC_VF_VALID;
-  for(unsigned int loop = 0; loop < sizeof(vst->vbr_if_val.valid)/
-     sizeof(vst->vbr_if_val.valid[0]); ++loop) {
+
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->vbr_if_val.valid);
+       ++loop) {
     vst->vbr_if_val.cs_attr[loop] = UNC_CS_APPLIED;
   }
+
   vst->vbr_if_val.admin_status=UPLL_ADMIN_ENABLE;
   strncpy(reinterpret_cast<char *>(vst->vbr_if_val.description), desc,
-  strlen(desc)+1);
+          strlen(desc)+1);
   vst->vbr_if_val.portmap.vlan_id=1;
   vst->vbr_if_val.portmap.tagged=0;
-  for(unsigned int loop = 0; loop < sizeof(vst->vbr_if_val.portmap.valid)/
-     sizeof(vst->vbr_if_val.portmap.valid[0]); ++loop) {
+
+  for (unsigned int loop = 0;
+       loop < PFC_ARRAY_CAPACITY(vst->vbr_if_val.portmap.valid); ++loop) {
     vst->vbr_if_val.portmap.valid[loop] = UNC_VF_VALID;
   }
-  for(unsigned int loop = 0; loop < sizeof(vst->vbr_if_val.portmap.valid)/
-     sizeof(vst->vbr_if_val.portmap.valid[0]); ++loop) {
+  for (unsigned int loop = 0;
+       loop < PFC_ARRAY_CAPACITY(vst->vbr_if_val.portmap.valid); ++loop) {
     vst->vbr_if_val.portmap.cs_attr[loop] = UNC_CS_APPLIED;
   }
-  strncpy(reinterpret_cast<char *>(vst->vbr_if_val.portmap.logical_port_id), logical_port_id,
-  strlen(logical_port_id)+1);
 
+  strncpy(reinterpret_cast<char *>(vst->vbr_if_val.portmap.logical_port_id),
+          logical_port_id, strlen(logical_port_id)+1);
+}
+
+static void GetKeyValDrvStruct(key_vbr_if *&kst, val_drv_vbr_if *&vst)
+{
+  GetKeyStruct(kst);
+  GetValDrvStruct(vst);
 }
+
 TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_ReqInvalidKT) {
   VbrIfMoMgr obj;
   ConfigKeyVal *okey = NULL;
@@ -174,6 +176,7 @@ TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_ReqInvalidKT) {
   delete req;
   delete okey;
 }
+
 TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_SuccessMAINTBL) {
   VbrIfMoMgr obj;
   ConfigKeyVal *okey = NULL;
@@ -190,10 +193,11 @@ TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_SuccessMAINTBL) {
   delete req;
   delete okey;
 }
+
 TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_Error) {
   VbrIfMoMgr obj;
   ConfigKeyVal *okey = NULL;
-  key_vbr_if *key;
+  key_vbr_if *key(NULL);
   val_vbr_if *val=NULL;
 
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
@@ -202,18 +206,20 @@ TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_Error) {
                             key, tmp);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  delete req;
   delete okey;
 }
+
 TEST_F(VbrIfMoMgrTest, IsValidKey_InvalidIndex) {
   VbrIfMoMgr obj;
   uint64_t index = uudst::vbridge_interface::kDbiCtrlrName;
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  GetKeyStruct(key);
 
   EXPECT_EQ(true, obj.IsValidKey(reinterpret_cast<void *>(key),
                                  index));
 }
+
 TEST_F(VbrIfMoMgrTest, CopyToConfigkey_InValidName) {
   VbrIfMoMgr obj;
   ConfigKeyVal *okey = NULL;
@@ -221,28 +227,29 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_InValidName) {
   const char *vtn_name = "";
   const char *vbr_name = "";
   const char *if_name = "";
-  key = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(key,0,sizeof(key_vbr_if));
+  key = ZALLOC_TYPE(key_vbr_if);
   strncpy(reinterpret_cast<char *>(key->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
   strncpy(reinterpret_cast<char *>(key->if_name),
-  if_name, strlen(if_name)+1);
+          if_name, strlen(if_name)+1);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, NULL);
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, NULL));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
 
   strncpy(reinterpret_cast<char *>(key->vbr_key.vtn_key.vtn_name),"VTN_1",32);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key1, NULL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey1));
+  delete ikey;
+  delete ikey1;
+  delete okey;
 }
+
 TEST_F(VbrIfMoMgrTest, CopyToConfigkey_InValidName_01) {
   VbrIfMoMgr obj;
   ConfigKeyVal *okey = NULL;
@@ -250,97 +257,111 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_InValidName_01) {
   const char *vtn_name = "vtn1";
   const char *vbr_name = "";
   const char *if_name = "";
-  key = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(key,0,sizeof(key_vbr_if));
+  key = ZALLOC_TYPE(key_vbr_if);
   strncpy(reinterpret_cast<char *>(key->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
   strncpy(reinterpret_cast<char *>(key->if_name),
-  if_name, strlen(if_name)+1);
+          if_name, strlen(if_name)+1);
 
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, NULL);
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key, NULL));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey1));
+  delete ikey1;
+  delete okey;
 }
-TEST_F(VbrIfMoMgrTest, CompareValidValue_AuditTrue) {
 
+TEST_F(VbrIfMoMgrTest, CompareValidValue_AuditTrue) {
   VbrIfMoMgr obj;
-  key_vbr_if *key;
-  val_vbr_if *val, *val1;
-  GetKeyValStruct(key, val);
-  GetKeyValStruct(key, val1);
-
-  strncpy(reinterpret_cast<char *>(val1->description), "des1",
-  strlen("des1")+1);
-  void *vbrval = reinterpret_cast<void *>(&val);
-
-  obj.CompareValidValue(vbrval, (void *)val,true);
-  obj.CompareValidValue(vbrval, (void *)val1,true);
+  val_drv_vbr_if *val, *val1;
+  GetValDrvStruct(val);
+  GetValDrvStruct(val1);
 
+  void *vbrval = reinterpret_cast<void *>(val);
+  ASSERT_TRUE(obj.CompareValidValue(vbrval, (void *)val1, true));
+  free(val);
+  free(val1);
 }
-TEST_F(VbrIfMoMgrTest, CompareValidValue_01) {
 
+TEST_F(VbrIfMoMgrTest, CompareValidValue_01) {
   VbrIfMoMgr obj;
-  key_vbr_if *key;
-  val_drv_vbr_if *val, *val1;
-  GetKeyValDrvStruct(key, val);
-  GetKeyValDrvStruct(key, val1);
+  val_drv_vbr_if *val, *val1, *val2;
+  GetValDrvStruct(val);
+  GetValDrvStruct(val1);
+  GetValDrvStruct(val2);
+
+  void *vbrval = reinterpret_cast<void *>(val);
+  val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
+  val->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
+  val->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
+  val1->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
+  val1->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
+  val1->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
+  ASSERT_FALSE(obj.CompareValidValue(vbrval, (void *)val1, true));
 
-  void *vbrval = reinterpret_cast<void *>(&val);
+  val->valid[PFCDRV_IDX_VAL_VBRIF] = UNC_VF_VALID;
   val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
   val->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
   val->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
-  obj.CompareValidValue(vbrval, (void *)val,true);
-  obj.CompareValidValue(vbrval, (void *)val1,true);
+  ASSERT_FALSE(obj.CompareValidValue(vbrval, (void *)val2, true));
+
+  free(val);
+  free(val1);
+  free(val2);
 }
-TEST_F(VbrIfMoMgrTest, CompareValidValue_02) {
 
+TEST_F(VbrIfMoMgrTest, CompareValidValue_02) {
   VbrIfMoMgr obj;
-  key_vbr_if *key;
   val_drv_vbr_if *val, *val1;
-  GetKeyValDrvStruct(key, val);
-  GetKeyValDrvStruct(key, val1);
+  GetValDrvStruct(val);
+  GetValDrvStruct(val1);
 
-  void *vbrval = reinterpret_cast<void *>(&val);
+  void *vbrval = reinterpret_cast<void *>(val);
   val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
   val1->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-  obj.CompareValidValue(vbrval, (void *)val,true);
-  obj.CompareValidValue(vbrval, (void *)val1,true);
+  ASSERT_TRUE(obj.CompareValidValue(vbrval, (void *)val1, true));
 
+  free(val);
+  free(val1);
 }
-TEST(FilterAttributes,CreateOperation) {
+
+TEST_F(VbrIfMoMgrTest, FilterAttributes_CreateOperation) {
   VbrIfMoMgr vbr;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_CREATE;
 
-  val_vbr_if_t *valvbr1 = reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if_t)));
+  val_vbr_if_t *valvbr1(ZALLOC_TYPE(val_vbr_if));
   valvbr1->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   EXPECT_EQ(false, vbr.FilterAttributes(val1,val2,audit_status,op));
+
+  free(valvbr1);
 }
 
-TEST(FilterAttributes,OperationUpdate) {
+TEST_F(VbrIfMoMgrTest, FilterAttributes_OperationUpdate) {
   VbrIfMoMgr vbr;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_UPDATE;
 
-  val_vbr_if_t *valvbr1 = reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if_t)));
+  val_drv_vbr_if_t *valvbr1(ZALLOC_TYPE(val_drv_vbr_if));
+  val_drv_vbr_if_t *valvbr2(ZALLOC_TYPE(val_drv_vbr_if_t));
   valvbr1->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
+  valvbr2->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
-  val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
+  val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr2));
   EXPECT_EQ(true, vbr.FilterAttributes(val1,val2,audit_status,op));
+
+  free(valvbr1);
+  free(valvbr2);
 }
 
 TEST_F(VbrIfMoMgrTest, ValidateCapability_ErrorInput) {
-
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -350,32 +371,27 @@ TEST_F(VbrIfMoMgrTest, ValidateCapability_ErrorInput) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(req, ikey,NULL ));
+  IPC_REQ_RESP_HEADER_DECL(req);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(req, ikey, NULL));
+
+  delete ikey;
 }
-TEST(ValidateCapability, ValidateCapability_Success) {
 
+TEST_F(VbrIfMoMgrTest, ValidateCapability_Success) {
   VbrIfMoMgr vbr;
-  DalDmlIntf * dmi= new DalOdbcMgr();
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-
   CtrlrMgr::Ctrlr ctrlrobj("CTR_1", UNC_CT_PFC, "5.0");
   CtrlrMgr::GetInstance()->Add(ctrlrobj, UPLL_DT_CANDIDATE);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -394,9 +410,11 @@ TEST(ValidateCapability, ValidateCapability_Success) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
   req->operation = UNC_OP_DELETE;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, "CTR_1"));
+
+  delete ikey;
 }
-TEST(ValidateCapability, ValidateCapability_ikey_NULL) {
 
+TEST_F(VbrIfMoMgrTest, ValidateCapability_ikey_NULL) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -407,40 +425,31 @@ TEST(ValidateCapability, ValidateCapability_ikey_NULL) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
 }
 
-TEST(vbr_if_momgr_test, ValidateCapability_SUCCESS) {
-VbrIfMoMgr obj;
-const char * ctrlr_name = reinterpret_cast<const char *>("PFC222");
-  key_vbr_if *vbrif_key = reinterpret_cast<key_vbr_if *>
-                                       (malloc(sizeof(key_vrt_if)));
-
-memset(vbrif_key, 0, sizeof(key_vrt_if));
-strcpy((char*)vbrif_key->vbr_key.vtn_key.vtn_name,(char*)"vtn1");
-strcpy((char*)vbrif_key->vbr_key.vbridge_name,(char*)"VRT31");
-strcpy((char*)vbrif_key->if_name,(char*)"VRTIF11");
+TEST_F(VbrIfMoMgrTest, ValidateCapability_SUCCESS) {
+  VbrIfMoMgr obj;
+  const char * ctrlr_name = reinterpret_cast<const char *>("PFC222");
+  key_vbr_if *vbrif_key(ZALLOC_TYPE(key_vbr_if));
+  strcpy((char*)vbrif_key->vbr_key.vtn_key.vtn_name,(char*)"vtn1");
+  strcpy((char*)vbrif_key->vbr_key.vbridge_name,(char*)"VRT31");
+  strcpy((char*)vbrif_key->if_name,(char*)"VRTIF11");
 
-IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(
-  malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_UPDATE;
+  req->datatype =  UPLL_DT_CANDIDATE;
 
-req->operation = UNC_OP_UPDATE;
-req->datatype =  UPLL_DT_CANDIDATE;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, vbrif_key, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, obj.ValidateCapability(req, ikey, ctrlr_name));
 
-ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, vbrif_key, NULL);
-EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, obj.ValidateCapability(req, ikey, ctrlr_name));
-free(req);
+  delete ikey;
 }
 
-
-TEST_F(VbrIfMoMgrTest, Success_01) {
-
+TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Success_01) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, val);
-
-
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfg_val);
@@ -448,8 +457,8 @@ TEST_F(VbrIfMoMgrTest, Success_01) {
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
-TEST_F(VbrIfMoMgrTest, Success_02) {
 
+TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Success_02) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -457,8 +466,6 @@ TEST_F(VbrIfMoMgrTest, Success_02) {
 
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, val);
-
-
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfg_val);
@@ -466,17 +473,14 @@ TEST_F(VbrIfMoMgrTest, Success_02) {
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
-TEST_F(VbrIfMoMgrTest, Success_03) {
 
+TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Success_03) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrIfSt, val);
-
-
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfg_val);
@@ -484,8 +488,8 @@ TEST_F(VbrIfMoMgrTest, Success_03) {
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
-TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Failure) {
 
+TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Failure) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -502,16 +506,14 @@ TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Failure) {
   delete ikey;
 }
 
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_01) {
-  DalOdbcMgr::clearStubData();
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_01) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,unc::tclib::TC_API_COMMON_SUCCESS);
-  TcLibModule::stub_loadtcLibModule();
+
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs1=0;
   uint8_t *attrs=&attrs1;
@@ -519,15 +521,14 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_01) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_IMPORT));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_02) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs1=0;
   uint8_t *attrs=&attrs1;
@@ -537,13 +538,12 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_02) {
   delete ikey;
 }
 
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_03) {
-
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID;
   uint8_t attrs1=0;
@@ -554,13 +554,13 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_03) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_04) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs1=0;
   uint8_t *attrs=&attrs1;
@@ -572,14 +572,15 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_04) {
   delete ikey;
 }
 
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_05) {
-
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_05) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[10];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->admin_status=UPLL_ADMIN_ENABLE;
@@ -588,15 +589,16 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_05) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_06) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_06) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[10];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
@@ -604,15 +606,16 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_06) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_07) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_07) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[10];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
@@ -621,15 +624,16 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_07) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_08) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_08) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[10];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   attrs[unc::capa::vbr_if::kCapLogicalPortId]=0;
@@ -638,15 +642,16 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_08) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_09) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_09) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[10];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
@@ -655,15 +660,16 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_09) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_10) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_10) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[10];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   attrs[unc::capa::vbr_if::kCapVlanId]=0;
@@ -673,15 +679,15 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_10) {
   delete ikey;
 }
 
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_11) {
-
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_11) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[20];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   attrs[unc::capa::vbr_if::kCapTagged]=0;
@@ -690,15 +696,16 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_11) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_12) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_12) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs[20];
+  memset(attrs, 0xff, sizeof(attrs));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   attrs[unc::capa::vbr_if::kCapTagged]=0;
@@ -707,23 +714,12 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttrbuteSupportCheck_12) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_13) {
 
+TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_13) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
   val_vbr_if *vst=NULL;
-  const char *vtn_name = "VTN_1";
-  const char *if_name = "IF_1";
-  const char *vbr_name = "VBR_1";
-  kst = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(kst,0,sizeof(key_vbr_if));
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->if_name),
-  if_name, strlen(if_name)+1);
+  GetKeyStruct(kst);
 
   unc_keytype_operation_t operation= UNC_OP_CREATE;
   uint8_t attrs1=0;
@@ -733,48 +729,49 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_13) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_IMPORT));
   delete ikey;
 }
-TEST(RestoreUnInitOPerStatus, RestoreUnInitOPerStatus_01) {
 
+TEST_F(VbrIfMoMgrTest, RestoreUnInitOPerStatus_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.RestoreUnInitOPerStatus(dmi));
+
   delete ikey;
 }
 
-TEST(GetVexternal, GetVexternal_01) {
-
+TEST_F(VbrIfMoMgrTest, GetVexternal_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
-  val_vbr_if *val;
+  val_drv_vbr_if *val;
   upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
-  GetKeyValStruct(key, val);
+  GetKeyValDrvStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t vexternal1=1;
   uint8_t *vexternal=&vexternal1;
   uint8_t vex_if1=1;
   uint8_t *vex_if=&vex_if1;
   InterfacePortMapInfo iftype;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+
   delete ikey;
 }
-TEST(GetVexternal, GetVexternal_02) {
 
+TEST_F(VbrIfMoMgrTest, GetVexternal_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
-  val_vbr_if *val;
+  val_drv_vbr_if *val;
   upll_keytype_datatype_t dt_type=UPLL_DT_AUDIT;
-  GetKeyValStruct(key, val);
+  GetKeyValDrvStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t vexternal1=1;
   uint8_t *vexternal=&vexternal1;
   uint8_t vex_if1=1;
@@ -782,74 +779,78 @@ TEST(GetVexternal, GetVexternal_02) {
   InterfacePortMapInfo iftype;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+
   delete ikey;
 }
-TEST(GetVexternal, GetVexternal_03) {
 
+TEST_F(VbrIfMoMgrTest, GetVexternal_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t vexternal1=1;
   uint8_t *vexternal=&vexternal1;
   uint8_t vex_if1=1;
   uint8_t *vex_if=&vex_if1;
   InterfacePortMapInfo iftype;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+
   delete ikey;
 }
 
-TEST(GetVexternal, GetVexternal_04) {
-
+TEST_F(VbrIfMoMgrTest, GetVexternal_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key=NULL;
   val_vbr_if *val=NULL;
   upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t vexternal1=1;
   uint8_t *vexternal=&vexternal1;
   uint8_t vex_if1=1;
   uint8_t *vex_if=&vex_if1;
   InterfacePortMapInfo iftype;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+
   delete ikey;
 }
-TEST(IsReferenced, IsReferenced_01) {
 
+TEST_F(VbrIfMoMgrTest, IsReferenced_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.IsReferenced(ikey,dt_type,dmi));
+
   delete ikey;
 }
-TEST(IsReferenced, IsReferenced_02) {
 
+TEST_F(VbrIfMoMgrTest, IsReferenced_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.IsReferenced(ikey,dt_type,dmi));
+
   delete ikey;
 }
-TEST(IsReferenced, IsReferenced_03) {
 
+TEST_F(VbrIfMoMgrTest, IsReferenced_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -860,68 +861,64 @@ TEST(IsReferenced, IsReferenced_03) {
   map.insert(std::make_pair(1,kDalRcRecordNoMore));
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.IsReferenced(ikey,dt_type,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(IsReferenced, IsReferenced_04) {
 
+TEST_F(VbrIfMoMgrTest, IsReferenced_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.IsReferenced(ikey,dt_type,dmi));
+
   delete ikey;
 }
-TEST(UpdateMo, UpdateMo_01) {
 
+TEST_F(VbrIfMoMgrTest, UpdateMo_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, vbr.UpdateMo(req,ikey,dmi));
+
   delete ikey;
 }
-TEST(UpdateMo, UpdateMo_02) {
 
+TEST_F(VbrIfMoMgrTest, UpdateMo_02) {
   VbrIfMoMgr vbr;
-  key_vbr_if *key;
-  val_vbr_if *val;
-
-  GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.UpdateMo(req,ikey,dmi));
-  delete ikey;
 }
-TEST(UpdateMo, UpdateMo_03) {
 
+TEST_F(VbrIfMoMgrTest, UpdateMo_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
@@ -930,17 +927,17 @@ TEST(UpdateMo, UpdateMo_03) {
   CapaModuleStub::stub_loadCapaModule();
   CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_UPDATE_CAPABILITY, true);
 
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
 
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.UpdateMo(req,ikey,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(UpdateMo, UpdateMo_04) {
 
+TEST_F(VbrIfMoMgrTest, UpdateMo_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -948,19 +945,19 @@ TEST(UpdateMo, UpdateMo_04) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vbr.UpdateMo(req,ikey,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(UpdateMo, UpdateMo_05) {
 
+TEST_F(VbrIfMoMgrTest, UpdateMo_05) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -968,25 +965,25 @@ TEST(UpdateMo, UpdateMo_05) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
 
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
   CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.UpdateMo(req,ikey,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ValidateAttribute, ValidateAttribute_01) {
 
+TEST_F(VbrIfMoMgrTest, ValidateAttribute_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -994,120 +991,96 @@ TEST(ValidateAttribute, ValidateAttribute_01) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateAttribute(ikey,dmi,req));
+
   delete ikey;
 }
-TEST(ValidateAttribute, ValidateAttribute_02) {
 
+TEST_F(VbrIfMoMgrTest, ValidateAttribute_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
   val_vbr_if *vst=NULL;
+  GetKeyStruct(kst);
 
-  const char *vtn_name = "VTN_1";
-  const char *if_name = "IF_1";
-  const char *vbr_name = "VBR_1";
-  kst = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(kst,0,sizeof(key_vbr_if));
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->if_name),
-  if_name, strlen(if_name)+1);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateAttribute(ikey,dmi,req));
+
   delete ikey;
 }
-TEST(ValidateAttribute, ValidateAttribute_03) {
 
+TEST_F(VbrIfMoMgrTest, ValidateAttribute_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
   val_vbr_if *vst=NULL;
+  GetKeyStruct(kst);
 
-  const char *vtn_name = "VTN_1";
-  const char *if_name = "IF_1";
-  const char *vbr_name = "VBR_1";
-  kst = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(kst,0,sizeof(key_vbr_if));
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->if_name),
-  if_name, strlen(if_name)+1);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateAttribute(ikey,dmi,req));
+
+  delete ikey;
 }
 
- TEST(ValidateAttribute, ValidateAttribute_04) {
+TEST_F(VbrIfMoMgrTest, ValidateAttribute_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
   val_vbr_if *vst=NULL;
-  const char *vtn_name = "VTN_1";
-  const char *if_name = "IF_1";
-  const char *vbr_name = "VBR_1";
-  kst = reinterpret_cast<key_vbr_if *>(malloc
-                     (sizeof(key_vbr_if)));
-  memset(kst,0,sizeof(key_vbr_if));
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->vbr_key.vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->if_name),
-  if_name, strlen(if_name)+1);
+  GetKeyStruct(kst);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateAttribute(ikey,dmi,req));
+
   delete ikey;
- }
+}
 
-TEST(CopyToConfigkey, CopyToConfigkey_01) {
+TEST_F(VbrIfMoMgrTest, CopyToConfigkey_01) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.CopyToConfigKey(okey,ikey));
-
 }
-TEST(CopyToConfigkey, CopyToConfigkey_02) {
+
+TEST_F(VbrIfMoMgrTest, CopyToConfigkey_02) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, NULL, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.CopyToConfigKey(okey,ikey));
+
+  delete ikey;
+  delete okey;
 }
 
-TEST(CopyToConfigkey, CopyToConfigkey_03) {
+TEST_F(VbrIfMoMgrTest, CopyToConfigkey_03) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey=NULL;
   key_vbr_if *key;
@@ -1117,8 +1090,12 @@ TEST(CopyToConfigkey, CopyToConfigkey_03) {
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CopyToConfigKey(okey,ikey));
+
+  delete ikey;
+  delete okey;
 }
-TEST(CopyToConfigkey, CopyToConfigkey_04) {
+
+TEST_F(VbrIfMoMgrTest, CopyToConfigkey_04) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey=NULL;
   key_vbr_if *key;
@@ -1127,416 +1104,450 @@ TEST(CopyToConfigkey, CopyToConfigkey_04) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
-  uuu::upll_strncpy(key->vbr_key.vtn_key.vtn_name, key_rename->old_unc_vtn_name,(kMaxLenVtnName + 1));
-
-
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CopyToConfigKey(okey,ikey));
+
+  delete ikey;
+  delete okey;
 }
-TEST(CopyToConfigkey, CopyToConfigkey_05) {
+
+TEST_F(VbrIfMoMgrTest, CopyToConfigkey_05) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey=NULL;
   key_vbr_if *key;
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
+  key_rename_vnode_info *key_rename(ZALLOC_TYPE(key_rename_vnode_info));
+  pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vtn_name),
+              reinterpret_cast<const char *>(key->vbr_key.vtn_key.vtn_name),
+              sizeof(key_rename->old_unc_vtn_name));
+  pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vnode_name),
+              reinterpret_cast<const char *>(key->vbr_key.vbridge_name),
+              sizeof(key_rename->old_unc_vnode_name));
+  free(key);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf, key_rename, config_val);
+
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CopyToConfigKey(okey,ikey));
+
+  delete ikey;
+  delete okey;
 }
 
-TEST(UpdateConfigVal, UpdateConfigVal_01) {
+TEST_F(VbrIfMoMgrTest, UpdateConfigVal_01) {
   VbrIfMoMgr vbr;
   upll_keytype_datatype_t datatype=UPLL_DT_CANDIDATE;
   key_vbr_if *key;
-  val_vbr_if *val;
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  GetKeyValDrvStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.UpdateConfigVal(ikey,datatype,dmi));
+
   delete ikey;
 }
-TEST(UpdateConfigVal, UpdateConfigVal_03) {
+
+TEST_F(VbrIfMoMgrTest, UpdateConfigVal_03) {
   VbrIfMoMgr vbr;
   upll_keytype_datatype_t datatype=UPLL_DT_CANDIDATE;
   key_vbr_if *key;
-  val_vbr_if *val;
-  DalDmlIntf *dmi=new DalOdbcMgr();
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  GetKeyValDrvStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.UpdateConfigVal(ikey,datatype,dmi));
+
+  delete ikey;
 }
 
-TEST(ValidateVbrifKey, ValidateVbrifKey_01) {
+TEST_F(VbrIfMoMgrTest, ValidateVbrifKey_01) {
   VbrIfMoMgr vbr;
   unc_keytype_operation_t operation=UNC_OP_CREATE;
-  key_vbr_if_t *key = reinterpret_cast<key_vbr_if_t*>
-                     (malloc(sizeof(key_vbr_if_t)));
-  memset(key, 0 ,sizeof(key_vbr_if_t));
-
+  key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
   strncpy((char*) key->if_name,"IF_1",32);
   strncpy((char*) key->vbr_key.vbridge_name," ",32);
   strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrifKey(key,operation));
+
+  free(key);
 }
-TEST(ValidateVbrifKey, ValidateVbrifKey_02) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrifKey_02) {
   VbrIfMoMgr vbr;
   unc_keytype_operation_t operation=UNC_OP_CREATE;
-  key_vbr_if_t *key = reinterpret_cast<key_vbr_if_t*>
-                     (malloc(sizeof(key_vbr_if_t)));
-  memset(key, 0 ,sizeof(key_vbr_if_t));
+  key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
   strncpy((char*) key->if_name," ",32);
   strncpy((char*) key->vbr_key.vbridge_name,"vbr ",32);
   strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrifKey(key,operation));
+
+  free(key);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_011) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_01) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  strncpy((char*) val->description," ",32);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
+  val->description[0] = '\0';
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_02) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_02) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_03) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_03) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_04) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_04) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_05) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_05) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
+  val->portmap.logical_port_id[0] = '\0';
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_06) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_06) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_07) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_07) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
+  val->portmap.vlan_id = 0;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_08) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_08) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_09) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_09) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_10) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_10) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_11) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_11) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
+  val->admin_status = 0;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_12) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_12) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   val->portmap.logical_port_id[0] = 'S';
   val->portmap.logical_port_id[1] = 'W';
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_13) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_13) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
-  val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
-  val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
-  val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
+  GetValStruct(val);
+
+  val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
+  val->portmap.tagged = 10;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVbrIfValue, ValidateVbrIfValue_14) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_14) {
   VbrIfMoMgr vbr;
   val_vbr_if *val;
-  key_vbr_if *key;
-  GetKeyValStruct(key, val);
-  val = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
+  GetValStruct(val);
+
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+
+  free(val);
 }
-TEST(ValidateVtnNeighborValue, ValidateVtnNeighborValue_01) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_01) {
   VbrIfMoMgr vbr;
   const char *connected_vnode_name = "VTN_1";
   const char *connected_if_name = "IF_1";
   const char *connected_vlink_name = "VBR_1";
-  val_vtn_neighbor *vtn_neighbor= reinterpret_cast<val_vtn_neighbor *>(malloc
-                                  (sizeof(val_vtn_neighbor)));
-  memset(vtn_neighbor,0,sizeof(val_vtn_neighbor));
+  val_vtn_neighbor *vtn_neighbor(ZALLOC_TYPE(val_vtn_neighbor));
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vnode_name),
-  connected_vnode_name, strlen(connected_vnode_name)+1);
+          connected_vnode_name, strlen(connected_vnode_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_if_name),
-  connected_if_name, strlen(connected_if_name)+1);
+          connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
-  connected_vlink_name, strlen(connected_vlink_name)+1);
+          connected_vlink_name, strlen(connected_vlink_name)+1);
   for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
      sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
-  unc_keytype_operation_t operation = UNC_OP_CREATE;
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+
+  free(vtn_neighbor);
 }
-TEST(ValidateVtnNeighborValue, ValidateVtnNeighborValue_01_) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_02) {
   VbrIfMoMgr vbr;
   const char *connected_vnode_name = " ";
   const char *connected_if_name = "IF_1";
   const char *connected_vlink_name = "VBR_1";
-  val_vtn_neighbor *vtn_neighbor= reinterpret_cast<val_vtn_neighbor *>(malloc
-                                  (sizeof(val_vtn_neighbor)));
-  memset(vtn_neighbor,0,sizeof(val_vtn_neighbor));
+  val_vtn_neighbor *vtn_neighbor(ZALLOC_TYPE(val_vtn_neighbor));
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vnode_name),
-  connected_vnode_name, strlen(connected_vnode_name)+1);
+          connected_vnode_name, strlen(connected_vnode_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_if_name),
-  connected_if_name, strlen(connected_if_name)+1);
+          connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
-  connected_vlink_name, strlen(connected_vlink_name)+1);
+          connected_vlink_name, strlen(connected_vlink_name)+1);
   for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
-     sizeof(vtn_neighbor->valid[0]); ++loop) {
+        sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
-  unc_keytype_operation_t operation = UNC_OP_CREATE;
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+
+  free(vtn_neighbor);
 }
 
-TEST(ValidateVtnNeighborValue, ValidateVtnNeighborValue_02) {
+TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_03) {
   VbrIfMoMgr vbr;
   const char *connected_vnode_name = "VTN_1";
   const char *connected_if_name = "IF_1";
   const char *connected_vlink_name = "VBR_1";
-  val_vtn_neighbor *vtn_neighbor= reinterpret_cast<val_vtn_neighbor *>(malloc
-                                  (sizeof(val_vtn_neighbor)));
-  memset(vtn_neighbor,0,sizeof(val_vtn_neighbor));
+  val_vtn_neighbor *vtn_neighbor(ZALLOC_TYPE(val_vtn_neighbor));
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vnode_name),
-  connected_vnode_name, strlen(connected_vnode_name)+1);
+          connected_vnode_name, strlen(connected_vnode_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_if_name),
-  connected_if_name, strlen(connected_if_name)+1);
+          connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
-  connected_vlink_name, strlen(connected_vlink_name)+1);
+          connected_vlink_name, strlen(connected_vlink_name)+1);
   for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
-     sizeof(vtn_neighbor->valid[0]); ++loop) {
+        sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
-  unc_keytype_operation_t operation = UNC_OP_CREATE;
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+
+  free(vtn_neighbor);
 }
-TEST(ValidateVtnNeighborValue, ValidateVtnNeighborValue_03) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_04) {
   VbrIfMoMgr vbr;
   const char *connected_vnode_name = "VTN_1";
   const char *connected_if_name = "IF_1";
   const char *connected_vlink_name = "VBR_1";
-  val_vtn_neighbor *vtn_neighbor= reinterpret_cast<val_vtn_neighbor *>(malloc
-                                  (sizeof(val_vtn_neighbor)));
-  memset(vtn_neighbor,0,sizeof(val_vtn_neighbor));
+  val_vtn_neighbor *vtn_neighbor(ZALLOC_TYPE(val_vtn_neighbor));
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vnode_name),
-  connected_vnode_name, strlen(connected_vnode_name)+1);
+          connected_vnode_name, strlen(connected_vnode_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_if_name),
-  connected_if_name, strlen(connected_if_name)+1);
+          connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
-  connected_vlink_name, strlen(connected_vlink_name)+1);
+          connected_vlink_name, strlen(connected_vlink_name)+1);
   for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
-     sizeof(vtn_neighbor->valid[0]); ++loop) {
+        sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
-  unc_keytype_operation_t operation = UNC_OP_CREATE;
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+
+  free(vtn_neighbor);
 }
-TEST(ValidateVtnNeighborValue, ValidateVtnNeighborValue_04) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_05) {
   VbrIfMoMgr vbr;
   const char *connected_vnode_name = "VTN_1";
   const char *connected_if_name = "IF_1";
   const char *connected_vlink_name = "VBR_1";
-  val_vtn_neighbor *vtn_neighbor= reinterpret_cast<val_vtn_neighbor *>(malloc
-                                  (sizeof(val_vtn_neighbor)));
-  memset(vtn_neighbor,0,sizeof(val_vtn_neighbor));
+  val_vtn_neighbor *vtn_neighbor(ZALLOC_TYPE(val_vtn_neighbor));
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vnode_name),
-  connected_vnode_name, strlen(connected_vnode_name)+1);
+          connected_vnode_name, strlen(connected_vnode_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_if_name),
-  connected_if_name, strlen(connected_if_name)+1);
+          connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
-  connected_vlink_name, strlen(connected_vlink_name)+1);
+          connected_vlink_name, strlen(connected_vlink_name)+1);
   for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
-     sizeof(vtn_neighbor->valid[0]); ++loop) {
+        sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
-  unc_keytype_operation_t operation = UNC_OP_CREATE;
   vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+
+  free(vtn_neighbor);
 }
-TEST(ValidateVtnNeighborValue, ValidateVtnNeighborValue_05) {
+
+TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_06) {
   VbrIfMoMgr vbr;
   const char *connected_vnode_name = "VTN_1";
   const char *connected_if_name = "IF_1";
   const char *connected_vlink_name = " ";
-  val_vtn_neighbor *vtn_neighbor= reinterpret_cast<val_vtn_neighbor *>(malloc
-                                  (sizeof(val_vtn_neighbor)));
-
-  memset(vtn_neighbor,0,sizeof(val_vtn_neighbor));
+  val_vtn_neighbor *vtn_neighbor(ZALLOC_TYPE(val_vtn_neighbor));
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vnode_name),
-  connected_vnode_name, strlen(connected_vnode_name)+1);
+          connected_vnode_name, strlen(connected_vnode_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_if_name),
-  connected_if_name, strlen(connected_if_name)+1);
+          connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
-  connected_vlink_name, strlen(connected_vlink_name)+1);
+          connected_vlink_name, strlen(connected_vlink_name)+1);
   for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
-     sizeof(vtn_neighbor->valid[0]); ++loop) {
+        sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
-  unc_keytype_operation_t operation = UNC_OP_CREATE;
   vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+
+  free(vtn_neighbor);
 }
 
-TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_01) {
+TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_IMPORT;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+
   delete ikey;
 }
-TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_02) {
+
+TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   GetKeyValStruct(key, val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *ikey = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+
   delete ikey;
 }
-TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_03) {
+
+TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   GetKeyValStruct(key, val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -1545,19 +1556,20 @@ TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_03) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_04) {
+
+TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_IMPORT;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
@@ -1567,20 +1579,20 @@ TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_04) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::EXECUTE_QUERY,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
 
-
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
 
-TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_05) {
+TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_05) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_IMPORT;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
@@ -1591,56 +1603,56 @@ TEST(IsLogicalPortAndVlanIdInUse, IsLogicalPortAndVlanIdInUse_05) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
 
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM]=UNC_VF_VALID;
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
-TEST(GetBoundaryInterfaces, 01) {
 
+TEST_F(VbrIfMoMgrTest, GetBoundaryInterfaces_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vnode_if_t boundary_if;
+  memset(&boundary_if, 0, sizeof(boundary_if));
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vbr.GetBoundaryInterfaces(boundary_if,dmi,ikey));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(SetBoundaryIfOperStatusforPathFault, 01) {
 
+TEST_F(VbrIfMoMgrTest, SetBoundaryIfOperStatusforPathFault_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  state_notification notification;
+  DalDmlIntf *dmi(getDalDmlIntf());
   const set<key_vnode_if_t, key_vnode_if_compare> boundary_if_set;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set,notification,dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set,kPathFault, dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(SetBoundaryIfOperStatusforPathFault, 02) {
 
+TEST_F(VbrIfMoMgrTest, SetBoundaryIfOperStatusforPathFault_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  state_notification notification;
+  DalDmlIntf *dmi(getDalDmlIntf());
   const set<key_vnode_if_t, key_vnode_if_compare> boundary_if_set;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -1648,31 +1660,31 @@ TEST(SetBoundaryIfOperStatusforPathFault, 02) {
   map.insert(std::make_pair(1,kDalRcRecordNoMore));
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set,notification,dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set,kPathFault,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(CreateAuditMoImpl, 01) {
 
+TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   const char *ctrlr_name="ctr1";
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.CreateAuditMoImpl(ikey,dmi,ctrlr_name));
+
+  delete ikey;
 }
 
-TEST(vbrif_momgr_test, CreateAuditMoImplSuccess ) {
+TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_02) {
   VbrIfMoMgr obj;
-  DalDmlIntf *dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   const char *ctrlr_id ="pfc001";
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -1689,31 +1701,32 @@ TEST(vbrif_momgr_test, CreateAuditMoImplSuccess ) {
                             key, cfgval);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CreateAuditMoImpl(ikey, dmi, ctrlr_id));
-}
 
-TEST(CreateAuditMoImpl, 02) {
+  delete ikey;
+}
 
+TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   const char *ctrlr_name="ctr1";
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbrIf,
                             key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.CreateAuditMoImpl(ikey,dmi,ctrlr_name));
+
+  delete ikey;
 }
 
-TEST(vbrif_momgr_test, 03 ) {
+TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_04) {
   VbrIfMoMgr obj;
-  DalDmlIntf *dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   const char *ctrlr_id ="pfc001";
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -1730,10 +1743,11 @@ TEST(vbrif_momgr_test, 03 ) {
                             key, cfgval);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CreateAuditMoImpl(ikey, dmi, ctrlr_id));
-}
 
-TEST(GetMappedVbridges, 01) {
+  delete ikey;
+}
 
+TEST_F(VbrIfMoMgrTest, GetMappedVbridges_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1742,14 +1756,11 @@ TEST(GetMappedVbridges, 01) {
   std::string logportid;
   set<key_vnode_type_t, key_vnode_type_compare> sw_vbridge_set;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetMappedVbridges, 02) {
 
+TEST_F(VbrIfMoMgrTest, GetMappedVbridges_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1760,14 +1771,14 @@ TEST(GetMappedVbridges, 02) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetMappedVbridges, 03) {
 
+TEST_F(VbrIfMoMgrTest, GetMappedVbridges_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1778,7 +1789,7 @@ TEST(GetMappedVbridges, 03) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
   std::map<uint8_t,DalResultCode> map;
@@ -1786,11 +1797,11 @@ TEST(GetMappedVbridges, 03) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetMappedVbridges, 04) {
 
+TEST_F(VbrIfMoMgrTest, GetMappedVbridges_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1799,15 +1810,11 @@ TEST(GetMappedVbridges, 04) {
   std::string logportid;
   set<key_vnode_type_t, key_vnode_type_compare> sw_vbridge_set;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, NULL);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
-  delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(PathFaultHandler, 03) {
 
+TEST_F(VbrIfMoMgrTest, PathFaultHandler_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1819,7 +1826,7 @@ TEST(PathFaultHandler, 03) {
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -1828,11 +1835,11 @@ TEST(PathFaultHandler, 03) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.PathFaultHandler(ctrlr_name,domain_id,ingress_ports,egress_ports,alarm_asserted,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(PathFaultHandler, 04) {
 
+TEST_F(VbrIfMoMgrTest, PathFaultHandler_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1840,11 +1847,10 @@ TEST(PathFaultHandler, 04) {
   const char *domain_id="dom1";
   std::vector<std::string> ingress_ports;
   std::vector<std::string> egress_ports;
-  bool alarm_asserted;
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
   std::map<uint8_t,DalResultCode> map;
@@ -1852,12 +1858,12 @@ TEST(PathFaultHandler, 04) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.PathFaultHandler(ctrlr_name,domain_id,ingress_ports,egress_ports,alarm_asserted,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.PathFaultHandler(ctrlr_name,domain_id,ingress_ports,egress_ports,false,dmi));
+
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(TxUpdateController,NULL ) {
 
+TEST_F(VbrIfMoMgrTest, TxUpdateController_NULL) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1866,28 +1872,20 @@ TEST(TxUpdateController,NULL ) {
   uint32_t session_id=1;
   uint32_t config_id=2;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
-  memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
-  memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
 
   set<std::string> affected_ctrlr_set;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcRecordNoMore);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
-TEST(TxUpdateController,default ) {
 
+TEST_F(VbrIfMoMgrTest, TxUpdateController_default) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1896,31 +1894,32 @@ TEST(TxUpdateController,default ) {
   uint32_t session_id=1;
   uint32_t config_id=2;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
+  controller_domain *ctrlr_dom(ZALLOC_TYPE(controller_domain_t));
   ctrlr_dom->ctrlr = ctr_id1;
   ctrlr_dom->domain = dom_id1;
 
   set<std::string> affected_ctrlr_set;
   affected_ctrlr_set.insert
                   (string(reinterpret_cast<char *>(ctrlr_dom->ctrlr)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
-  DalOdbcMgr::clearStubData();
-}
 
-TEST(TxUpdateController, 01 ) {
+  free(ctr_id1);
+  free(dom_id1);
+  free(ctrlr_dom);
+  delete ikey;
+}
 
+TEST_F(VbrIfMoMgrTest, TxUpdateController_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1929,20 +1928,18 @@ TEST(TxUpdateController, 01 ) {
   uint32_t session_id=1;
   uint32_t config_id=2;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
+  controller_domain *ctrlr_dom(ZALLOC_TYPE(controller_domain_t));
   ctrlr_dom->ctrlr = ctr_id1;
   ctrlr_dom->domain = dom_id1;
 
   set<std::string> affected_ctrlr_set;
   affected_ctrlr_set.insert
                   (string(reinterpret_cast<char *>(ctrlr_dom->ctrlr)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
@@ -1950,15 +1947,19 @@ TEST(TxUpdateController, 01 ) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_UPDATED_RECORDS,kDalRcSuccess);
   CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_UPDATE_CAPABILITY, true);
 
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
-  DalOdbcMgr::clearStubData();
+
+  free(ctr_id1);
+  free(dom_id1);
+  free(ctrlr_dom);
+  delete ikey;
 }
-TEST(TxUpdateController, 02 ) {
 
+TEST_F(VbrIfMoMgrTest, TxUpdateController_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -1967,61 +1968,32 @@ TEST(TxUpdateController, 02 ) {
   uint32_t session_id=1;
   uint32_t config_id=2;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
+  controller_domain *ctrlr_dom(ZALLOC_TYPE(controller_domain_t));
   ctrlr_dom->ctrlr = ctr_id1;
   ctrlr_dom->domain = dom_id1;
 
   set<std::string> affected_ctrlr_set;
   affected_ctrlr_set.insert
                   (string(reinterpret_cast<char *>(ctrlr_dom->ctrlr)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_DELETED_RECORDS,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
-  DalOdbcMgr::clearStubData();
-}
- TEST(TxUpdateController, 03 ) {
 
-      VbrIfMoMgr vbr;
-      key_vbr_if *key;
-      val_vbr_if *val;
-
-      GetKeyValStruct(key, val);
-      uint32_t session_id=1;
-      uint32_t config_id=2;
-      uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
-      uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-      memset(ctr_id1, '\0', 32);
-      memcpy(ctr_id1, "Controller1", 11);
-      uint8_t *dom_id1 = (uint8_t *)malloc(32);
-      memset(dom_id1, '\0', 32);
-      memcpy(dom_id1, "Domain1", 7);
-      controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-      ctrlr_dom->ctrlr = ctr_id1;
-      ctrlr_dom->domain = dom_id1;
-
-      set<std::string> affected_ctrlr_set ;
-      DalDmlIntf *dmi= new DalOdbcMgr();
-      GetKeyValStruct(key, val);
-      ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-      ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-      DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-      DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_DELETED_RECORDS,kDalRcSuccess);
-      EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
-      DalOdbcMgr::clearStubData();
-    }
-
-TEST(AuditUpdateController, 01 ) {
+  free(ctr_id1);
+  free(dom_id1);
+  free(ctrlr_dom);
+  delete ikey;
+}
 
+TEST_F(VbrIfMoMgrTest, TxUpdateController_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2029,218 +2001,194 @@ TEST(AuditUpdateController, 01 ) {
   GetKeyValStruct(key, val);
   uint32_t session_id=1;
   uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  const char *ctrlr_id="Controller1";
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
-  memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
-  memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
+  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  set<std::string> affected_ctrlr_set;
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  bool ctrlr_affected=true;
-  DalCursor *cursor = new DalCursor();
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_DELETED_RECORDS,kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
+
+  delete ikey;
+}
+
+TEST_F(VbrIfMoMgrTest, AuditUpdateController_01) {
+  VbrIfMoMgr vbr;
+  uint32_t session_id=1;
+  uint32_t config_id=2;
+  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  const char *ctrlr_id="Controller1";
+
+  DalDmlIntf *dmi(getDalDmlIntf());
+  bool ctrlr_affected=true;
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_UPDATED_RECORDS,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
-  DalOdbcMgr::clearStubData();
 }
-TEST(AuditUpdateController, 02 ) {
 
+TEST_F(VbrIfMoMgrTest, AuditUpdateController_02) {
   VbrIfMoMgr vbr;
-  key_vbr_if *key;
-  val_vbr_if *val;
-
-  GetKeyValStruct(key, val);
   uint32_t session_id=1;
   uint32_t config_id=2;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
   const char *ctrlr_id="Controller1";
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
-  memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
-  memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  GetKeyValStruct(key, val);
+  std::map<uint8_t,DalResultCode> map;
+  map.insert(std::make_pair(1,kDalRcGeneralError));
+  map.insert(std::make_pair(0,kDalRcSuccess));
+  DalOdbcMgr::stub_setNextRecordResultCodes(map);
+
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool ctrlr_affected=true;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_CREATED_RECORDS,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
-  DalOdbcMgr::clearStubData();
-}
-
-TEST(AuditUpdateController, 03 ) {
-
-          VbrIfMoMgr vbr;
-          key_vbr_if *key;
-          val_vbr_if *val;
-
-          GetKeyValStruct(key, val);
-          uint32_t session_id=1;
-          uint32_t config_id=2;
-          uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-          const char *ctrlr_id="Controller1";
-          uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-          memset(ctr_id1, '\0', 32);
-          memcpy(ctr_id1, "Controller1", 11);
-          uint8_t *dom_id1 = (uint8_t *)malloc(32);
-          memset(dom_id1, '\0', 32);
-          memcpy(dom_id1, "Domain1", 7);
-          controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-          ctrlr_dom->ctrlr = ctr_id1;
-          ctrlr_dom->domain = dom_id1;
-
-          DalDmlIntf *dmi= new DalOdbcMgr();
-          GetKeyValStruct(key, val);
-          bool ctrlr_affected=true;
-          EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
- }
-
- TEST(AuditUpdateController, 04 ) {
-     VbrIfMoMgr vbr;
-     key_vbr_if *key;
-     val_vbr_if *val;
-     GetKeyValStruct(key, val);
-     uint32_t session_id=1;
-     uint32_t config_id=2;
-     uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-     const char *ctrlr_id="Controller1";
-     uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-     memset(ctr_id1, '\0', 32);
-     memcpy(ctr_id1, "Controller1", 11);
-     uint8_t *dom_id1 = (uint8_t *)malloc(32);
-     memset(dom_id1, '\0', 32);
-     memcpy(dom_id1, "Domain1", 7);
-     controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-     ctrlr_dom->ctrlr = ctr_id1;
-     ctrlr_dom->domain = dom_id1;
-
-     DalDmlIntf *dmi= new DalOdbcMgr();
-     bool ctrlr_affected=true;
-     EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
-}
-
-
-     TEST(AuditUpdateController, 05 ) {
-         VbrIfMoMgr vbr;
-         key_vbr_if *key;
-         val_vbr_if *val;
-         GetKeyValStruct(key, val);
-         uint32_t session_id=1;
-         uint32_t config_id=2;
-         uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
-         const char *ctrlr_id="Controller1";
-         uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-         memset(ctr_id1, '\0', 32);
-         memcpy(ctr_id1, "Controller1", 11);
-         uint8_t *dom_id1 = (uint8_t *)malloc(32);
-         memset(dom_id1, '\0', 32);
-         memcpy(dom_id1, "Domain1", 7);
-         controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-         ctrlr_dom->ctrlr = ctr_id1;
-         ctrlr_dom->domain = dom_id1;
-
-         DalDmlIntf *dmi= new DalOdbcMgr();
-         GetKeyValStruct(key, val);
-         bool ctrlr_affected=true;
-         EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
-    }
-
- TEST(AuditUpdateController, 06 ) {
-   VbrIfMoMgr vbr;
-   key_vbr_if *key;
-   val_vbr_if *val;
-   GetKeyValStruct(key, val);
-   uint32_t session_id=1;
-   uint32_t config_id=2;
-   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
-   const char *ctrlr_id="Controller1";
-   uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-   memset(ctr_id1, '\0', 32);
-   memcpy(ctr_id1, "Controller1", 11);
-   uint8_t *dom_id1 = (uint8_t *)malloc(32);
-   memset(dom_id1, '\0', 32);
-   memcpy(dom_id1, "Domain1", 7);
-   controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-   ctrlr_dom->ctrlr = ctr_id1;
-   ctrlr_dom->domain = dom_id1;
-
-   DalDmlIntf *dmi= new DalOdbcMgr();
-   GetKeyValStruct(key, val);
-   bool ctrlr_affected=true;
-   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
-  }
+}
 
+TEST_F(VbrIfMoMgrTest, AuditUpdateController_03) {
+  VbrIfMoMgr vbr;
+  uint32_t session_id=1;
+  uint32_t config_id=2;
+  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  const char *ctrlr_id="Controller1";
+
+  DalDmlIntf *dmi(getDalDmlIntf());
+  bool ctrlr_affected=true;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+}
 
+TEST_F(VbrIfMoMgrTest, AuditUpdateController_04) {
+  VbrIfMoMgr vbr;
+  uint32_t session_id=1;
+  uint32_t config_id=2;
+  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  const char *ctrlr_id="Controller1";
 
-TEST(vbr_if_test,UpdatePortMap_01){
+  DalDmlIntf *dmi(getDalDmlIntf());
+  bool ctrlr_affected=true;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+}
+
+TEST_F(VbrIfMoMgrTest, AuditUpdateController_05) {
+  VbrIfMoMgr vbr;
+  uint32_t session_id=1;
+  uint32_t config_id=2;
+  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
+  const char *ctrlr_id="Controller1";
+
+  DalDmlIntf *dmi(getDalDmlIntf());
+  bool ctrlr_affected=true;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+}
+
+TEST_F(VbrIfMoMgrTest, AuditUpdateController_06) {
+  VbrIfMoMgr vbr;
+  uint32_t session_id=1;
+  uint32_t config_id=2;
+  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
+  const char *ctrlr_id="Controller1";
+
+  DalDmlIntf *dmi(getDalDmlIntf());
+  bool ctrlr_affected=true;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+}
+
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_01){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval );
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, cfgval));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+
+  delete ikey;
+  delete okey;
 }
-TEST(vbr_if_test,UpdatePortMap_02){
+
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_02){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval );
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, cfgval));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+
+  delete ikey;
+  delete okey;
 }
-TEST(vbr_if_test,UpdatePortMap_03){
+
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_03){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval );
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, cfgval));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+
+  delete ikey;
+  delete okey;
 }
-TEST(vbr_if_test,UpdatePortMap_04){
+
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_04){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval );
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, cfgval));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+
+  delete ikey;
+  delete okey;
 }
-TEST (GetRenameKeyBindInfo, PMainTbl)
+
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_PMainTbl)
 {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
@@ -2251,7 +2199,7 @@ TEST (GetRenameKeyBindInfo, PMainTbl)
   EXPECT_EQ(PFC_TRUE, obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST (GetRenameKeyBindInfo, FRenameTBL)
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRenameTBL)
 {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
@@ -2261,7 +2209,7 @@ TEST (GetRenameKeyBindInfo, FRenameTBL)
   EXPECT_EQ(PFC_FALSE, obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST (GetRenameKeyBindInfo, FRename)
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRename)
 {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
@@ -2271,7 +2219,7 @@ TEST (GetRenameKeyBindInfo, FRename)
   EXPECT_EQ(PFC_FALSE, obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST (GetRenameKeyBindInfo, FNoTBL)
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FNoTBL)
 {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
@@ -2281,7 +2229,7 @@ TEST (GetRenameKeyBindInfo, FNoTBL)
   EXPECT_EQ(PFC_FALSE, obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST(vbr_if_test,GetVbrIfValfromDBTrue){
+TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBTrue){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2289,28 +2237,33 @@ TEST(vbr_if_test,GetVbrIfValfromDBTrue){
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
 
-  ConfigKeyVal *ck_drv_vbr_if = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ck_drv_vbr_if(NULL);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE ; 
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetVbrIfValfromDB(ikey,ck_drv_vbr_if,dt_type,dmi));
-  DalOdbcMgr::clearStubData();
+  ASSERT_TRUE(ck_drv_vbr_if != NULL);
+
+  delete ck_drv_vbr_if;
+  delete ikey;
 }
 
-TEST(vbr_if_test,GetVbrIfValfromDBFalse){
+TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBFalse){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key,val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  ConfigKeyVal *ck_drv_vbr_if = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbr,key,NULL );
+  ConfigKeyVal *ck_drv_vbr_if(NULL);
   upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetVbrIfValfromDB(ikey,ck_drv_vbr_if,dt_type,dmi));
+
+  delete ikey;
 }
 
-TEST(vbr_if_test,GetVbrIfValfromDBParentKeyNull){
+TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBParentKeyNull){
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2318,33 +2271,33 @@ TEST(vbr_if_test,GetVbrIfValfromDBParentKeyNull){
   GetKeyValStruct(key,val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key, cfgval);
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ck_drv_vbr_if = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval1);
+  ConfigKeyVal *ck_drv_vbr_if(NULL);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE ;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetVbrIfValfromDB(ck_drv_vbr_if,ikey,dt_type,dmi));
+
   delete ikey;
 }
-TEST(vbr_if_test, UpdateVbrIf_1) {
+
+TEST_F(VbrIfMoMgrTest, UpdateVbrIf_1) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key,val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  DalDmlIntf * dmi= new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.updateVbrIf(req,ikey,dmi));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
 
-TEST(vbr_if_test, UpdateVbrIf_2) {
+TEST_F(VbrIfMoMgrTest, UpdateVbrIf_2) {
   VbrIfMoMgr obj;
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                        (sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->operation = UNC_OP_UPDATE;
   req->rep_count = 1;
   req->option1 = UNC_OPT1_NORMAL;
@@ -2353,15 +2306,15 @@ TEST(vbr_if_test, UpdateVbrIf_2) {
   GetKeyValStruct(key,val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.updateVbrIf(req,ikey,dmi));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
-TEST(vbr_if_test, UpdateVbrIf_3) {
+
+TEST_F(VbrIfMoMgrTest, UpdateVbrIf_3) {
   VbrIfMoMgr obj;
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                        (sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->operation = UNC_OP_UPDATE;
   req->rep_count = 1;
   req->option1 = UNC_OPT1_NORMAL;
@@ -2370,121 +2323,144 @@ TEST(vbr_if_test, UpdateVbrIf_3) {
   GetKeyValStruct(key,val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.updateVbrIf(req,ikey,dmi));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
-TEST(vbr_if_test, UpdateVbrIf_4) {
+
+TEST_F(VbrIfMoMgrTest, UpdateVbrIf_4) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key,val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
-  DalDmlIntf * dmi= new DalOdbcMgr();
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.updateVbrIf(req,ikey,dmi));
-  DalOdbcMgr::clearStubData();
+
+  delete ikey;
 }
-TEST(GetChildConfigKey, PkeyVlinkSuccess) {
-  VbrIfMoMgr vbr;
-  key_vbr_if_t *key = reinterpret_cast<key_vbr_if_t*>
-                     (malloc(sizeof(key_vbr_if_t)));
-  val_vbr_if *val = reinterpret_cast<val_vbr_if *>
-                     (malloc(sizeof(val_vbr_if)));
-  memset(key, 0 ,sizeof(key_vbr_if_t));
 
+TEST_F(VbrIfMoMgrTest, GetChildConfigKey_PkeyVlinkSuccess) {
+  VbrIfMoMgr vbr;
+  key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
+  val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
   strncpy((char*) key->if_name,"IF_1",32);
   strncpy((char*) key->vbr_key.vbridge_name,"VLINK1",32);
   strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VLINK,
                        IpctSt::kIpcStKeyVbrIf,
                        key,cfgval);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+
   delete okey;
+  delete pkey;
 }
-TEST(GetChildConfigKey, PkeyVtnSuccess) {
+
+TEST_F(VbrIfMoMgrTest, GetChildConfigKey_PkeyVtnSuccess) {
   VbrIfMoMgr vbr;
-  key_vbr_if_t *key = reinterpret_cast<key_vbr_if_t*>
-                     (malloc(sizeof(key_vbr_if_t)));
-  val_vbr_if *val = reinterpret_cast<val_vbr_if *>
-                     (malloc(sizeof(val_vbr_if)));
-  memset(key, 0 ,sizeof(key_vbr_if_t));
+  key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
+  val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
 
   strncpy((char*) key->if_name,"IF_1",32);
   strncpy((char*) key->vbr_key.vbridge_name,"VLINK1",32);
   strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
                        IpctSt::kIpcStKeyVbrIf,
                        key,cfgval);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+
   delete okey;
+  delete pkey;
 }
-TEST(GetChildConfigKey, PkeyVbridgeSuccess) {
-  VbrIfMoMgr vbr;
-  key_vbr_if_t *key = reinterpret_cast<key_vbr_if_t*>
-                     (malloc(sizeof(key_vbr_if_t)));
-  val_vbr_if *val = reinterpret_cast<val_vbr_if *>
-                     (malloc(sizeof(val_vbr_if)));
-  memset(key, 0 ,sizeof(key_vbr_if_t));
 
+TEST_F(VbrIfMoMgrTest, GetChildConfigKey_PkeyVbridgeSuccess) {
+  VbrIfMoMgr vbr;
+  key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
+  val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
   strncpy((char*) key->if_name,"IF_1",32);
   strncpy((char*) key->vbr_key.vbridge_name,"VLINK1",32);
   strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                        IpctSt::kIpcStKeyVbrIf,
                        key,cfgval);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+
   delete okey;
+  delete pkey;
 }
-TEST(GetParentConfigKey, GetParentConfigKey_02) {
+
+TEST_F(VbrIfMoMgrTest, GetParentConfigKey_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-
   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetParentConfigKey(okey, ikey));
+
+  delete okey;
+  delete ikey;
 }
-TEST(GetParentConfigKey, GetParentConfigKey_03) {
+
+TEST_F(VbrIfMoMgrTest, GetParentConfigKey_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-
   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetParentConfigKey(okey, ikey));
+
   delete okey;
+  delete ikey;
 }
-TEST(GetParentConfigKey, GetParentConfigKey_01) {
-  VbrIfMoMgr vbr;
-  key_vbr_if *key;
-  val_vbr_if *val;
-
-  GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
 
+TEST_F(VbrIfMoMgrTest, GetParentConfigKey_01) {
+  VbrIfMoMgr vbr;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetParentConfigKey(okey, ikey));
 }
-TEST(GetParentConfigKey, GetParentConfigKey_09) {
+
+TEST_F(VbrIfMoMgrTest, GetParentConfigKey_09) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2495,34 +2471,38 @@ TEST(GetParentConfigKey, GetParentConfigKey_09) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetParentConfigKey(okey, ikey));
+
+  delete okey;
+  delete ikey;
 }
+
 TEST_F(VbrIfMoMgrTest, AllocVal_Error) {
   VbrIfMoMgr obj;
-  key_vbr_if *key;
-  val_vbr_if *val;
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.AllocVal(cfgval, UPLL_DT_CANDIDATE,RENAMETBL));
+
+  delete cfgval;
 }
-TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_01) {
 
+TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_01) {
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ConverttoDriverPortMap(ikey));
+
+  delete ikey;
 }
-TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_02) {
 
+TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_02) {
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  GetKeyValDrvStruct(key, val);
   const char *if_name = "IF_1";
 
   strncpy(reinterpret_cast<char *>(key->if_name),
@@ -2532,11 +2512,13 @@ TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_02) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ConverttoDriverPortMap(ikey));
+
+  delete ikey;
 }
-TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_Success) {
 
+TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_Success) {
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
@@ -2544,96 +2526,118 @@ TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_Success) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                         key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
   delete ikey;
+  delete upd_key;
 }
-TEST_F(VbrIfMoMgrTest,UpdateConfigStatus_SuccessUPDATE) {
 
+TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_SuccessUPDATE) {
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                         key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
   delete ikey;
+  delete upd_key;
 }
-TEST_F(VbrIfMoMgrTest,UpdateConfigStatus_SuccessUPDATE_01) {
 
+TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_SuccessUPDATE_01) {
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                         key1, cfgval1));
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,ikey));
+
   delete ikey;
+  delete upd_key;
 }
 
-TEST_F(VbrIfMoMgrTest,UpdateConfigStatus_SuccessUPDATE_02) {
-
+TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_SuccessUPDATE_02) {
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                         key1, cfgval1));
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
+
   delete ikey;
+  delete upd_key;
 }
 
 TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_InvalidOP) {
-
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
+  val_drv_vbr_if *val;
+  GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
+
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                         key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_READ,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                       UPLL_RC_SUCCESS,
+                                                       upd_key, dmi, ikey));
+
   delete ikey;
+  delete upd_key;
 }
+
 TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_ValidCsStatus) {
   VbrIfMoMgr vbrmomgr;
   key_vbr_if *key;
@@ -2659,6 +2663,7 @@ TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_UpdatePhase) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
   delete ckv_running;
 }
+
 TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_InvalidCsStatus) {
   VbrIfMoMgr vbrmomgr;
   key_vbr_if *key;
@@ -2680,18 +2685,17 @@ TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_EmptyVal) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
   delete ckv_running;
 }
-TEST(VbrIfMoMgr, UpdateAuditConfigStatus1) {
+
+TEST_F(VbrIfMoMgrTest, VbrIfMoMgr_UpdateAuditConfigStatus1) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *ikey =NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.UpdateAuditConfigStatus(UNC_CS_APPLIED,uuc::kUpllUcpCreate, ikey));
   delete ikey;
 }
-TEST(VbrIfMoMgr, UpdateAuditConfigStatus2) {
-  VbrIfMoMgr vbr;
-  val_vbr_if_t *val = reinterpret_cast<val_vbr_if_t *>
-                   (malloc(sizeof(val_vbr_if_t)));
-  memset(val, 0, sizeof(val_vbr_if_t));
 
+TEST_F(VbrIfMoMgrTest, VbrIfMoMgr_UpdateAuditConfigStatus2) {
+  VbrIfMoMgr vbr;
+  val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbrIf,
                                  val);
 
@@ -2700,8 +2704,8 @@ TEST(VbrIfMoMgr, UpdateAuditConfigStatus2) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,uuc::kUpllUcpCreate, ikey));
   delete ikey;
 }
-TEST(ValidateMessage, UNC_KT_VBRIDGE) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_UNC_KT_VBRIDGE) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2712,10 +2716,7 @@ TEST(ValidateMessage, UNC_KT_VBRIDGE) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -2724,26 +2725,18 @@ TEST(ValidateMessage, UNC_KT_VBRIDGE) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey));
-  free(req);
+
+  delete ikey;
 }
-TEST(ValidateMessage, req_NULL) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_req_NULL) {
   VbrIfMoMgr vbr;
-  key_vbr_if *key;
-  val_vbr_if *val;
-  GetKeyValStruct(key, val);
-
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = NULL;
-
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateMessage(req, ikey));
-  free(req);
 }
-TEST(ValidateMessage, kIpcStValVtnNeighbor) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStValVtnNeighbor) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2754,10 +2747,7 @@ TEST(ValidateMessage, kIpcStValVtnNeighbor) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -2766,9 +2756,11 @@ TEST(ValidateMessage, kIpcStValVtnNeighbor) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
-TEST(ValidateMessage, kIpcStPfcdrvValVbrIf) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStPfcdrvValVbrIf) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2779,10 +2771,7 @@ TEST(ValidateMessage, kIpcStPfcdrvValVbrIf) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -2791,9 +2780,11 @@ TEST(ValidateMessage, kIpcStPfcdrvValVbrIf) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
-TEST(ValidateMessage, kIpcStKeyVbr) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStKeyVbr) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2804,10 +2795,7 @@ TEST(ValidateMessage, kIpcStKeyVbr) {
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -2816,10 +2804,11 @@ TEST(ValidateMessage, kIpcStKeyVbr) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey));
-}
 
-TEST(ValidateMessage, ValidateMessage_01) {
+  delete ikey;
+}
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2830,10 +2819,7 @@ TEST(ValidateMessage, ValidateMessage_01) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -2843,44 +2829,42 @@ TEST(ValidateMessage, ValidateMessage_01) {
   req->datatype = UPLL_DT_CANDIDATE;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
-
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval1 = NULL;
+  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval2);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
+                            key1, cfgval1);
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
 
 
   const char *if_name = " ";
-  key_vbr_if *key5;
-  val_vbr_if *val5;
-  key5 = reinterpret_cast<key_vbr_if *>(malloc
-                 (sizeof(key_vbr_if)));
-  memset(key5,0,sizeof(key_vbr_if));
-  strncpy(reinterpret_cast<char *>(key5->if_name),
-  if_name, strlen(if_name)+1);
-  val5 = reinterpret_cast<val_vbr_if *>(malloc
-  (sizeof(val_vbr_if)));
-  memset(val5,0,sizeof(val_vbr_if));
-  ConfigVal *cfgval5 = new ConfigVal(IpctSt::kIpcStValVbrIf, val5);
-  ConfigKeyVal *ikey5 = new ConfigKeyVal(UNC_KT_VBR_IF,
+  key_vbr_if *key2(ZALLOC_TYPE(key_vbr_if));
+  val_vbr_if *val2(ZALLOC_TYPE(val_vbr_if));
+  strncpy(reinterpret_cast<char *>(key2->if_name),
+          if_name, strlen(if_name)+1);
+  ConfigVal *cfgval2 = new ConfigVal(IpctSt::kIpcStValVbrIf, val2);
+  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
-                            key5, cfgval5);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateMessage(req, ikey5));
+                            key2, cfgval2);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateMessage(req, ikey2));
 
-  ikey=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateMessage(req, ikey));
+  ConfigKeyVal *nullkey(NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateMessage(req, nullkey));
 
+  key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val3(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key3, cfgval3));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey3));
 
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey));
   delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
 }
 
-TEST(ValidateMessage, ValidateMessage_02) {
-
+TEST_F(VbrIfMoMgrTest, ValidateMessage_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2891,10 +2875,7 @@ TEST(ValidateMessage, ValidateMessage_02) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_UPDATE;
@@ -2902,37 +2883,45 @@ TEST(ValidateMessage, ValidateMessage_02) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+
   req->operation = UNC_OP_CONTROL;
-  ConfigKeyVal *ikey4 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, vbr.ValidateMessage(req, ikey));
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+            vbr.ValidateMessage(req, ikey1));
 
   req->operation = UNC_OP_UPDATE;
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey1));
-
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval2);
+  key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val2(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVbr, val2));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key2, cfgval2));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey2));
 
-  val = NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval3);
+  key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval3(NULL);
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey3));
+
+  key_vbr_if *key4(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key4, cfgval4));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey4));
+
   delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
+  delete ikey4;
 }
-TEST(ValidateMessage, ValidateMessage_03) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2943,10 +2932,7 @@ TEST(ValidateMessage, ValidateMessage_03) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -2963,27 +2949,33 @@ TEST(ValidateMessage, ValidateMessage_03) {
   req->option2 = UNC_OPT2_NONE;
   req->option1 = UNC_OPT1_NORMAL;
 
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval2(NULL);
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key2, cfgval2));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
 
-  val_vbr_if *val1=NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVbrIf, val1);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval3);
+  key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val3(NULL);
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
+
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
 }
-TEST(ValidateMessage, ValidateMessage_04) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -2994,10 +2986,7 @@ TEST(ValidateMessage, ValidateMessage_04) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -3014,28 +3003,33 @@ TEST(ValidateMessage, ValidateMessage_04) {
   req->option2 = UNC_OPT2_NONE;
   req->option1 = UNC_OPT1_NORMAL;
 
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval2(NULL);
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key2, cfgval2));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
 
-  val_vbr_if *val1=NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVbrIf, val1);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval3);
+  key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val3(NULL);
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
-}
 
-TEST(ValidateMessage, ValidateMessage_06) {
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
+}
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_06) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -3046,10 +3040,7 @@ TEST(ValidateMessage, ValidateMessage_06) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -3066,32 +3057,45 @@ TEST(ValidateMessage, ValidateMessage_06) {
   req->option2 = UNC_OPT2_NONE;
   req->option1 = UNC_OPT1_NORMAL;
 
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval2(NULL);
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key2, cfgval2));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
 
-  val_vbr_if *val1=NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVbrIf, val1);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval3);
+  key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val3(NULL);
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
+
   req->operation = UNC_OP_DELETE;
-  ConfigVal *cfgval4 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey4 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval4);
+  key_vbr_if *key4(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val4(UT_CLONE(val_vbr_if, val));
+  pfc_strlcpy(reinterpret_cast<char *>(key4->if_name), "IF_1",
+              sizeof(key4->if_name));
+
+  ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVbrIf, val4));
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key4, cfgval4));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey4));
+
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
+  delete ikey4;
 }
-TEST(ValidateMessage, ValidateMessage_05) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_05) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
@@ -3102,10 +3106,7 @@ TEST(ValidateMessage, ValidateMessage_05) {
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -3122,44 +3123,41 @@ TEST(ValidateMessage, ValidateMessage_05) {
   req->option2 = UNC_OPT2_NONE;
   req->option1 = UNC_OPT1_NORMAL;
 
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
+  key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
+  ConfigVal *cfgval2(NULL);
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key2, cfgval2));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
 
-  val_vbr_if *val1=NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVbrIf, val1);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval3);
+  key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
+  val_vbr_if *val3(NULL);
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
   req->option2 = UNC_OPT2_L2DOMAIN;
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, vbr.ValidateMessage(req, ikey3));
 
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
 }
-TEST(ValidateMessage, ValidateMessage_07) {
 
+TEST_F(VbrIfMoMgrTest, ValidateMessage_07) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval);
-
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -3168,15 +3166,17 @@ TEST(ValidateMessage, ValidateMessage_07) {
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_DELETE;
 
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
-                            IpctSt::kIpcStKeyVbrIf,
-                            key, cfgval1);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, cfgval));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
-TEST(GetVbrIfFromVexternal,TmpckvNonNull){
+
+TEST_F(VbrIfMoMgrTest, GetVbrIfFromVexternal_TmpckvNonNull){
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
   val_vbr_if *val;
   uint8_t vtnname=1;
@@ -3184,31 +3184,29 @@ TEST(GetVbrIfFromVexternal,TmpckvNonNull){
   uint8_t *vexternal=&vexternal1;
   uint8_t *vtn1=&vtnname;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
-  IpctSt::kIpcStKeyVbrIf,key,cfgval);
+
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key ,cfgval));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.GetVbrIfFromVExternal(vtn1,vexternal,ikey,dmi));
 
-delete ikey;
+  delete ikey;
 }
 
-TEST(GetVbrIfFromVexternal,TmpckvNull){
+TEST_F(VbrIfMoMgrTest, GetVbrIfFromVexternal_TmpckvNull){
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
-  key_vbr_if *key;
-  val_vbr_if *val;
-  uint8_t vtnname=1;
-  uint8_t vexternal1=1;
-  uint8_t *vexternal=&vexternal1;
-  uint8_t *vtn1=&vtnname;
-  GetKeyValStruct(key, val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t vtnname[2] = {1, 0};
+  uint8_t vexternal[2] = {1, 0};
   ConfigKeyVal *ikey =NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.GetVbrIfFromVExternal(vtn1,vexternal,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            obj.GetVbrIfFromVExternal(vtnname, vexternal, ikey, dmi));
 }
-TEST(PortStatusHandler,TrueOperStatus){
+
+TEST_F(VbrIfMoMgrTest, PortStatusHandler_TrueOperStatus){
   VbrIfMoMgr obj;
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   const char *ctrlr_name="PFC_1";
   const char * domain_name="DOMAIN_1";
   const char *port_id="VLAN";
@@ -3217,12 +3215,10 @@ TEST(PortStatusHandler,TrueOperStatus){
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.PortStatusHandler(ctrlr_name,domain_name,port_id,oper_status,dmi));
 }
 
-TEST(PortStatusHandler,FalseOperStatus){
+TEST_F(VbrIfMoMgrTest, PortStatusHandler_FalseOperStatus){
   VbrIfMoMgr obj;
-  val_vbr_if * val;
-  DalDmlIntf * dmi= new DalOdbcMgr();
-  key_vbr_if * key;
-  GetKeyValStruct(key,val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
   const char *ctrlr_name="PFC_1";
   const char * domain_name="DOMAIN_1";
   const char *port_id="VLAN";
@@ -3234,14 +3230,12 @@ TEST(PortStatusHandler,FalseOperStatus){
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.PortStatusHandler(ctrlr_name,domain_name,port_id,oper_status,dmi));
-  DalOdbcMgr::clearStubData();
 }
-TEST(PortStatusHandler,FalseOperStatus_02){
+
+TEST_F(VbrIfMoMgrTest, PortStatusHandler_FalseOperStatus_02){
   VbrIfMoMgr obj;
-  val_vbr_if * val;
-  DalDmlIntf * dmi= new DalOdbcMgr();
-  key_vbr_if * key;
-  GetKeyValStruct(key,val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
   const char *ctrlr_name="PFC_1";
   const char * domain_name="DOMAIN_1";
   const char *port_id="VLAN";
@@ -3249,66 +3243,77 @@ TEST(PortStatusHandler,FalseOperStatus_02){
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.PortStatusHandler(ctrlr_name,domain_name,port_id,oper_status,dmi));
-  DalOdbcMgr::clearStubData();
 }
-TEST(UpdateConfigVal, UpdateConfigVal_07) {
+
+TEST_F(VbrIfMoMgrTest, UpdateConfigVal_UpdateConfigVal_07) {
   VbrIfMoMgr vbr;
   upll_keytype_datatype_t datatype=UPLL_DT_CANDIDATE;
   key_vbr_if *key;
-  val_vbr_if *val;
+  val_drv_vbr_if *val;
 
-  DalDmlIntf * dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
 
-  GetKeyValStruct(key, val);
+  GetKeyValDrvStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.UpdateConfigVal(ikey,datatype,dmi));
+
+  delete ikey;
 }
-TEST(vbrif_momgr_test,CompareValidValue_auditTrue) {
+
+TEST_F(VbrIfMoMgrTest, CompareValidValue_auditTrue) {
   VbrIfMoMgr obj;
-  val_vbr_if *val1 =
-  reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if)));
-  val_vbr_if *val2 =
-  reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if)));
-
-  for ( unsigned int loop = 0; loop < sizeof(val1->valid);
-  ++loop ) {
-  val1->valid[loop] = UNC_VF_INVALID;
-  val2->valid[loop] = UNC_VF_VALID;
+  val_drv_vbr_if *val1(ZALLOC_TYPE(val_drv_vbr_if));
+  val_drv_vbr_if *val2(ZALLOC_TYPE(val_drv_vbr_if));
+  void *v1(val1);
+  void *v2(val2);
+
+  for (unsigned int loop = 0; loop < sizeof(val1->valid); ++loop) {
+    val1->valid[loop] = UNC_VF_INVALID;
+    val2->valid[loop] = UNC_VF_VALID;
   }
-  obj.CompareValidValue((void*&)val1, (void*)val2, true);
-  for ( unsigned int loop = 0; loop < sizeof(val1->valid);
-  ++loop ) {
-  EXPECT_EQ(UNC_VF_VALID_NO_VALUE, val1->valid[loop]);
-}
-free(val1); free(val2);
+  ASSERT_FALSE(obj.CompareValidValue(v1, v2, true));
+
+  ASSERT_EQ(UNC_VF_INVALID, val1->valid[0]);
+  for (unsigned int loop = 1; loop < sizeof(val1->valid); ++loop) {
+    EXPECT_EQ(UNC_VF_VALID_NO_VALUE, val1->valid[loop]);
+  }
+  free(val1);
+  free(val2);
 }
-TEST(vbrif_momgr_test,CompareValidValue_auditfalse) {
+
+TEST_F(VbrIfMoMgrTest, CompareValidValue_auditfalse) {
   VbrIfMoMgr obj;
-  val_vbr_if *val1 =
-  reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if)));
-  val_vbr_if *val2 =
-  reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if)));
+  val_drv_vbr_if *val1(ZALLOC_TYPE(val_drv_vbr_if));
+  val_drv_vbr_if *val2(ZALLOC_TYPE(val_drv_vbr_if));
+  void *v1(val1);
+  void *v2(val2);
+
   val1->valid[1] = UNC_VF_VALID;
   val2->valid[1] = UNC_VF_VALID;
-  val1->admin_status = 1;
-  val2->admin_status = 1;
-  obj.CompareValidValue((void*&)val1, (void*)val2, false);
+  val1->vbr_if_val.admin_status = 1;
+  val2->vbr_if_val.admin_status = 1;
+  ASSERT_TRUE(obj.CompareValidValue(v1, v2, false));
+
+  free(val1);
+  free(val2);
 }
 
-TEST(vbrif_momgr_test,CompareValidValue_Invalid_case1) {
+TEST_F(VbrIfMoMgrTest, CompareValidValue_Invalid_case1) {
   VbrIfMoMgr obj;
-  val_vbr_if *val1 =
-  reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if)));
-  memset(val1,0 ,sizeof(val_vbr_if));
-  val_vbr_if *val2 =
-  reinterpret_cast<val_vbr_if *>(malloc(sizeof(val_vbr_if)));
-  memset(val2,0 ,sizeof(val_vbr_if));
-  for (unsigned int loop = 0;loop < sizeof(val1->valid) / sizeof(uint8_t); ++loop) {
+  val_drv_vbr_if *val1(ZALLOC_TYPE(val_drv_vbr_if));
+  val_drv_vbr_if *val2(ZALLOC_TYPE(val_drv_vbr_if));
+  void *v1(val1);
+  void *v2(val2);
+
+  for (unsigned int loop = 0;loop < sizeof(val1->valid) / sizeof(uint8_t);
+       ++loop) {
     val1->valid[loop] = UNC_VF_VALID;
     val2->valid[loop] = UNC_VF_VALID;
   }
-  obj.CompareValidValue((void*&)val1, (void*)val2, false);
-}
+  ASSERT_TRUE(obj.CompareValidValue(v1, v2, false));
+
+  free(val1);
+  free(val2);
 }
index 700dd3ae7da5af6ae87dd23a0e5fd5535bfe1491..9f54f3dca934ff9d12cfb769fb8b7bb98c14ebab 100644 (file)
 #include <gtest/gtest.h>
 #include <pfc/ipc.h>
 #include <pfc/ipc_struct.h>
+#include <pfc/util.h>
 #include <unc/keytype.h>
 #include <pfcxx/synch.hh>
-#include "vbr_momgr.hh"
-#include "unc/keytype.h"
-#include "config_mgr.hh"
-#include "dal_odbc_mgr.hh"
-#include "dal_dml_intf.hh"
-#include "capa_intf.hh"
-#include "capa_module_stub.hh"
-#include "tclib_module.hh"
-#include "ctrlr_mgr.hh"
-#include "momgr_intf_stub.hh"
-#include "alarm.hh"
+#include <vbr_momgr.hh>
+#include <unc/keytype.h>
+#include <config_mgr.hh>
+#include <dal_odbc_mgr.hh>
+#include <dal_dml_intf.hh>
+#include <capa_intf.hh>
+#include <capa_module_stub.hh>
+#include <tclib_module.hh>
+#include <ctrlr_mgr.hh>
+#include <momgr_intf_stub.hh>
+#include <alarm.hh>
+#include "ut_util.hh"
 
 using ::testing::TestWithParam;
 using ::testing::Values;
@@ -34,325 +36,330 @@ using namespace unc::tclib;
 using namespace unc::upll::dal;
 using namespace unc::upll::kt_momgr;
 using namespace unc::upll::config_momgr;
+using namespace unc::upll::test;
 using namespace unc::capa;
 using namespace pfc::core;
 using namespace unc::upll::dal::schema::table;
 
-namespace {
-
-class VbrMoMgrTest: public VbrMoMgr, public ::testing::Test {
- public:
- protected:
-  virtual void SetUp() {}
-
-  virtual void TearDown() {}
-
+class VbrMoMgrTest
+  : public UpllTestEnv
+{
 };
 
+static void GetKeyStruct(key_vbr *&kst) {
+  const char *vtn_name = "VTN_1";
+  const char *vbr_name = "VBR_1";
 
-uint32_t parseIPV4string(const char* ipAddress) {
-  char ipbytes[4];
-  sscanf(ipAddress, "%d.%d.%d.%d", &ipbytes[3], &ipbytes[2], &ipbytes[1], &ipbytes[0]);
-  return ipbytes[0] & ipbytes[1] << 8 & ipbytes[2] << 16 & ipbytes[3] << 24;
+  kst = ZALLOC_TYPE(key_vbr);
+  strncpy(reinterpret_cast<char *>(kst->vtn_key.vtn_name),
+          vtn_name, strlen(vtn_name)+1);
+  strncpy(reinterpret_cast<char *>(kst->vbridge_name),
+          vbr_name, strlen(vbr_name)+1);
 }
 
-void GetKeyValStruct(key_vbr *&kst, val_vbr *&vst) {
-
-  const char *vtn_name = "VTN_1";
-  const char *vbr_name = "VBR_1";
+static void GetValStruct(val_vbr *&vst) {
   const char *desc = "thisisvbridge";
   const char *ctrlr_id = "Controller1";
-  kst = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(kst,0,sizeof(key_vbr));
-  strncpy(reinterpret_cast<char *>(kst->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(kst->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  vst = reinterpret_cast<val_vbr *>(malloc
-  (sizeof(val_vbr)));
-  memset(vst,0,sizeof(val_vbr));
-  memset(vst->controller_id,'\0',
-        (sizeof(vst->controller_id)/sizeof(vst->controller_id[0])));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
+
+  vst = ZALLOC_TYPE(val_vbr);
+  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->valid); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
+
   vst->cs_row_status = UNC_VF_VALID;
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
+
+  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->cs_attr); ++loop) {
     vst->cs_attr[loop] = UNC_CS_APPLIED;
   }
+
   strncpy(reinterpret_cast<char *>(vst->vbr_description), desc,
-  strlen(desc)+1);
+          strlen(desc)+1);
   strncpy(reinterpret_cast<char *>(vst->controller_id), ctrlr_id,
-  strlen(ctrlr_id)+1);
+          strlen(ctrlr_id)+1);
+
   vst->host_addr_prefixlen = (uint8_t)1;
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
 
   vst->host_addr.s_addr = sa.sin_addr.s_addr;
-
 }
 
-TEST_F(VbrMoMgrTest, ValidateVbrKeySuccess) {
+static void GetKeyValStruct(key_vbr *&kst, val_vbr *&vst)
+{
+  GetKeyStruct(kst);
+  GetValStruct(vst);
+}
 
+TEST_F(VbrMoMgrTest, ValidateVbrKey_Success) {
   VbrMoMgr vbrmomgr;
-  key_vbr *key;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   const char *vtn_name = "VTN_1";
   const char *vbr_name = "VBR_1";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.ValidateVbrKey(key));
-}
-
-
 
-TEST_F(VbrMoMgrTest, ValidateVbrKeyInvalidVtnName) {
+  free(key);
+}
 
+TEST_F(VbrMoMgrTest, ValidateVbrKey_InvalidVtnName) {
   VbrMoMgr vbrmomgr;
-  key_vbr *key;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   const char *vtn_name = "";
   const char *vbr_name = "VBR_1";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrKey(key));
-}
 
-TEST_F(VbrMoMgrTest, ValidateVbrKeyInvalidVbrName) {
+  free(key);
+}
 
+TEST_F(VbrMoMgrTest, ValidateVbrKey_InvalidVbrName) {
   VbrMoMgr vbrmomgr;
-  key_vbr *key;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   const char *vtn_name = "VTN_1";
   const char *vbr_name = "";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrKey(key));
-}
 
-TEST_F(VbrMoMgrTest, ValidateVbrKeyInvalidKeyStruct) {
+  free(key);
+}
 
+TEST_F(VbrMoMgrTest, ValidateVbrKey_InvalidKeyStruct) {
   VbrMoMgr vbrmomgr;
   key_vbr *key = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrKey(key));
-
 }
 
-TEST_F(VbrMoMgrTest, ValidateVbrValueInvalidCtrlrID) {
-
+TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidCtrlrID) {
   VbrMoMgr vbrmomgr;
   uint32_t oper = UNC_OP_CREATE;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
+  GetValStruct(val);
   string ctrlr_id = "Controller 1";
   strncpy(reinterpret_cast<char *>(val->controller_id), ctrlr_id.c_str(),
   strlen(ctrlr_id.c_str())+1);
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
 
+  free(val);
 }
 
-TEST_F(VbrMoMgrTest, ValidateVbrValueInvalidDesc) {
-
+TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidDesc) {
   VbrMoMgr vbrmomgr;
   uint32_t oper = UNC_OP_CREATE;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
+  GetValStruct(val);
   string desc = "vbr_description 1";
   strncpy(reinterpret_cast<char *>(val->vbr_description), desc.c_str(),
   strlen(desc.c_str())+1);
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
 
+  free(val);
 }
 
-TEST_F(VbrMoMgrTest, ValidateVbrValueDescValidAttrInvalid) {
-
+TEST_F(VbrMoMgrTest, ValidateVbrValue_DescValidAttrInvalid) {
   VbrMoMgr vbrmomgr;
   uint32_t oper = UNC_OP_UPDATE;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
+  GetValStruct(val);
   val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX , vbrmomgr.ValidateVbrValue(val, oper));
 
+  free(val);
 }
 
-TEST_F(VbrMoMgrTest, ValidateVbrValuePrefLenValidAttrInvalid) {
-
+TEST_F(VbrMoMgrTest, ValidateVbrValue_PrefLenValidAttrInvalid) {
   VbrMoMgr vbrmomgr;
   uint32_t oper = UNC_OP_UPDATE;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
+  GetValStruct(val);
   val->host_addr_prefixlen = 0;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
   val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
 
+  free(val);
 }
 
-TEST_F(VbrMoMgrTest, ValidateVbrValueInvalidIP) {
-
+TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidIP) {
   VbrMoMgr vbrmomgr;
   uint32_t oper = UNC_OP_CREATE;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
-  val->host_addr.s_addr = parseIPV4string("255.255.255.255");
+  GetValStruct(val);
+  val->host_addr.s_addr = 0xffffffffU;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
 
+  free(val);
 }
 
-TEST(ValidateVbrValue, invalidFlagNew) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_invalidFlagNew) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, invalidFlag1) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_invalidFlag1) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag2) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag2) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag3) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag3) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag4) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag4) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
-TEST(ValidateVbrValue, validFlag5) {
+
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag5) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
-TEST(ValidateVbrValue, validFlag6) {
+
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag6) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_PACKET_SIZE_PING] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
-TEST(ValidateVbrValue, validFlag7) {
+
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag7) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag8) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag8) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag9) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag9) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_INVALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag10) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag10) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
 
-TEST(ValidateVbrValue, validFlag11) {
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag11) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_VALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+
+  free(valvbr);
 }
-TEST(ValidateVbrValue, validFlag12) {
+
+TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag12) {
   VbrMoMgr vbr;
-  val_vbr_t *valvbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_VALID;
   strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
-}
-
 
+  free(valvbr);
+}
 
 TEST_F(VbrMoMgrTest, GetParentConfigKeySuccess) {
-
   VbrMoMgr vbrmomgr;
   key_vbr *key;
   val_vbr *val;
@@ -362,14 +369,13 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeySuccess) {
   ConfigKeyVal *ockv= NULL;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.GetParentConfigKey(ockv, ickv));
+
+  delete ockv;
+  delete ickv;
 }
 
 TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidArg) {
-
   VbrMoMgr vbrmomgr;
-  key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
   ConfigKeyVal *ickv = NULL;
   ConfigKeyVal *ockv = NULL;
 
@@ -377,7 +383,6 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidArg) {
 }
 
 TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidKT) {
-
   VbrMoMgr vbrmomgr;
   key_vbr *key;
   val_vbr *val;
@@ -387,22 +392,25 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidKT) {
   ConfigKeyVal *ockv = NULL;
   ConfigKeyVal *ickv = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,key, cfg_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.GetParentConfigKey(ockv, ickv));
+
+  delete ockv;
+  delete ickv;
 }
-TEST_F(VbrMoMgrTest, GetParentConfigKeyNullKey) {
 
+TEST_F(VbrMoMgrTest, GetParentConfigKeyNullKey) {
   VbrMoMgr vbrmomgr;
-  val_vbr *val=(val_vbr *)malloc(sizeof(val_vbr));;
   ConfigKeyVal *ickv = new ConfigKeyVal(UNC_KT_VBRIDGE);
   ConfigKeyVal *ockv = new ConfigKeyVal(UNC_KT_VBRIDGE);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.GetParentConfigKey(ockv, ickv));
-}
-
 
+  delete ickv;
+  delete ockv;
+}
 
 TEST_F(VbrMoMgrTest, AllocVal_outputNull) {
   VbrMoMgr obj;
-  val_vbr *val = new val_vbr_t();
+  val_vbr *val(ZALLOC_TYPE(val_vbr));
   ConfigVal* cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.AllocVal(cfgval, UPLL_DT_IMPORT,MAINTBL));
   delete cfgval;
@@ -431,11 +439,11 @@ TEST_F(VbrMoMgrTest, AllocVal_SuccessDT_STATE) {
 
 TEST_F(VbrMoMgrTest, AllocVal_Error) {
   VbrMoMgr obj;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
+  GetValStruct(val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.AllocVal(cfgval, UPLL_DT_STATE,RENAMETBL));
+  delete cfgval;
 }
 
 TEST_F(VbrMoMgrTest, AllocVal_ErrorDefaultCase) {
@@ -445,13 +453,14 @@ TEST_F(VbrMoMgrTest, AllocVal_ErrorDefaultCase) {
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_ReqNull) {
-
   VbrMoMgr obj;
   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
   ConfigKeyVal *req = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey, req, MAINTBL));
+
+  delete okey;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_OkeyNotNull) {
@@ -465,6 +474,9 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_OkeyNotNull) {
                             NULL, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey, req, MAINTBL));
+
+  delete okey;
+  delete req;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_ReqInvalidKT) {
@@ -481,14 +493,16 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_ReqInvalidKT) {
                             key, tmp);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+
+  delete okey;
+  delete req;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_Req_InValid) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
-  key_vbr *key;
   val_vbr *val;
-  GetKeyValStruct(key, val);
+  GetValStruct(val);
 
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
@@ -496,6 +510,8 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_Req_InValid) {
                             NULL, tmp);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+
+  delete req;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessMAINTBL) {
@@ -506,13 +522,18 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessMAINTBL) {
   GetKeyValStruct(key, val);
 
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigVal *tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
+
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, val1);
   tmp->AppendCfgVal(tmp1);
   ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,MAINTBL));
+
+  delete req;
+  delete okey;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessRENAMETBL) {
@@ -528,6 +549,9 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessRENAMETBL) {
                             key, tmp);
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,RENAMETBL));
+
+  delete req;
+  delete okey;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessRENAMETBLInvalidStNum) {
@@ -543,96 +567,99 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessRENAMETBLInvalidStNum) {
                             key, tmp);
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,RENAMETBL));
-}
 
+  delete req;
+  delete okey;
+}
 
-TEST_F(VbrMoMgrTest, DupConfigKeyValNullValStuct) {
+TEST_F(VbrMoMgrTest, DupConfigKeyVal_NullValStuct) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
-  key_vbr *key=(key_vbr*)malloc(sizeof(key_vbr));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   ConfigVal *tmp=NULL;
   ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,RENAMETBL));
+
+  delete req;
+  delete okey;
 }
 
-TEST_F(VbrMoMgrTest, DupConfigKeyValNullValStuctMainTbl) {
+TEST_F(VbrMoMgrTest, DupConfigKeyVal_NullValStuctMainTbl) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
-  key_vbr *key=(key_vbr*)malloc(sizeof(key_vbr));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   ConfigVal *tmp=NULL;
   ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
                                        IpctSt::kIpcStKeyVbr,
                                        key, tmp);
-   EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,MAINTBL));
-}
+  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,MAINTBL));
 
+  delete req;
+  delete okey;
+}
 
 TEST_F(VbrMoMgrTest, IsValidKey_SuccessVTNName) {
   VbrMoMgr obj;
   uint64_t index = uudst::vbridge::kDbiVtnName;
   key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
-  EXPECT_EQ(true, obj.IsValidKey(reinterpret_cast<void *>(key),
-                                 index));
+  GetKeyStruct(key);
+  EXPECT_EQ(true, obj.IsValidKey(reinterpret_cast<void *>(key), index));
+
+  free(key);
 }
 
 TEST_F(VbrMoMgrTest, IsValidKey_SuccessVBRName) {
   VbrMoMgr obj;
   uint64_t index = uudst::vbridge::kDbiVbrName;
   key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
-  EXPECT_EQ(true, obj.IsValidKey(reinterpret_cast<void *>(key),
-                                 index));
+  GetKeyStruct(key);
+  EXPECT_EQ(true, obj.IsValidKey(reinterpret_cast<void *>(key), index));
+
+  free(key);
 }
 
 TEST_F(VbrMoMgrTest, IsValidKey_InvalidIndex) {
   VbrMoMgr obj;
   uint64_t index = uudst::vbridge::kDbiCtrlrName;
   key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
-  EXPECT_EQ(false, obj.IsValidKey(reinterpret_cast<void *>(key),
-                                 index));
+  GetKeyStruct(key);
+  EXPECT_EQ(false, obj.IsValidKey(reinterpret_cast<void *>(key), index));
+
+  free(key);
 }
 
 TEST_F(VbrMoMgrTest, IsValidKey_InvalidVTNName) {
   VbrMoMgr obj;
   uint64_t index = uudst::vbridge::kDbiVtnName;
-  key_vbr *key;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   const char *vtn_name = "";
   const char *vbr_name = "VBR_1";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  EXPECT_EQ(false, obj.IsValidKey(reinterpret_cast<void *>(key),
-                                 index));
+          vbr_name, strlen(vbr_name)+1);
+  EXPECT_EQ(false, obj.IsValidKey(reinterpret_cast<void *>(key), index));
+
+  free(key);
 }
 
 TEST_F(VbrMoMgrTest, IsValidKey_InvalidVBRName) {
   VbrMoMgr obj;
   uint64_t index = uudst::vbridge::kDbiVbrName;
-  key_vbr *key;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   const char *vtn_name = "VTN";
   const char *vbr_name = "";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
 
-  EXPECT_EQ(false, obj.IsValidKey(reinterpret_cast<void *>(key),
-                                 index));
+  EXPECT_EQ(false, obj.IsValidKey(reinterpret_cast<void *>(key), index));
+
+  free(key);
 }
 
 TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccessNullObjs) {
@@ -640,6 +667,7 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccessNullObjs) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *pkey = NULL;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.GetChildConfigKey(okey, pkey));
+  delete okey;
 }
 
 TEST_F(VbrMoMgrTest, GetChildConfigKey_pkeyNull) {
@@ -649,16 +677,16 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_pkeyNull) {
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.GetChildConfigKey(okey, pkey));
+
+  delete pkey;
+  delete okey;
 }
 
 TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccesspkeyVBR) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
 
-  key_vbr *key = reinterpret_cast<key_vbr*>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vbr_t));
-
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strncpy((char*) key->vbridge_name,"VBR1",32);
   strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
 
@@ -671,16 +699,16 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccesspkeyVBR) {
 
   EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
   EXPECT_STREQ("VBR1",(reinterpret_cast<const char *> (output->vbridge_name)));
+
+  delete okey;
+  delete pkey;
 }
 
 TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccesspkeyVTN) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
 
-  key_vbr *key = reinterpret_cast<key_vbr*>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vbr_t));
-
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strncpy((char*) key->vbridge_name,"VBR1",32);
   strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
 
@@ -693,15 +721,16 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccesspkeyVTN) {
 
   EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
   EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+
+  delete okey;
+  delete pkey;
 }
+
 TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccessOkeyVTN) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
 
-  key_vbr *key = reinterpret_cast<key_vbr*>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vbr_t));
-
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strncpy((char*) key->vbridge_name,"VBR1",32);
   strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
 
@@ -714,8 +743,10 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccessOkeyVTN) {
 
   EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
   EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
-}
 
+  delete okey;
+  delete pkey;
+}
 
 TEST_F(VbrMoMgrTest, CopyToConfigkey_ikeyokeyNull) {
   VbrMoMgr obj;
@@ -728,16 +759,16 @@ TEST_F(VbrMoMgrTest, CopyToConfigkey_ikeyokeyNull) {
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+
+  delete okey;
+  delete ikey;
 }
 
-TEST(GetChildConfigKey, PkeyVbrSuccess) {
+TEST_F(VbrMoMgrTest, GetChildConfigKey_PkeyVbrSuccess) {
   VbrMoMgr vbr;
   ConfigKeyVal *okey = NULL;
 
-  key_vbr *key = reinterpret_cast<key_vbr*>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vbr_t));
-
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strncpy((char*) key->vbridge_name,"VBR1",32);
   strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
 
@@ -750,16 +781,16 @@ TEST(GetChildConfigKey, PkeyVbrSuccess) {
 
   EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
   EXPECT_STREQ("VBR1",(reinterpret_cast<const char *> (output->vbridge_name)));
+
+  delete okey;
+  delete pkey;
 }
 
-TEST(GetChildConfigKey, OkeyVtnSuccess) {
+TEST_F(VbrMoMgrTest, GetChildConfigKey_OkeyVtnSuccess) {
   VbrMoMgr vbr;
 
-   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
-  key_vbr *key = reinterpret_cast<key_vbr*>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vbr_t));
-
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strncpy((char*) key->vbridge_name,"VBR1",32);
   strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
 
@@ -772,32 +803,34 @@ TEST(GetChildConfigKey, OkeyVtnSuccess) {
 
   EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
   EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+
+  delete okey;
+  delete pkey;
 }
 
-TEST(GetChildConfigKey, PkeyVlinkSuccess) {
+TEST_F(VbrMoMgrTest, GetChildConfigKey_PkeyVlinkSuccess) {
   VbrMoMgr vbr;
 
-   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VLINK) ;
-  key_vbr *key = reinterpret_cast<key_vbr*>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vbr_t));
-
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VLINK) ;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strncpy((char*) key->vbridge_name,"VLINK1",32);
   strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
 
- ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVbr,
-                            key, NULL);
+  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
+                                        key, NULL);
 
  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
   EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
   EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+
+  delete okey;
+  delete pkey;
 }
 
-TEST(VbrMoMgr, GetChildConfigKey5) {
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+TEST_F(VbrMoMgrTest, GetChildConfigKey_05) {
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   VbrMoMgr vbr_obj;
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge");
@@ -805,36 +838,37 @@ TEST(VbrMoMgr, GetChildConfigKey5) {
   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VLINK,IpctSt::kIpcStKeyVbr,key_vbr);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr_obj.GetChildConfigKey(okey, pkey));
+
+  delete okey;
+  delete pkey;
 }
 
-TEST(VbrMoMgr, GetChildConfigKey6) {
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+TEST_F(VbrMoMgrTest, GetChildConfigKey_06) {
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   VbrMoMgr vbr_obj;
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge");
-  val_vlink *vlink_val = reinterpret_cast<val_vlink *>( malloc(sizeof(val_vlink)));
+  val_vlink *vlink_val(ZALLOC_TYPE(val_vlink));
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVlink, vlink_val);
 
   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VLINK,IpctSt::kIpcStKeyVbr,key_vbr,cfgval);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr_obj.GetChildConfigKey(okey, pkey));
-}
-
 
+  delete okey;
+  delete pkey;
+}
 
 TEST_F(VbrMoMgrTest, CopyToConfigkey_InValidName) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
-  key_vbr *key;
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   const char *vtn_name = "";
   const char *vbr_name = "";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
+          vbr_name, strlen(vbr_name)+1);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
@@ -844,40 +878,44 @@ TEST_F(VbrMoMgrTest, CopyToConfigkey_InValidName) {
 
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),"VTN_1",32);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+
+  delete okey;
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, CopyToConfigkey_Valid) {
   VbrMoMgr obj;
-  ConfigKeyVal *okey;
-  key_vbr *key;
-  val_vbr *val;
-  const char *vtn_name = "VTN_1";
-  const char *vbr_name = "VBR_1";
-  key = reinterpret_cast<key_vbr *>(malloc
-                 (sizeof(key_vbr)));
-  memset(key,0,sizeof(key_vbr));
-  strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
-
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.CopyToConfigKey(okey,ikey));
+  ConfigKeyVal *okey(NULL);
+  key_rename_vnode_info *key_rename(ZALLOC_TYPE(key_rename_vnode_info));
+
+  const char *vtn_name("VTN_1");
+  const char *vbr_name("VBR_1");
+  pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vtn_name),
+              vtn_name, sizeof(key_rename->old_unc_vtn_name));
+  pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vnode_name),
+              vbr_name, sizeof(key_rename->old_unc_vnode_name));
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbr, NULL));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                      key_rename, cfgval));
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.CopyToConfigKey(okey, ikey));
+
+  ASSERT_TRUE(okey != NULL);
+
+  key_vbr_t *key(reinterpret_cast<key_vbr_t *>(okey->get_key()));
+  if (key != NULL) {
+    EXPECT_STREQ(vtn_name, reinterpret_cast<char *>(key->vtn_key.vtn_name));
+    EXPECT_STREQ(vbr_name, reinterpret_cast<char *>(key->vbridge_name));
+  }
 
+  delete ikey;
+  delete okey;
 }
 
-
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_Success) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_CREATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
+        sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
@@ -894,16 +932,14 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_Success) {
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
   cout<<"TEST: Positive: Success"<<endl;
 
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidTgtAddr) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_CREATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
+        sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
@@ -922,14 +958,13 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidTgtAddr) {
   inet_pton(AF_INET, "224.1.1.1", &(sa.sin_addr));
   vst->target_addr = sa.sin_addr.s_addr;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidSrcAddr) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_CREATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -950,14 +985,13 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidSrcAddr) {
   inet_pton(AF_INET, "224.1.1.1", &(sa.sin_addr));
   vst->src_addr = sa.sin_addr.s_addr;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_DFbitValidation) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_CREATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -977,14 +1011,13 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_DFbitValidation) {
 
   vst->valid[UPLL_IDX_DF_BIT_PING] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_PktSzValidation) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_UPDATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -1004,14 +1037,13 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_PktSzValidation) {
 
   vst->valid[UPLL_IDX_PACKET_SIZE_PING] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_CntValidation) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_UPDATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -1031,14 +1063,13 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_CntValidation) {
 
   vst->valid[UPLL_IDX_COUNT_PING] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InterValidation) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_CREATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -1058,14 +1089,13 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InterValidation) {
 
   vst->valid[UPLL_IDX_INTERVAL_PING] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_TimeOutValidation) {
   VbrMoMgr obj;
-  uint32_t oper = UNC_OP_CREATE;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -1085,10 +1115,11 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_TimeOutValidation) {
 
   vst->valid[UPLL_IDX_TIMEOUT_PING] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+
+  free(vst);
 }
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_Success) {
-
   VbrMoMgr obj;
   DalDmlIntf *dmi= NULL;
   key_vbr *key;
@@ -1098,18 +1129,22 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_Success) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                         key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,ikey));
 
+  delete ikey;
+  delete upd_key;
 }
 
-TEST_F(VbrMoMgrTest,UpdateConfigStatus_SuccessUPDATE) {
-
+TEST_F(VbrMoMgrTest, UpdateConfigStatus_SuccessUPDATE) {
   VbrMoMgr obj;
   DalDmlIntf *dmi= NULL;
   key_vbr *key;
@@ -1119,19 +1154,22 @@ TEST_F(VbrMoMgrTest,UpdateConfigStatus_SuccessUPDATE) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                         key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,ikey));
 
+  delete ikey;
+  delete upd_key;
 }
 
-
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidOP) {
-
   VbrMoMgr obj;
   DalDmlIntf *dmi= NULL;
   key_vbr *key;
@@ -1141,46 +1179,42 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidOP) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                         key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_READ,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                       UPLL_RC_SUCCESS,
+                                                       upd_key, dmi, ikey));
 
+  delete ikey;
+  delete upd_key;
 }
 
-TEST_F(VbrMoMgrTest,UpdateConfigStatus_InvalidArg) {
-
+TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidArg) {
   VbrMoMgr obj;
   DalDmlIntf *dmi= NULL;
-  key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            NULL, NULL);
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                         NULL, NULL));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
-
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
-
+                                                       UPLL_RC_SUCCESS,
+                                                       upd_key, dmi, ikey));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                       UPLL_RC_SUCCESS,
+                                                       upd_key, dmi, ikey));
+
+  delete ikey;
+  delete upd_key;
 }
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_AttrNotSupp_ValNoValue) {
-
   VbrMoMgr obj;
   DalDmlIntf *dmi= NULL;
   key_vbr *key;
@@ -1193,9 +1227,12 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_AttrNotSupp_ValNoValue) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                         key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
@@ -1205,11 +1242,11 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_AttrNotSupp_ValNoValue) {
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,ikey));
 
+  delete ikey;
+  delete upd_key;
 }
 
-
 TEST_F(VbrMoMgrTest, CreateVnodeConfigKey_Success) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -1223,10 +1260,11 @@ TEST_F(VbrMoMgrTest, CreateVnodeConfigKey_Success) {
 
   EXPECT_EQ(UPLL_RC_SUCCESS,obj.CreateVnodeConfigKey(ikey, okey));
 
+  delete ikey;
+  delete okey;
 }
 
 TEST_F(VbrMoMgrTest, CreateVnodeConfigKey_NULLArg) {
-
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
@@ -1235,53 +1273,58 @@ TEST_F(VbrMoMgrTest, CreateVnodeConfigKey_NULLArg) {
 }
 
 TEST_F(VbrMoMgrTest, CompareValidValue_AuditTrue) {
-
   VbrMoMgr obj;
-  key_vbr *key;
-  val_vbr *val, *val1;
-  GetKeyValStruct(key, val);
-  GetKeyValStruct(key, val1);
+  val_vbr val1, val2;
+  memset(&val1, 0, sizeof(val1));
+  memset(&val2, 0, sizeof(val2));
 
-  strncpy(reinterpret_cast<char *>(val1->controller_id), "CTR1",
-  strlen("CTR1")+1);
-  void *vbrval = reinterpret_cast<void *>(&val);
+  for (uint32_t i(0); i < PFC_ARRAY_CAPACITY(val1.valid); i++) {
+    val1.valid[i] = UNC_VF_INVALID;
+    val2.valid[i] = UNC_VF_VALID;
+  }
+  void *v1(&val1);
+  void *v2(&val2);
 
-  obj.CompareValidValue(vbrval, (void *)val,true);
-  obj.CompareValidValue(vbrval, (void *)val1,true);
+  ASSERT_FALSE(obj.CompareValidValue(v1, v2, true));
 
+  for (uint32_t i(0); i < PFC_ARRAY_CAPACITY(val1.valid); i++) {
+    ASSERT_EQ(UNC_VF_VALID_NO_VALUE, val1.valid[i]);
+  }
 }
 
-TEST(FilterAttributes,CreateOperation) {
+TEST_F(VbrMoMgrTest, FilterAttributes_CreateOperation) {
   VbrMoMgr vbr;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_CREATE;
 
-  val_vbr_t *valvbr1 = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr1(ZALLOC_TYPE(val_vbr_t));
   valvbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   EXPECT_EQ(false, vbr.FilterAttributes(val1,val2,audit_status,op));
+
+  free(valvbr1);
 }
 
-TEST(FilterAttributes,OperationUpdate) {
+TEST_F(VbrMoMgrTest, FilterAttributes_OperationUpdate) {
   VbrMoMgr vbr;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_UPDATE;
 
-  val_vbr_t *valvbr1 = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  val_vbr_t *valvbr1(ZALLOC_TYPE(val_vbr_t));
   valvbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   EXPECT_EQ(true, vbr.FilterAttributes(val1,val2,audit_status,op));
-}
 
+  free(valvbr1);
+}
 
 TEST_F(VbrMoMgrTest, GetRenameKeyBindInfo) {
-
   VbrMoMgr obj;
   BindInfo *binfo;
   int nattr;
@@ -1289,29 +1332,27 @@ TEST_F(VbrMoMgrTest, GetRenameKeyBindInfo) {
   EXPECT_EQ(PFC_TRUE, obj.GetRenameKeyBindInfo(UNC_KT_VBRIDGE, binfo, nattr, MAINTBL));
 
   EXPECT_EQ(5, nattr);
-  EXPECT_EQ(VbrMoMgr::key_vbr_maintbl_bind_info, binfo);
+  EXPECT_EQ(&VbrMoMgr::key_vbr_maintbl_bind_info[0], binfo);
 
 
   EXPECT_EQ(PFC_TRUE, obj.GetRenameKeyBindInfo(UNC_KT_VBRIDGE, binfo, nattr, RENAMETBL));
 
   EXPECT_EQ(4, nattr);
-  EXPECT_EQ(VbrMoMgr::key_vbr_renametbl_update_bind_info, binfo);
+  EXPECT_EQ(&VbrMoMgr::key_vbr_renametbl_update_bind_info[0], binfo);
 
 }
 
-TEST(GetRenameKeyBindInfo, OutputUnknownTbl) {
+TEST_F(VbrMoMgrTest, GetRenameKeyBindInfo_OutputUnknownTbl) {
   VbrMoMgr vbr;
   unc_key_type_t key_type = UNC_KT_VBRIDGE;
   BindInfo *binfo = NULL;
   int nattr = 2;
-  MoMgrTables tbl;
 
   EXPECT_EQ(false, vbr.GetRenameKeyBindInfo(key_type, binfo, nattr,CTRLRTBL ));
   EXPECT_EQ(2,nattr);
 }
 
 TEST_F(VbrMoMgrTest, GetVnodeName) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -1326,15 +1367,17 @@ TEST_F(VbrMoMgrTest, GetVnodeName) {
   EXPECT_STREQ("VTN_1",(reinterpret_cast<const char *> (vtn_name)));
   EXPECT_STREQ("VBR_1",(reinterpret_cast<const char *> (vnode_name)));
 
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            NULL, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.GetVnodeName(ikey, vtn_name, vnode_name));
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       NULL, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetVnodeName(ikey1, vtn_name, vnode_name));
 
+  delete ikey;
+  delete ikey1;
 }
 
 TEST_F(VbrMoMgrTest, ValidateCapability_ErrorInput) {
-
   VbrMoMgrStub obj;
   key_vbr *key;
   val_vbr *val;
@@ -1344,19 +1387,14 @@ TEST_F(VbrMoMgrTest, ValidateCapability_ErrorInput) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
- IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
- EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(req, ikey,NULL ));
-
+  IPC_REQ_RESP_HEADER_DECL(req);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(req, ikey, NULL));
 
+  delete ikey;
 }
 
-TEST(ValidateCapability, ValidateCapability_Success) {
-
+TEST_F(VbrMoMgrTest, ValidateCapability_Success) {
   VbrMoMgr vbr;
-  DalDmlIntf *dmi= NULL;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
@@ -1365,19 +1403,10 @@ TEST(ValidateCapability, ValidateCapability_Success) {
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-
   CtrlrMgr::Ctrlr ctrlrobj("CTR_1", UNC_CT_PFC, "5.0");
   CtrlrMgr::GetInstance()->Add(ctrlrobj, UPLL_DT_CANDIDATE);
 
-  uint8_t attrs[3];
-  attrs[unc::capa::vbr::kCapDesc] = 1;
-  uint32_t max_inst = 5;
-  uint32_t num_attrs =5;
-
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -1385,21 +1414,19 @@ TEST(ValidateCapability, ValidateCapability_Success) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_UPDATE;
-
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
-}
-
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
 
-TEST(ValidateCapability, ValidateCapability_Success1) {
+  delete ikey;
+}
 
+TEST_F(VbrMoMgrTest, ValidateCapability_Success1) {
   VbrMoMgr vbr;
-  DalDmlIntf *dmi= NULL;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
@@ -1412,15 +1439,7 @@ TEST(ValidateCapability, ValidateCapability_Success1) {
   CtrlrMgr::Ctrlr ctrlrobj("CTR_1", UNC_CT_PFC, "5.0");
   CtrlrMgr::GetInstance()->Add(ctrlrobj, UPLL_DT_CANDIDATE);
 
-  uint8_t attrs[3];
-  attrs[unc::capa::vbr::kCapDesc] = 1;
-  uint32_t max_inst = 5;
-  uint32_t num_attrs =5;
-
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -1440,33 +1459,32 @@ TEST(ValidateCapability, ValidateCapability_Success1) {
 
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
 
-  val_vbr* no_val = NULL;
-  cfgval = new ConfigVal(IpctSt::kIpcStValVbr, no_val);
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr* no_val(NULL);
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, no_val));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey1, "CTR_1"));
 
   req->operation = UNC_OP_DELETE;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey1, "CTR_1"));
 
   CtrlrMgr::GetInstance()->Delete("CTR_1", UPLL_DT_CANDIDATE);
-}
 
-TEST(ValidateCapability, ValidateCapability_ikey_NULL) {
+  delete ikey;
+  delete ikey1;
+}
 
+TEST_F(VbrMoMgrTest, ValidateCapability_ikey_NULL) {
   VbrMoMgr vbr;
-  key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
   ConfigKeyVal *ikey = NULL;
   IpcReqRespHeader *req=NULL;
   const char *ctrlr_name="ctr1";
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
 }
-TEST(ValidateCapability, ValidateCapability_ctrName_NULL) {
 
+TEST_F(VbrMoMgrTest, ValidateCapability_ctrName_NULL) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
@@ -1475,17 +1493,14 @@ TEST(ValidateCapability, ValidateCapability_ctrName_NULL) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-
+  IPC_REQ_RESP_HEADER_DECL(req);
   const char *ctrlr_name=NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
-}
-
 
-TEST(ValidateCapability, ValidateCapability_ctrName) {
+  delete ikey;
+}
 
+TEST_F(VbrMoMgrTest, ValidateCapability_ctrName) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
@@ -1494,16 +1509,14 @@ TEST(ValidateCapability, ValidateCapability_ctrName) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-
+  IPC_REQ_RESP_HEADER_DECL(req);
   const char *ctrlr_name=NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -1514,10 +1527,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -1528,10 +1538,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
 
-  val_rename_vbr *renameval;
-  renameval = reinterpret_cast<val_rename_vbr *>(malloc
-  (sizeof(val_rename_vbr)));
-  memset(renameval,0,sizeof(val_rename_vbr));
+  val_rename_vbr *renameval(ZALLOC_TYPE(val_rename_vbr));
   for(unsigned int loop = 0; loop < sizeof(renameval->valid)/
      sizeof(renameval->valid[0]); ++loop) {
     renameval->valid[loop] = UNC_VF_VALID;
@@ -1539,10 +1546,11 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   strncpy(reinterpret_cast<char *>(renameval->new_name),
   "renamed", strlen("renamed")+1);
 
+  key_vbr *key1(UT_CLONE(key_vbr, key));
   ConfigVal *rename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, renameval);
   ConfigKeyVal *rename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
-                            key, rename_cfgval);
+                            key1, rename_cfgval);
 
   req->operation = UNC_OP_RENAME;
   req->datatype = UPLL_DT_IMPORT;
@@ -1552,9 +1560,10 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, rename_ikey));
 
   ConfigVal *invrename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, NULL);
+  key_vbr *key2(UT_CLONE(key_vbr, key));
   ConfigKeyVal *invrename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
-                            key, invrename_cfgval);
+                            key2, invrename_cfgval);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, invrename_ikey));
 
@@ -1566,9 +1575,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
 
   req->operation = UNC_OP_CONTROL;
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
+  val_ping *vst(ZALLOC_TYPE(val_ping));
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
@@ -1584,13 +1591,18 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   vst->interval = 23;
   vst->timeout = 32;
 
+  key_vbr *key3(UT_CLONE(key_vbr, key));
   ConfigVal *ping_cfgval = new ConfigVal(IpctSt::kIpcStValPing, vst);
   ConfigKeyVal *ping_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
-                            key, ping_cfgval);
+                            key3, ping_cfgval);
   req->option2 = UNC_OPT2_PING;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ping_ikey));
 
+  delete ikey;
+  delete rename_ikey;
+  delete invrename_ikey;
+  delete ping_ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_ReadSuccess) {
@@ -1598,15 +1610,12 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadSuccess) {
   key_vbr *key;
   val_vbr *val ;
   GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
 ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1615,6 +1624,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadSuccess) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_ReadFailure) {
@@ -1627,10 +1638,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadFailure) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1639,23 +1647,21 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadFailure) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
-}
 
+  delete ikey;
+}
 
 TEST_F(VbrMoMgrTest, ValidateMessage_ReadOption2Failure) {
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val ;
   GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
 ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1664,6 +1670,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadOption2Failure) {
   req->option2 = UNC_OPT2_L2DOMAIN;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_InvalidValVbr) {
@@ -1671,15 +1679,12 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidValVbr) {
   key_vbr *key;
   val_vbr *val ;
   GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr,val);
 ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr,val);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1688,22 +1693,19 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidValVbr) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_NullVal) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  GetKeyStruct(key);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1712,22 +1714,19 @@ TEST_F(VbrMoMgrTest, ValidateMessage_NullVal) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_DiffOption) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  GetKeyStruct(key);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1736,22 +1735,19 @@ TEST_F(VbrMoMgrTest, ValidateMessage_DiffOption) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_STATE;
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_DiffOption2) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  GetKeyStruct(key);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1761,21 +1757,19 @@ TEST_F(VbrMoMgrTest, ValidateMessage_DiffOption2) {
   req->option2 = UNC_OPT2_IP_ROUTE;
   req->datatype = UPLL_DT_STATE;
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
+
 TEST_F(VbrMoMgrTest, ValidateMessage_ValidDiffOption) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  GetKeyStruct(key);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ;
@@ -1789,10 +1783,11 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ValidDiffOption) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_STATE;
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+
+  delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -1805,10 +1800,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
   ConfigKeyVal *invalkey = NULL;
   IpcReqRespHeader *inreq = NULL;
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -1822,21 +1814,28 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateMessage(inreq, ikey));
 
-  ConfigVal *inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val);
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(UT_CLONE(val_vbr, val));
+  ConfigVal *inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val1);
   ConfigKeyVal *invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
-                            key, inval_cfgval);
+                            key1, inval_cfgval);
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invalcfgkey));
 
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyLogicalPort,
-                            key, cfgval);
+  key_vbr *key2(UT_CLONE(key_vbr, key));
+  val_vbr *val2(UT_CLONE(val_vbr, val));
+  inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val2);
+  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyLogicalPort,
+                                 key2, inval_cfgval);
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invalcfgkey));
 
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VTUNNEL,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+  delete invalcfgkey;
+  key2 = UT_CLONE(key_vbr, key);
+  val2 = UT_CLONE(val_vbr, val);
+  inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val2);
+  invalcfgkey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVbr,
+                                 key2, inval_cfgval);
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invalcfgkey));
 
@@ -1844,46 +1843,50 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
   EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,obj.ValidateMessage(req, ikey));
 
   req->datatype = UPLL_DT_CANDIDATE;
-  strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  "", strlen("")+1);
 
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+  delete invalcfgkey;
+  key2 = UT_CLONE(key_vbr, key);
+  key2->vtn_key.vtn_name[0] = '\0';
+  val2 = UT_CLONE(val_vbr, val);
+  inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val2);
+  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                 key2, inval_cfgval);
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invalcfgkey));
 
+  delete invalcfgkey;
+  key2 = UT_CLONE(key_vbr, key);
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
-  "VTN_1", strlen("VTN_1")+1);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, NULL);
+          "VTN_1", strlen("VTN_1")+1);
+  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                 key2, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, invalcfgkey));
 
-  ConfigVal *invalcfgval = new ConfigVal(IpctSt::kIpcStValVbr, NULL);
-
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, invalcfgval);
+  delete invalcfgkey;
+  key2 = UT_CLONE(key_vbr, key);
+  inval_cfgval = new ConfigVal(IpctSt::kIpcStValVbr, NULL);
+  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                 key2, inval_cfgval);
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, invalcfgkey));
 
-  string ctrlr_id = "Controller 1";
-  strncpy(reinterpret_cast<char *>(val->controller_id), ctrlr_id.c_str(),
-  strlen(ctrlr_id.c_str())+1);
-
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
+  delete invalcfgkey;
+  key2 = UT_CLONE(key_vbr, key);
+  val2 = UT_CLONE(val_vbr, val);
+  pfc_strlcpy(reinterpret_cast<char *>(val2->controller_id), "Controller 1",
+              sizeof(val2->controller_id));
+  inval_cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val2);
+  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                 key2, inval_cfgval);
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invalcfgkey));
 
+  delete ikey;
   delete invalcfgkey;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputRENAME) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -1893,10 +1896,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputRENAME) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_RENAME;
@@ -1907,72 +1907,65 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputRENAME) {
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
 
-  val_rename_vbr *renameval;
-  renameval = reinterpret_cast<val_rename_vbr *>(malloc
-  (sizeof(val_rename_vbr)));
-  memset(renameval,0,sizeof(val_rename_vbr));
-  for(unsigned int loop = 0; loop < sizeof(renameval->valid)/
-     sizeof(renameval->valid[0]); ++loop) {
-    renameval->valid[loop] = UNC_VF_VALID;
-  }
-  strncpy(reinterpret_cast<char *>(renameval->new_name),
-  "renamed", strlen("renamed")+1);
-
-  ConfigVal *rename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, renameval);
-  ConfigKeyVal *rename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, rename_cfgval);
-
-  ConfigVal *invrename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, NULL);
-  ConfigKeyVal *invrename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, invrename_cfgval);
-
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invrename_ikey));
-
-  strncpy(reinterpret_cast<char *>(renameval->new_name),
-  "", strlen("")+1);
-
-  invrename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, renameval);
-  invrename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, invrename_cfgval);
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValRenameVbr, NULL));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey1));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invrename_ikey));
-
-  strncpy(reinterpret_cast<char *>(renameval->new_name),
-  "renamed", strlen("renamed")+1);
+  key_vbr *key2(UT_CLONE(key_vbr, key));
+  val_rename_vbr *rval2(ZALLOC_TYPE(val_rename_vbr));
+  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(rval2->valid); ++loop){
+    rval2->valid[loop] = UNC_VF_VALID;
+  }
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval2));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key2, cfgval2));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey2));
+
+  key_vbr *key3(UT_CLONE(key_vbr, key));
+  val_rename_vbr *rval3(UT_CLONE(val_rename_vbr, rval2));
+  pfc_strlcpy(reinterpret_cast<char *>(rval3->new_name), "renamed",
+              sizeof(rval3->new_name));
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key3, cfgval3));
 
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_DETAIL;
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey3));
 
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_PING;
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey3));
 
   req->option2 = UNC_OPT2_NONE;
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
 
-  strncpy(reinterpret_cast<char *>(renameval->new_name),
-  "", strlen("")+1);
-
-  invrename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, renameval);
-  invrename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, invrename_cfgval);
-
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invrename_ikey));
-
-  strncpy(reinterpret_cast<char *>(renameval->new_name),
-  "renamed", strlen("renamed")+1);
-
+  key_vbr *key4(UT_CLONE(key_vbr, key));
+  val_rename_vbr *rval4(UT_CLONE(val_rename_vbr, rval2));
+  ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval4));
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key4, cfgval4));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey4));
+
+  key_vbr *key5(UT_CLONE(key_vbr, key));
+  val_rename_vbr *rval5(UT_CLONE(val_rename_vbr, rval3));
+  ConfigVal *cfgval5(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval5));
+  ConfigKeyVal *ikey5(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key5, cfgval5));
   req->operation = UNC_OP_READ_BULK;
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey5));
+
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
+  delete ikey4;
+  delete ikey5;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputREAD) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -1982,10 +1975,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputREAD) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_READ_SIBLING_COUNT;
@@ -2001,41 +1991,43 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputREAD) {
 
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
 
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_rename_vbr *val1(ZALLOC_TYPE(val_rename_vbr));
   req->option2 = UNC_OPT2_NONE;
-  ConfigVal *inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val);
-  ConfigKeyVal *invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, inval_cfgval);
-
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, invalcfgkey));
-
-  inval_cfgval = new ConfigVal(IpctSt::kIpcStValVbr, NULL);
-
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, inval_cfgval);
-
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, invalcfgkey));
-
-  string ctrlr_id = "Controller 1";
-  strncpy(reinterpret_cast<char *>(val->controller_id), ctrlr_id.c_str(),
-  strlen(ctrlr_id.c_str())+1);
-
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
-
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invalcfgkey));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValRenameVbr, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, ikey1));
+
+  key_vbr *key2(UT_CLONE(key_vbr, key));
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVbr, NULL));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key2, cfgval2));
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey2));
+
+  key_vbr *key3(UT_CLONE(key_vbr, key));
+  val_vbr *val3(UT_CLONE(val_vbr, val));
+  pfc_strlcpy(reinterpret_cast<char *>(val3->controller_id), "Controller 1",
+              sizeof(val3->controller_id));
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbr, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key3, cfgval3));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey3));
 
   req->datatype = UPLL_DT_AUDIT;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+            obj.ValidateMessage(req, ikey3));
 
   req->operation = UNC_OP_DELETE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey3));
+
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
 }
 
 TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCONTROL) {
-
   VbrMoMgr obj;
   key_vbr *key;
   val_vbr *val;
@@ -2045,10 +2037,7 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCONTROL) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CONTROL;
@@ -2067,61 +2056,59 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCONTROL) {
   req->option2 = UNC_OPT2_PING;
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, ikey));
 
-  val_ping *vst = reinterpret_cast<val_ping *>(malloc
-  (sizeof(val_ping)));
-  memset(vst,0,sizeof(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
-    vst->valid[loop] = UNC_VF_VALID;
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_ping *val1(ZALLOC_TYPE(val_ping));
+  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(val1->valid); ++loop){
+    val1->valid[loop] = UNC_VF_VALID;
   }
+
   struct sockaddr_in sa;
   inet_pton(AF_INET, "255.255.255.255", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;
+  val1->target_addr = sa.sin_addr.s_addr;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
-  vst->dfbit = UPLL_DF_BIT_ENABLE;
-  vst->packet_size = 5;
-  vst->count = 14;
-  vst->interval = 23;
-  vst->timeout = 32;
-
-  ConfigVal *ping_cfgval = new ConfigVal(IpctSt::kIpcStValPing, vst);
-  ConfigKeyVal *ping_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, ping_cfgval);
-
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ping_ikey));
-
+  val1->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  val1->dfbit = UPLL_DF_BIT_ENABLE;
+  val1->packet_size = 5;
+  val1->count = 14;
+  val1->interval = 23;
+  val1->timeout = 32;
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValPing, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey1));
+
+  key_vbr *key2(UT_CLONE(key_vbr, key));
+  val_ping *val2(UT_CLONE(val_ping, val1));
   inet_pton(AF_INET, "192.168.1.1", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  val2->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
 
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValPing, val2));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key2, cfgval2));
 
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, obj.ValidateMessage(req, ping_ikey));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+            obj.ValidateMessage(req, ikey2));
 
   req->operation = UNC_OP_INVALID;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,obj.ValidateMessage(req, ping_ikey));
-}
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+            obj.ValidateMessage(req, ikey2));
 
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+}
 
 TEST_F(VbrMoMgrTest, AdaptValToVtnService_Success) {
-
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
-
-  val_vbr_st *valst;
-  valst = reinterpret_cast<val_vbr_st *>(malloc
-  (sizeof(val_vbr_st)));
+  GetKeyStruct(key);
 
-  memset(valst,0,sizeof(val_vbr_st));
+  val_vbr_st *valst(ZALLOC_TYPE(val_vbr_st));
   valst->valid[0] = UNC_VF_VALID;
   valst->oper_status = UPLL_OPER_STATUS_UP;
 
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrSt, valst);
-
-
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfg_val);
@@ -2131,30 +2118,23 @@ TEST_F(VbrMoMgrTest, AdaptValToVtnService_Success) {
 }
 
 TEST_F(VbrMoMgrTest, AdaptValToVtnService_Failure) {
-
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val;
-  GetKeyValStruct(key, val);
-  ConfigKeyVal* ikey = NULL;
+  GetKeyStruct(key);
 
+  ConfigKeyVal* ikey = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AdaptValToVtnService(ikey));
 
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                          IpctSt::kIpcStKeyVbr,
-                          key, NULL);
-
+  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, GetValid) {
-
   VbrMoMgr obj;
-  key_vbr *key;
   val_vbr *val;
-  uint8_t * valid;
-  GetKeyValStruct(key, val);
+  uint8_t *valid(NULL);
+  GetValStruct(val);
 
   void *in_val = reinterpret_cast<void *>(val);
 
@@ -2188,11 +2168,7 @@ TEST_F(VbrMoMgrTest, GetValid) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetValid(in_val, vbridge::kDbiCtrlrName,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
 
-  val_vbr_st *valst;
-  valst = reinterpret_cast<val_vbr_st *>(malloc
-  (sizeof(val_vbr_st)));
-
-  memset(valst,0,sizeof(val_vbr_st));
+  val_vbr_st *valst(ZALLOC_TYPE(val_vbr_st));
   valst->valid[0] = UNC_VF_VALID;
   valst->oper_status = UPLL_OPER_STATUS_UP;
 
@@ -2201,61 +2177,87 @@ TEST_F(VbrMoMgrTest, GetValid) {
   EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, 0, valid, UPLL_DT_STATE, RENAMETBL));
   EXPECT_EQ(val->valid[UPLL_IDX_OPER_STATUS_VBRS], valid[UPLL_IDX_OPER_STATUS_VBRS]);
 
+  free(val);
+  free(valst);
 }
 
-
-TEST(SwapKeyVal,IpctSt_valid ) {
+TEST_F(VbrMoMgrTest, SwapKeyVal_IpctSt_valid) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setSingleRecordExists(true);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
 
   VbrMoMgr vbr;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   const char *vbr_name = "VBR_1";
   bool no_rename;
-  key_vbr_t *key = (key_vbr_t *)malloc(sizeof(key_vbr_t));
-  memset(key,0,sizeof(key_vbr));
-  strncpy(reinterpret_cast<char *>(key->vbridge_name),
-  vbr_name, strlen(vbr_name)+1);
-  val_rename_vbr_t *val = (val_rename_vbr_t *)malloc(sizeof(val_rename_vbr_t));
+  key_vbr_t *key(ZALLOC_TYPE(key_vbr_t));
+  pfc_strlcpy(reinterpret_cast<char *>(key->vbridge_name),
+              vbr_name, sizeof(key->vbridge_name));
+  val_rename_vbr_t *val(ZALLOC_TYPE(val_rename_vbr_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
   ConfigKeyVal *okey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vbr.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
+  delete okey;
 
   val->valid[UPLL_IDX_NEW_NAME_RVBR] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
-
-  ConfigVal *config_val1= new ConfigVal(IpctSt::kIpcStValVbrSt, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr, key, config_val1);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.SwapKeyVal(ikey1,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            vbr.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
+  delete okey;
+
+  key_vbr_t *key1(UT_CLONE(key_vbr_t, key));
+  val_rename_vbr_t *val1(UT_CLONE(val_rename_vbr_t, val));
+  ConfigVal *config_val1(new ConfigVal(IpctSt::kIpcStValVbrSt, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
+                                       key1, config_val1));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+            vbr.SwapKeyVal(ikey1, okey, dmi, ctr_id1, no_rename));
+  delete okey;
+
+  key_vbr_t *key2(UT_CLONE(key_vbr_t, key));
+  ConfigVal *config_val2(NULL);
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key2, config_val2));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vbr.SwapKeyVal(ikey2, okey, dmi,ctr_id1, no_rename));
+  delete okey;
+
+  key_vbr_t *key3(UT_CLONE(key_vbr_t, key));
+  val_rename_vbr_t *val3(NULL);
+  ConfigVal *config_val3(new ConfigVal(IpctSt::kIpcStValVbrSt, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                       key3, config_val3));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vbr.SwapKeyVal(ikey3, okey, dmi, ctr_id1, no_rename));
+  delete okey;
 
-  ConfigVal *config_val2= NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val2);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(ikey2,okey,dmi,ctr_id1,no_rename));
-
-  val_rename_vbr_t *val3 = NULL;
-  ConfigVal *config_val3= new ConfigVal(IpctSt::kIpcStValVbrSt, val3);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val3);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(ikey3,okey,dmi,ctr_id1,no_rename));
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
 
-  delete ikey,ikey1,ikey2,okey;
+  free(ctr_id1);
 }
 
-
-
 TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_ValidCsStatus) {
   VbrMoMgr vbrmomgr;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
   ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+
+  delete ckv_running;
 }
 
 TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_InvalidCsStatus) {
@@ -2263,11 +2265,14 @@ TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_InvalidCsStatus) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
   ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+
+  delete ckv_running;
 }
 
 TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_EmptyVal) {
@@ -2276,21 +2281,18 @@ TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_EmptyVal) {
   UpdateCtrlrPhase phase = kUpllUcpCreate;
   ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
-}
-
 
+  delete ckv_running;
+}
 
 TEST_F(VbrMoMgrTest, GetRenamedUncKey) {
-  DalOdbcMgr::clearStubData();
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,unc::tclib::TC_API_COMMON_SUCCESS);
-  TcLibModule::stub_loadtcLibModule();
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbrmomgr;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   cout << "ctr_id1:" << ctr_id1<<endl;
   key_vbr *key;
@@ -2299,9 +2301,12 @@ TEST_F(VbrMoMgrTest, GetRenamedUncKey) {
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
+
+  delete ikey;
+  free(ctr_id1);
 }
 
-TEST(VbrMoMgr, GetRenamedControllerKey1) {
+TEST_F(VbrMoMgrTest, GetRenamedControllerKey_01) {
   ConfigKeyVal *ikey = NULL;
   VbrMoMgr vbr;
   controller_domain *ctrl_domain = NULL;
@@ -2310,41 +2315,39 @@ TEST(VbrMoMgr, GetRenamedControllerKey1) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetRenamedControllerKey(ikey,UPLL_DT_STATE,dmi,ctrl_domain));
 }
 
-TEST(VbrMoMgr, GetRenamedControllerKey2) {
+TEST_F(VbrMoMgrTest, GetRenamedControllerKey_02) {
   VbrMoMgr vbr;
-  controller_domain *ctrl_domain = new controller_domain();
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  controller_domain ctrl_domain;
+  memset(&ctrl_domain, 0, sizeof(ctrl_domain));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalDmlIntf *dmi = new DalOdbcMgr;
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key_vbr);
 
   SET_USER_DATA_FLAGS(ikey, 0x01);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetRenamedControllerKey(ikey,UPLL_DT_CANDIDATE,dmi,ctrl_domain));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            vbr.GetRenamedControllerKey(ikey, UPLL_DT_CANDIDATE, dmi,
+                                        &ctrl_domain));
+
+  delete ikey;
 }
 
-TEST_F(VbrMoMgrTest, GetRenamedControllerKey) {
-  DalOdbcMgr::clearStubData();
+TEST_F(VbrMoMgrTest, GetRenamedControllerKey_03) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,unc::tclib::TC_API_COMMON_SUCCESS);
-  TcLibModule::stub_loadtcLibModule();
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbrmomgr;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   cout << "ctr_id1:" << ctr_id1<<endl;
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
   cout << "dom_id1:" << dom_id1<<endl;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = ctr_id1;
-  ctrlr_dom.domain = dom_id1;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
@@ -2354,129 +2357,129 @@ TEST_F(VbrMoMgrTest, GetRenamedControllerKey) {
   ctrlr_dom1.ctrlr = ctr_id1;
   ctrlr_dom1.domain = NULL;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom1));
+
+  delete ikey;
+  free(ctr_id1);
+  free(dom_id1);
 }
 
-TEST(GetRenamedControllerKey, GetRenamedControllerKey_01) {
-  DalOdbcMgr::clearStubData();
+TEST_F(VbrMoMgrTest, GetRenamedControllerKey_04) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,unc::tclib::TC_API_COMMON_SUCCESS);
-  TcLibModule::stub_loadtcLibModule();
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
-  key_vbr_t *keyvbr = (key_vbr_t *)malloc(sizeof(key_vbr_t));
-  val_vbr_t *valVbr = (val_vbr_t *)malloc(sizeof(val_vbr_t));
+  key_vbr_t *keyvbr(ZALLOC_TYPE(key_vbr_t));
+  val_vbr_t *valVbr(ZALLOC_TYPE(val_vbr_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, valVbr);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, keyvbr, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   cout << "ctr_id1:" << ctr_id1<<endl;
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
   cout << "dom_id1:" << dom_id1<<endl;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = ctr_id1;
-  ctrlr_dom.domain = dom_id1;
   controller_domain ctrlr_dom1;
   ctrlr_dom1.ctrlr = ctr_id1;
   ctrlr_dom1.domain = NULL;
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom1));
+
+  delete ikey;
+  free(ctr_id1);
+  free(dom_id1);
 }
 
-TEST(VbrMoMgr, GetControllerDomainId1) {
+TEST_F(VbrMoMgrTest, GetControllerDomainId1) {
   VbrMoMgr vbr;
-  controller_domain *ctrl_domain = new controller_domain();
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  controller_domain ctrl_domain;
+  memset(&ctrl_domain, 0, sizeof(ctrl_domain));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key_vbr);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetControllerDomainId(ikey,ctrl_domain));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrl_domain));
+
+  delete ikey;
 }
 
-TEST(VbrMoMgr, GetControllerDomainId2) {
+TEST_F(VbrMoMgrTest, GetControllerDomainId2) {
   VbrMoMgr vbr;
-  controller_domain *ctrl_domain = new controller_domain();
+  controller_domain ctrl_domain;
+  memset(&ctrl_domain, 0, sizeof(ctrl_domain));
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetControllerDomainId(ikey,ctrl_domain));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetControllerDomainId(ikey, &ctrl_domain));
 }
-TEST(VbrMoMgr, GetControllerDomainId3) {
+
+TEST_F(VbrMoMgrTest, GetControllerDomainId3) {
   VbrMoMgr vbr;
   controller_domain *ctrl_domain = NULL;
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetControllerDomainId(ikey,ctrl_domain));
+
+  delete ikey;
 }
 
-TEST(VbrMoMgr, GetControllerDomainId4) {
+TEST_F(VbrMoMgrTest, GetControllerDomainId4) {
   VbrMoMgr vbr;
-  controller_domain *ctrl_domain = new controller_domain();
-  val_vbr *vbr_val = (val_vbr_t *)(malloc(sizeof(val_vbr_t)));
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
-
-  strcpy((char *)vbr_val->controller_id, (char*)"");
-  strcpy ((char*)vbr_val->vbr_description, (char *)"vbrcompleted");
- // vbr_val->dhcp_relay_admin_status = UPLL_ADMIN_ENABLE;
-
-  vbr_val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
-  vbr_val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
-  //vbr_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VBR] = UNC_VF_VALID;
-
+  controller_domain ctrl_domain;
+  memset(&ctrl_domain, 0, sizeof(ctrl_domain));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, vbr_val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, NULL);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey,ctrl_domain));
-}
-TEST(VbrMoMgr, GetControllerDomainId5) {
-  VbrMoMgr vbr;
-  controller_domain *ctrl_domain = new controller_domain();
-  val_vbr *vbr_val = (val_vbr_t *)(malloc(sizeof(val_vbr_t)));
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
-
-  strcpy((char *)vbr_val->controller_id, (char*)"one");
-  strcpy ((char*)vbr_val->vbr_description, (char *)"vbrcompleted");
-//  vrt_val->dhcp_relay_admin_status = UPLL_ADMIN_ENABLE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrl_domain));
 
-  vbr_val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
-  vbr_val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
-//  vrt_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] = UNC_VF_VALID;
+  delete ikey;
+}
 
+TEST_F(VbrMoMgrTest, GetControllerDomainId5) {
+  VbrMoMgr vbr;
+  controller_domain ctrl_domain;
+  memset(&ctrl_domain, 0, sizeof(ctrl_domain));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, NULL);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey,ctrl_domain));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrl_domain));
+
+  delete ikey;
 }
 
-TEST(GetControllerDomainId,InvalidVal){
+TEST_F(VbrMoMgrTest, GetControllerDomainId_InvalidVal){
   VbrMoMgr vbr;
-  key_vbr *key= (key_vbr *)malloc(sizeof(key_vbr));
-  val_vbr *val =(val_vbr *)malloc(sizeof(val_vbr));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
+  val_vbr *val(ZALLOC_TYPE(val_vbr));
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_VALID;
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_VALID;
-  strlen(reinterpret_cast<char*>(val->controller_id));
-  strlen(reinterpret_cast<char*>(val->domain_id));
-  controller_domain *ctrlr_dom =(controller_domain *)malloc(sizeof(controller_domain));
+  pfc_strlcpy(reinterpret_cast<char *>(val->controller_id), "pfc1",
+              sizeof(val->controller_id));
+  pfc_strlcpy(reinterpret_cast<char *>(val->domain_id), "dom1",
+              sizeof(val->domain_id));
+  controller_domain ctrlr_dom;
+  memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetControllerDomainId(ikey,ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrlr_dom));
+
+  delete ikey;
 }
 
-TEST(GetControllerDomainId,SetDomainData){
+TEST_F(VbrMoMgrTest, GetControllerDomainId_SetDomainData){
   VbrMoMgr vbr;
-  key_vbr *key= (key_vbr *)malloc(sizeof(key_vbr));
-  val_vbr *val =(val_vbr *)malloc(sizeof(val_vbr));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
+  val_vbr *val(ZALLOC_TYPE(val_vbr));
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_VALID;
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_VALID;
-   const char  *controller_id = "pfc1";
-   const char  *domain_id = "dom1";
-  strlen(reinterpret_cast<char*>(val->controller_id));
-  strlen(reinterpret_cast<char*>(val->domain_id));
-  controller_domain *ctrlr_dom =(controller_domain *)malloc(sizeof(controller_domain));
+  pfc_strlcpy(reinterpret_cast<char *>(val->controller_id), "pfc1",
+              sizeof(val->controller_id));
+  pfc_strlcpy(reinterpret_cast<char *>(val->domain_id), "dom1",
+              sizeof(val->domain_id));
+  controller_domain ctrlr_dom;
+  memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
@@ -2484,254 +2487,324 @@ TEST(GetControllerDomainId,SetDomainData){
                             key, cfgval);
 
   SET_USER_DATA_CTRLR(ikey,val->controller_id)
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetControllerDomainId(ikey,ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrlr_dom));
+
+  delete ikey;
 }
 
+TEST_F(VbrMoMgrTest, GetRenameInfo1) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
 
-TEST(VbrMoMgr, GetRenameInfo1) {
   VbrMoMgr vbr;
   bool no_rename = false;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(NULL, okey, rename_info, NULL, NULL, no_rename));
 }
-TEST(VbrMoMgr, GetRenameInfo2) {
+
+TEST_F(VbrMoMgrTest, GetRenameInfo2) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = false;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, NULL, NULL, no_rename));
+
+  delete ikey;
+  delete rename_info;
 }
-TEST(VbrMoMgr, GetRenameInfo3) {
+
+TEST_F(VbrMoMgrTest, GetRenameInfo3) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = false;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"vtn1)");
   strcpy((char*)val->ctrlr_vnode_name, "vnode1");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
-TEST(VbrMoMgr, GetRenameInfo4) {
+
+TEST_F(VbrMoMgrTest, GetRenameInfo4) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = true;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"");
   strcpy((char*)val->ctrlr_vnode_name, "vnode1");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
-TEST(VbrMoMgr, GetRenameInfo5) {
+
+TEST_F(VbrMoMgrTest, GetRenameInfo5) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = true;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
 
-TEST(VbrMoMgr, GetRenameInfo6) {
+TEST_F(VbrMoMgrTest, GetRenameInfo6) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = false;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
 
-TEST(VbrMoMgr, GetRenameInfo7) {
+TEST_F(VbrMoMgrTest, GetRenameInfo7) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = false;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
 
-TEST(VbrMoMgr, GetRenameInfo8) {
+TEST_F(VbrMoMgrTest, GetRenameInfo8) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = true;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
 
-TEST(VbrMoMgr, GetRenameInfo9) {
+TEST_F(VbrMoMgrTest, GetRenameInfo9) {
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+
   VbrMoMgr vbr;
   bool no_rename = true;
-  ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
   const char * ctrlr_name = "ctrlr1";
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1`");
   strcpy((char *)key_vbr->vbridge_name, (char *)"");
-  val_rename_vnode_t *val =  (val_rename_vnode_t *) (malloc(sizeof(val_rename_vnode_t)));
+  val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
   strcpy((char*)val->ctrlr_vtn_name,"vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  okey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr);
+
+  key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+                                      key_vbr1));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+
+  delete ikey;
+  delete okey;
+  delete rename_info;
 }
 
-TEST(VbrMoMgr, IsReferenced1) {
+TEST_F(VbrMoMgrTest, IsReferenced1) {
   VbrMoMgr vbr;
-  DalDmlIntf *dmi = new DalOdbcMgr;
-  UpllConfigMgr *upll_obj = UpllConfigMgr::GetUpllConfigMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                                         IpctSt::kIpcStKeyVbr,
                                         NULL, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsReferenced(ikey, UPLL_DT_STATE, dmi));
+
+  delete ikey;
 }
 
-TEST(VbrMoMgr, IsReferenced2) {
+TEST_F(VbrMoMgrTest, IsReferenced2) {
   VbrMoMgr vbr;
-  DalDmlIntf *dmi = new DalOdbcMgr;
-  UpllConfigMgr *upll_obj = UpllConfigMgr::GetUpllConfigMgr();
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
-  val_vbr *val;
-
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, NULL);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                                         IpctSt::kIpcStKeyVbr,
                                         key_vbr, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsReferenced(ikey, UPLL_DT_STATE, dmi));
+
+  delete ikey;
 }
-TEST(VbrMoMgr, UpdateAuditConfigStatus1) {
+
+TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus1) {
   VbrMoMgr vbr;
   ConfigKeyVal *ikey =NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.UpdateAuditConfigStatus(UNC_CS_APPLIED,uuc::kUpllUcpCreate, ikey));
 }
-TEST(VbrMoMgr, UpdateAuditConfigStatus2) {
-  VbrMoMgr vbr;
-  val_vbr_t *val = reinterpret_cast<val_vbr_t *>
-                   (malloc(sizeof(val_vbr_t)));
-  memset(val, 0, sizeof(val_vbr_t));
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr,
-                                 val);
+TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus2) {
+  VbrMoMgr vbr;
+  val_vbr_t *val(ZALLOC_TYPE(val_vbr_t));
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, NULL,tmp);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,uuc::kUpllUcpCreate, ikey));
+
+  delete ikey;
 }
-TEST(VbrMoMgr, UpdateAuditConfigStatus3) {
+
+TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus3) {
   VbrMoMgr vbr;
-  val_vbr_t *val = reinterpret_cast<val_vbr_t *>
-                   (malloc(sizeof(val_vbr_t)));
-  memset(val, 0, sizeof(val_vbr_t));
+  val_vbr_t *val(ZALLOC_TYPE(val_vbr_t));
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_VALID;
   val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
   //val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] = UNC_VF_VALID;
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr,
-                                 val);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, NULL,tmp);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,uuc::kUpllUcpCreate, ikey));
   val_vbr_t *output = reinterpret_cast<val_vbr_t *> (GetVal(ikey));
   EXPECT_EQ(UNC_CS_INVALID,output->cs_attr[0]);
+
+  delete ikey;
 }
 
-TEST(VbrMoMgr, SwapKeyVal1) {
+TEST_F(VbrMoMgrTest, SwapKeyVal1) {
   VbrMoMgr vbr;
   ConfigKeyVal *key = NULL;
   bool no_rename = false;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(NULL, key, NULL, NULL, no_rename));
 }
 
-TEST(VbrMoMgr, SwapKeyVal2) {
+TEST_F(VbrMoMgrTest, SwapKeyVal2) {
   VbrMoMgr vbr;
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge1");
 
@@ -2739,12 +2812,14 @@ TEST(VbrMoMgr, SwapKeyVal2) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr, key_vbr);
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.SwapKeyVal(ikey, okey, NULL, NULL, no_rename));
+
   delete ikey;
+  delete okey;
 }
 
-TEST(VbrMoMgr, SwapKeyVal3) {
+TEST_F(VbrMoMgrTest, SwapKeyVal3) {
   VbrMoMgr vbr;
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge1");
 
@@ -2756,48 +2831,38 @@ TEST(VbrMoMgr, SwapKeyVal3) {
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(ikey, okey, NULL, NULL, no_rename));
-  delete ikey;
-}
 
-TEST(VbrMoMgr, SwapKeyVal4) {
-  VbrMoMgr vbr;
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
-  strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
-  strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge1");
-
-  bool no_rename = false;
-  ConfigKeyVal *okey = NULL;
-  val_rename_vbr *vbr_rename_val = (val_rename_vbr *)(malloc(sizeof(val_rename_vbr)));
+  delete ikey;
+  delete okey;
 }
 
-TEST(VbrMoMgr,IsHostAddrAndPrefixLenInUse1 ){
+TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse1){
   VbrMoMgr vbr;
   DalDmlIntf *dmi= NULL;
-  key_vbr *key= (key_vbr *)malloc(sizeof(key_vbr));
-  val_vbr *val =(val_vbr *)malloc(sizeof(val_vbr));
-
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
+  val_vbr *val(ZALLOC_TYPE(val_vbr));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
+  pfc_strlcpy(reinterpret_cast<char *>(key->vtn_key.vtn_name), "vtn_name1",
+              sizeof(key->vtn_key.vtn_name));
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ckv = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key, cfgval);
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsHostAddrAndPrefixLenInUse(ckv,dmi,req));
+
+  delete ckv;
 }
-TEST(VbrMoMgr, SwapKeyVal7) {
+
+TEST_F(VbrMoMgrTest, SwapKeyVal7) {
   VbrMoMgr vbr;
-  key_vbr_t *key_vbr = (key_vbr_t *)(malloc(sizeof(key_vbr_t)));
+  key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge1");
   const char * ctrlr_name = "ctrlr1";
-  UpllConfigMgr *upll_obj = UpllConfigMgr::GetUpllConfigMgr();
   bool no_rename = false;
   ConfigKeyVal *okey = NULL;
-  DalDmlIntf *dmi = NULL;
-  dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  val_rename_vbr *vbr_rename_val = (val_rename_vbr *)(malloc(sizeof(val_rename_vbr)));
+  val_rename_vbr *vbr_rename_val(ZALLOC_TYPE(val_rename_vbr));
   strcpy((char *)vbr_rename_val->new_name, (char*)"hhh");
   vbr_rename_val->valid[UPLL_IDX_NEW_NAME_RVRT] =  UNC_VF_VALID;
 
@@ -2806,99 +2871,106 @@ TEST(VbrMoMgr, SwapKeyVal7) {
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVrt, key_vbr, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SwapKeyVal(ikey, okey, dmi, (uint8_t *)ctrlr_name, no_rename));
-  delete ikey;
-  }
-
-
 
+  delete ikey;
+}
 
-TEST(VbrMoMgr,IsHostAddrAndPrefixLenInUse2 ){
+TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse2){
   VbrMoMgr vbr;
   DalDmlIntf *dmi= NULL;
-  key_vbr *key= (key_vbr *)malloc(sizeof(key_vbr));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
   strcpy((char *)key->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key->vbridge_name, (char *)"vbridge1");
-  val_vbr_t *val =(val_vbr_t *)malloc(sizeof(val_vbr_t));
-  memset(val, 0, sizeof(val_vbr));
+
+  val_vbr_t *val(ZALLOC_TYPE(val_vbr_t));
   val->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_INVALID;
   val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_INVALID;
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
-
+  IPC_REQ_RESP_HEADER_DECL(req);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ckv = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key, cfgval);
   EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsHostAddrAndPrefixLenInUse(ckv,dmi,req));
-}
 
+  delete ckv;
+}
 
-TEST(VbrMoMgr,CtrlrIdAndDomainIdUpdationCheck2){
+TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck2){
   VbrMoMgr vbr;
-  key_vbr *key= (key_vbr *)malloc(sizeof(key_vbr));
-  val_vbr *val= (val_vbr *)malloc(sizeof(val_vbr));
- val_vbr *val1= (val_vbr *)malloc(sizeof(val_vbr));
+  key_vbr *key(ZALLOC_TYPE(key_vbr));
+  val_vbr *val(ZALLOC_TYPE(val_vbr));
 
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
-
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_INVALID;
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbr, val1);
-  ConfigKeyVal *ckey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval1);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CtrlrIdAndDomainIdUpdationCheck (ikey,ckey));
+
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(ZALLOC_TYPE(val_vbr));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ckey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                      key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CtrlrIdAndDomainIdUpdationCheck(ikey, ckey));
+
+  delete ikey;
+  delete ckey;
 }
-TEST(VbrMoMgr,CtrlrIdAndDomainIdUpdationCheck3){
+
+TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck3){
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
-
   GetKeyValStruct(key, val);
- val_vbr *val1;
 
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
-
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_VALID;
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbr, val1);
-  ConfigKeyVal *ckey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval1);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.CtrlrIdAndDomainIdUpdationCheck (ikey,ckey));
-}
 
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_01) {
+  key_vbr *key1(UT_CLONE(key_vbr, key));
+  val_vbr *val1(ZALLOC_TYPE(val_vbr));
+  pfc_strlcpy(reinterpret_cast<char *>(val1->domain_id), "dom1",
+              sizeof(val1->domain_id));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ckey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+                                      key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+            vbr.CtrlrIdAndDomainIdUpdationCheck(ikey, ckey));
+
+  delete ikey;
+  delete ckey;
+}
 
+TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_01) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
 
   GetKeyValStruct(key, val);
   unc_keytype_operation_t operation= UNC_OP_CREATE;
-  const uint8_t *attrs;
-  attrs[unc::capa::vbr::kCapDomainId] == 0;
+  uint8_t attrs[8];
+  memset(attrs, 0xff, sizeof(attrs));
+  attrs[unc::capa::vbr::kCapDomainId] = 0;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_02) {
 
+TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_02) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
 
   GetKeyValStruct(key, val);
   unc_keytype_operation_t operation= UNC_OP_CREATE;
-  const uint8_t *attrs;
+  uint8_t attrs[8];
+  memset(attrs, 0xff, sizeof(attrs));
+  attrs[unc::capa::vbr::kCapDomainId] = 0;
+  
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_VALID;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
@@ -2907,36 +2979,36 @@ TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_02) {
   delete ikey;
 }
 
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_03) {
-
+TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_03) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
 
   GetKeyValStruct(key, val);
   unc_keytype_operation_t operation= UNC_OP_CREATE;
- uint8_t *attrs;
+  uint8_t attrs[8];
+  memset(attrs, 0xff, sizeof(attrs));
+  attrs[unc::capa::vbr::kCapDesc] = 0;
   val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
-  attrs[unc::capa::vbr::kCapDomainId];
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
   delete ikey;
 }
-TEST(ValVbrAttributeSupportCheck, ValVbrAttributeSupportCheck_04) {
 
+TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_04) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
 
   GetKeyValStruct(key, val);
-  unc_keytype_operation_t operation;
-  val->valid[UPLL_IDX_DESC_VBR] == UNC_VF_VALID;
-  const uint8_t *attrs;
+  unc_keytype_operation_t operation(UNC_OP_READ);
+  val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
+  uint8_t attrs[8];
+  memset(attrs, 0xff, sizeof(attrs));
+  attrs[unc::capa::vbr::kCapDesc] = 0;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
   delete ikey;
 }
-
-}
index 896b929bb06e7d387cc0dd3f5f354f9b63b33c93..af9dfad485e609d0d093ccbfcb5cbd5fad3575b5 100644 (file)
@@ -1,26 +1,27 @@
- /*
-  * Copyright (c) 2012-2013 NEC Corporation
-  * All rights reserved.
-  *
-  * This program and the accompanying materials are made available under the
-  * terms of the Eclipse Public License v1.0 which accompanies this
-  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-  */
-
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #include <limits.h>
 #include <gtest/gtest.h>
-#include "vtn_momgr.hh"
-#include "vbr_if_momgr.hh"
-#include "momgr_impl.hh"
-#include "config_mgr.hh"
-#include "momgr_intf.hh"
-#include "dal_odbc_mgr.hh"
-#include "dal_dml_intf.hh"
-#include "capa_intf.hh"
-#include "capa_module_stub.hh"
-#include "tclib_module.hh"
-#include "dal_cursor.hh"
+#include <pfc/util.h>
+#include <vtn_momgr.hh>
+#include <vbr_if_momgr.hh>
+#include <momgr_impl.hh>
+#include <config_mgr.hh>
+#include <momgr_intf.hh>
+#include <dal_odbc_mgr.hh>
+#include <dal_dml_intf.hh>
+#include <capa_intf.hh>
+#include <capa_module_stub.hh>
+#include <tclib_module.hh>
+#include <dal_cursor.hh>
+#include "ut_util.hh"
 
 using ::testing::InitGoogleTest;
 using ::testing::Test;
@@ -29,6 +30,7 @@ using namespace unc::tclib;
 using namespace unc::upll::dal;
 using namespace unc::upll::kt_momgr;
 using namespace unc::upll::config_momgr;
+using namespace unc::upll::test;
 using namespace unc::capa;
 using namespace pfc::core;
 using namespace unc::upll::dal::schema::table;
@@ -37,65 +39,69 @@ namespace unc {
 namespace upll {
 namespace kt_momgr {
 
-void GetKeyValStruct(key_vtn *&kst, val_vtn *&vst) {
+class VtnMoMgrTest
+  : public UpllTestEnv
+{
+};
 
+static void GetKeyStruct(key_vtn *&kst)
+{
   const char *vtn_name = "VTN_1";
-  const char *desc = "thisisvbridge";
-  kst = reinterpret_cast<key_vtn *>(malloc
-                 (sizeof(key_vtn)));
-  memset(kst,0,sizeof(key_vtn));
+
+  kst = ZALLOC_TYPE(key_vtn);
   strncpy(reinterpret_cast<char *>(kst->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  vst = reinterpret_cast<val_vtn *>(malloc
-  (sizeof(val_vtn)));
-  memset(vst,0,sizeof(val_vtn));
+          vtn_name, strlen(vtn_name)+1);
+}
+
+static void GetKeyValStruct(key_vtn *&kst, val_vtn *&vst)
+{
+  GetKeyStruct(kst);
+
+  const char *desc = "thisisvbridge";
+  vst = ZALLOC_TYPE(val_vtn);
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
-    vst->valid[loop] = UNC_VF_VALID;
+          sizeof(vst->valid[0]); ++loop) {
+      vst->valid[loop] = UNC_VF_VALID;
   }
   vst->cs_row_status = UNC_VF_VALID;
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
-    vst->cs_attr[loop] = UNC_CS_APPLIED;
+          sizeof(vst->valid[0]); ++loop) {
+      vst->cs_attr[loop] = UNC_CS_APPLIED;
   }
   strncpy(reinterpret_cast<char *>(vst->description), desc,
-  strlen(desc)+1);
+          strlen(desc)+1);
 }
 
-void GetKeyValStructSt(key_vtn *&kst, val_vtn_st *&vst) {
-
+static void GetKeyValStructSt(key_vtn *&kst, val_vtn_st *&vst)
+{
   const char *vtn_name = "VTN_1";
   //const char *desc = "thisisvbridge";
-  kst = reinterpret_cast<key_vtn *>(malloc
-                 (sizeof(key_vtn)));
-  memset(kst,0,sizeof(key_vtn));
+  kst = ZALLOC_TYPE(key_vtn);
   strncpy(reinterpret_cast<char *>(kst->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  vst = reinterpret_cast<val_vtn_st *>(malloc
-  (sizeof(val_vtn_st)));
-  memset(vst,0,sizeof(val_vtn_st));
+          vtn_name, strlen(vtn_name)+1);
+  vst = ZALLOC_TYPE(val_vtn_st);
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-     sizeof(vst->valid[0]); ++loop) {
-    vst->valid[loop] = UNC_VF_VALID;
+          sizeof(vst->valid[0]); ++loop) {
+      vst->valid[loop] = UNC_VF_VALID;
   }
 }
 
-void createControllerInfo(const char* cntrlr_name,upll_keytype_datatype_t data_type,unc_keytype_ctrtype_t cntrl_type)
+static void createControllerInfo(const char* cntrlr_name,
+                                 upll_keytype_datatype_t data_type,
+                                 unc_keytype_ctrtype_t cntrl_type)
 {
-        const char*  version("version");
-        CtrlrMgr::Ctrlr ctrl(cntrlr_name,cntrl_type,version);
-        CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,data_type));
-        CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+    const char*  version("version");
+    CtrlrMgr::Ctrlr ctrl(cntrlr_name,cntrl_type,version);
+    CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl,data_type));
+    CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
 }
 
 /* GetRenameKeyBindInfo() */
 // Passing NULL
-TEST(GetRenameKeyBindInfo, outputNull) {
+TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_outputNull) {
   VtnMoMgr vtn;
-  DalOdbcMgr::clearStubData();
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,unc::tclib::TC_API_COMMON_SUCCESS);
-  TcLibModule::stub_loadtcLibModule();
+
   unc_key_type_t key_type = UNC_KT_VTN;
   BindInfo *bin = NULL;
   int nattr = 2;
@@ -105,7 +111,7 @@ TEST(GetRenameKeyBindInfo, outputNull) {
 }
 
 // Verify the nattr is filled with proper value
-TEST(GetRenameKeyBindInfo, nattrFill) {
+TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_nattrFill) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VTN;
   BindInfo *bin = NULL;
@@ -116,7 +122,7 @@ TEST(GetRenameKeyBindInfo, nattrFill) {
 }
 
 // Passing controller table to the function
-TEST(GetRenameKeyBindInfo, ctrlTbl) {
+TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_ctrlTbl) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VTN;
   BindInfo *bin = NULL;
@@ -127,7 +133,7 @@ TEST(GetRenameKeyBindInfo, ctrlTbl) {
 }
 
 // Passing rename table to the function
-TEST(GetRenameKeyBindInfo, renameTbl) {
+TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_renameTbl) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VTN;
   BindInfo *bin = NULL;
@@ -138,7 +144,7 @@ TEST(GetRenameKeyBindInfo, renameTbl) {
 }
 
 // Passing rename table to the function
-TEST(GetRenameKeyBindInfo, novtnkey) {
+TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_novtnkey) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VBRIDGE;
   BindInfo *bin = NULL;
@@ -149,41 +155,45 @@ TEST(GetRenameKeyBindInfo, novtnkey) {
 
 /* ValidateAttribute() */
 // Passing null value to the function
-TEST(ValidateAttribute, nullkey) {
+TEST_F(VtnMoMgrTest, ValidateAttribute_nullkey) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateAttribute(ikey, dmi)); //Bug 217
 }
 
 // Passing vtn key type to the function
-TEST(ValidateAttribute, keyVtn) {
+TEST_F(VtnMoMgrTest, ValidateAttribute_keyVtn) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateAttribute(ikey, dmi));
+
+  delete ikey;
 }
 
 // Passing other key type to the function
-TEST(ValidateAttribute, keyVtep) {
+TEST_F(VtnMoMgrTest, ValidateAttribute_keyVtep) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtep_t *keyVtep = (key_vtep_t *)malloc(sizeof(key_vtep_t));
-  val_vtep_t *valVtep = (val_vtep_t *)malloc(sizeof(val_vtep_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtep_t *keyVtep(ZALLOC_TYPE(key_vtep_t));
+  val_vtep_t *valVtep(ZALLOC_TYPE(val_vtep_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtep, valVtep);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep, keyVtep, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateAttribute(ikey, dmi));
+
+  delete ikey;
 }
 
 // Passing NULL key to the function
-TEST(IsValidKey, keyNull) {
+TEST_F(VtnMoMgrTest, IsValidKey_keyNull) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn = NULL;
   unsigned long index = 1;
@@ -191,52 +201,60 @@ TEST(IsValidKey, keyNull) {
 }
 
 // Passing the vtn name to the function
-TEST(IsValidKey, vtnName) {
+TEST_F(VtnMoMgrTest, IsValidKey_vtnName) {
   VtnMoMgr vtn;
   unsigned long index = 0;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
   EXPECT_EQ(true, vtn.IsValidKey(keyvtn, index));
+  free(keyvtn);
 }
 
 // To test the maximum length of vtn name using the function
-TEST(IsValidKey, vtnNameMax) {
+TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMax) {
   VtnMoMgr vtn;
   unsigned long index = 0;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  strcpy((char *)keyvtn->vtn_name,(const char *)"vtn1vtnvtnvtnvtnvtnvtnvtnvtnvtn");
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  pfc_strlcpy(reinterpret_cast<char *>(keyvtn->vtn_name),
+              "vtn1vtnvtnvtnvtnvtnvtnvtnvtnvtn", sizeof(keyvtn->vtn_name));
   EXPECT_EQ(true, vtn.IsValidKey(keyvtn, index));
+  free(keyvtn);
 }
 
 // To test the minimum length of vtn name using the function
-TEST(IsValidKey, vtnNameMin) {
+TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMin) {
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   unsigned long index = 0;
   strcpy((char *)keyvtn->vtn_name, (const char *)"1");
   EXPECT_EQ(true, vtn.IsValidKey(keyvtn, index));
+  free(keyvtn);
 }
 
 // To test exceeding the maximum length of vtn name using the function
-TEST(IsValidKey, vtnNameMaxExceeds) {
+TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMaxExceeds) {
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_ARRAY(key_vtn_t, 2));
   unsigned long index = 0;
-  strcpy((char *)keyvtn->vtn_name, (const char *)("vtnnkjdsokljhkjdsncvdsjkjdksdjjksd1"));
+  memcpy(keyvtn->vtn_name, "vtnnkjdsokljhkjdsncvdsjkjdksdjjksd1",
+         sizeof(keyvtn->vtn_name));
   EXPECT_EQ(false, vtn.IsValidKey(keyvtn, index));
+  free(keyvtn);
 }
 
 // To test the empty name of vtn name using the function
-TEST(IsValidKey, vtnNameEmpty) {
+TEST_F(VtnMoMgrTest, IsValidKey_vtnNameEmpty) {
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   unsigned long index = 0;
   strcpy((char *)keyvtn->vtn_name, (const char *)"");
   EXPECT_EQ(false, vtn.IsValidKey(keyvtn, index));
+  free(keyvtn);
 }
+
 /* GetValid() */
 // Passing NULL to the function
-TEST(GetValid, nullValue) {
+TEST_F(VtnMoMgrTest, GetValid_nullValue) {
   VtnMoMgr vtn;
   void *val = NULL;
   uint64_t index = uudst::vtn::kDbiVtnOperStatus;
@@ -248,246 +266,262 @@ TEST(GetValid, nullValue) {
 }
 
 // Passing operstatus to the function
-TEST(GetValid, operStatus) {
+TEST_F(VtnMoMgrTest, GetValid_operStatus) {
   VtnMoMgr vtn;
   void *val = NULL;
   uint64_t index = uudst::vtn::kDbiVtnOperStatus;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  val_vtn_st_t *vtn_valst = (val_vtn_st_t *)malloc(sizeof(val_vtn_st_t));
+  val_vtn_st_t *vtn_valst(ZALLOC_TYPE(val_vtn_st_t));
   vtn_valst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(vtn_valst);
 }
 
 // Passing alarmstatus to the function
-TEST(GetValid, alarmStatus) {
+TEST_F(VtnMoMgrTest, GetValid_alarmStatus) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnAlarmStatus;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  val_vtn_st_t *vtn_valst = (val_vtn_st_t *)malloc(sizeof(val_vtn_st_t));
+  val_vtn_st_t *vtn_valst(ZALLOC_TYPE(val_vtn_st_t));
   vtn_valst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(vtn_valst);
 }
 
 // Passing creationTime to the function
-TEST(GetValid, creationTime) {
+TEST_F(VtnMoMgrTest, GetValid_creationTime) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnCreationTime;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  val_vtn_st_t *vtn_valst = (val_vtn_st_t *)malloc(sizeof(val_vtn_st_t));
+  val_vtn_st_t *vtn_valst(ZALLOC_TYPE(val_vtn_st_t));
   vtn_valst->valid[UPLL_IDX_CREATION_TIME_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(vtn_valst);
 }
 
 // Passing lastUpdatedTime to the function
-TEST(GetValid, lastUpdatedTime) {
+TEST_F(VtnMoMgrTest, GetValid_lastUpdatedTime) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnLastUpdatedTime;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  val_vtn_st_t *vtn_valst = (val_vtn_st_t *)malloc(sizeof(val_vtn_st_t));
+  val_vtn_st_t *vtn_valst(ZALLOC_TYPE(val_vtn_st_t));
   vtn_valst->valid[UPLL_IDX_LAST_UPDATE_TIME_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(vtn_valst);
 }
 
 // Passing vtnName to the function
-TEST(GetValid, vtnName) {
+TEST_F(VtnMoMgrTest, GetValid_vtnName) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnName;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  val_vtn_t *val_vtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(val_vtn);
 }
 
 // Passing creationTime with DT_CANDIDATE to the function
-TEST(GetValid, creationTimeDtCandidate) {
+TEST_F(VtnMoMgrTest, GetValid_creationTimeDtCandidate) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnCreationTime;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
 
-  val_vtn_t *val_vtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  val_vtn->valid[UPLL_IDX_CREATION_TIME_VS] = UNC_VF_VALID;
-  val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
+  val_vtn_st_t *vtn_valst(ZALLOC_TYPE(val_vtn_st_t));
+  vtn_valst->valid[UPLL_IDX_CREATION_TIME_VS] = UNC_VF_VALID;
+  val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(vtn_valst);
 }
 
 // Passing description to the function
-TEST(GetValid, description) {
+TEST_F(VtnMoMgrTest, GetValid_description) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnDesc;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  val_vtn_t *val_vtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  free(val_vtn);
 }
 
 // Passing description to the function
-TEST(GetValid, descriptionRenameTbl) {
+TEST_F(VtnMoMgrTest, GetValid_descriptionRenameTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnDesc;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  val_vtn_t *val_vtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, RENAMETBL));
+  free(val_vtn);
 }
 
 // Passing description to the function
-TEST(GetValid, descriptionCtrlrTbl) {
+TEST_F(VtnMoMgrTest, GetValid_descriptionCtrlrTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnDesc;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  val_vtn_ctrlr_t *val_vtn_ctrlr = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+  val_vtn_ctrlr_t *val_vtn_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn_ctrlr->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn_ctrlr));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
+  free(val_vtn_ctrlr);
 }
 
 // Passing alarmstatus to the function
-TEST(GetValid, alarmStatusCtrlrTbl) {
+TEST_F(VtnMoMgrTest, GetValid_alarmStatusCtrlrTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnAlarmStatus;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  val_rename_vtn_t *val_rename_vtn = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
-  val_rename_vtn->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
-  val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_rename_vtn));
+  val_vtn_st_t *vtn_valst(ZALLOC_TYPE(val_vtn_st_t));
+  vtn_valst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
+  val = reinterpret_cast<void *>(vtn_valst);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
+  free(vtn_valst);
 }
 
 // Passing operstatus to the function
-TEST(GetValid, operStatusCtrlrTbl) {
+TEST_F(VtnMoMgrTest, GetValid_operStatusCtrlrTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
   unsigned long index = uudst::vtn::kDbiVtnAlarmStatus;
   uint8_t *valid;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  val_rename_vtn_t *val_rename_vtn = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *val_rename_vtn(ZALLOC_TYPE(val_rename_vtn_t));
   val_rename_vtn->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_rename_vtn));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
+  free(val_rename_vtn);
 }
 
 /* AllocVal() */
 //Passing empty configval
-TEST(AllocVal, emptyval) {
+TEST_F(VtnMoMgrTest, AllocVal_emptyval) {
   VtnMoMgr vtn;
   ConfigVal *cfg_val = NULL;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
   MoMgrTables tbl=MAINTBL;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AllocVal(cfg_val, dtType, tbl));
+  delete cfg_val;
 }
 
 // Passing configval to the function
-TEST(AllocVal, invalidObj) {
+TEST_F(VtnMoMgrTest, AllocVal_invalidObj) {
   VtnMoMgr vtn;
-  val_vtn_t *val_vtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtnSt, val_vtn);//Invalid st_num
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, MAINTBL));
+  delete cfg_val;
 }
 
 // Passing DT_RUNNING to the function
-TEST(AllocVal, valVtnMaintbl) {
+TEST_F(VtnMoMgrTest, AllocVal_valVtnMaintbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  val_vtn_t *val_vtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, MAINTBL));//Need to analyse
+  delete cfg_val;
 }
 
 // Passing DT_STATE to the function
-TEST(AllocVal, valVtnStMaintbl) {
+TEST_F(VtnMoMgrTest, AllocVal_valVtnStMaintbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  val_db_vtn_st *val_vtnst = (val_db_vtn_st *)malloc(sizeof(val_db_vtn_st));
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtnSt, val_vtnst);
+  val_db_vtn_st *vtn_valst(ZALLOC_TYPE(val_db_vtn_st));
+  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtnSt, vtn_valst);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, MAINTBL)); //Need to analyse
+  delete cfg_val;
 }
 
 // Passing RENAMETBL to the function
-TEST(AllocVal, valRenametbl) {
+TEST_F(VtnMoMgrTest, AllocVal_valRenametbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
   MoMgrTables tbl = RENAMETBL;
   ConfigVal *config_val=NULL;
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AllocVal(config_val, dtType, tbl));//Need to analyse
+  delete config_val;
 }
 
 // Passing CTRLRTBL to the function
-TEST(AllocVal, valCtrlrtbl) {
+TEST_F(VtnMoMgrTest, AllocVal_valCtrlrtbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
   MoMgrTables tbl = CTRLRTBL;
-  val_vtn_ctrlr_t *val_vtn_ctrlr = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+  val_vtn_ctrlr_t *val_vtn_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val_vtn_ctrlr);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, tbl));
-
+  delete cfg_val;
 }
 
-TEST(AllocVal, Error_defaultcase) {
+TEST_F(VtnMoMgrTest, AllocVal_Error_defaultcase) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   MoMgrTables tbl = MAX_MOMGR_TBLS;
   ConfigVal *cfg_val = NULL;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AllocVal(cfg_val, dtType, tbl));
-
+  delete cfg_val;
 }
 
 // Passing empty val to the function
-TEST(DupConfigKeyValVtnMapping, EmptyReqval) {
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnMapping_EmptyReqval) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey;
   ConfigKeyVal *req=NULL;
@@ -496,7 +530,7 @@ TEST(DupConfigKeyValVtnMapping, EmptyReqval) {
 }
 
 // Passing empty val to the function
-TEST(DupConfigKeyValVtnMapping, EmptyConfigval) {
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnMapping_EmptyConfigval) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey;
   ConfigKeyVal *req=NULL;
@@ -504,12 +538,13 @@ TEST(DupConfigKeyValVtnMapping, EmptyConfigval) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyValVtnMapping(okey, req));//Need to analyse
 }
 
-TEST(DupConfigKeyValVtnMapping, Configval) {
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnMapping_Configval) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey=NULL;
 
-  key_vtn_controller_t *key = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st *val = (val_vtn_mapping_controller_st *)malloc(sizeof(val_vtn_mapping_controller_st));
+  key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st *val
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key, config_val);
 
@@ -519,7 +554,7 @@ TEST(DupConfigKeyValVtnMapping, Configval) {
 }
 
 // Passing empty val to the function
-TEST(DupConfigKeyValVtnStation, EmptyReqval) {
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_EmptyReqval) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey=NULL;
   ConfigKeyVal *req=NULL;
@@ -529,12 +564,12 @@ TEST(DupConfigKeyValVtnStation, EmptyReqval) {
   delete req;
 }
 
-TEST(DupConfigKeyValVtnStation, Configval_kIpcStIpv4) {
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_kIpcStIpv4) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey=NULL;
 
-  key_vtn_controller_t *key = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
-  val_vtnstation_controller_st *val = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
+  key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtnstation_controller_st *val(ZALLOC_TYPE(val_vtnstation_controller_st));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStIpv4, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
 
@@ -542,12 +577,13 @@ TEST(DupConfigKeyValVtnStation, Configval_kIpcStIpv4) {
   delete okey;
   delete ikey;
 }
-TEST(DupConfigKeyValVtnStation, Configval_kIpcStIpv6) {
+
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_kIpcStIpv6) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey=NULL;
 
-  key_vtn_controller_t *key = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
-  val_vtnstation_controller_st *val = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
+  key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtnstation_controller_st *val(ZALLOC_TYPE(val_vtnstation_controller_st));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStIpv6, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
 
@@ -556,327 +592,354 @@ TEST(DupConfigKeyValVtnStation, Configval_kIpcStIpv6) {
   delete ikey;
 }
 
-TEST(DupConfigKeyValVtnStation, okey_NOT_NULL) {
+TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_okey_NOT_NULL) {
   VtnMoMgr vtn;
 
-  key_vtn_controller_t *key = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
-  val_vtnstation_controller_st *val = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
+  key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtnstation_controller_st *val(ZALLOC_TYPE(val_vtnstation_controller_st));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStIpv4, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
 
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
+  key_vtn_controller_t *key1(UT_CLONE(key_vtn_controller_t, key));
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key1, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyValVtnStation(okey, ikey));
   delete ikey;
-}
-
-// Passing val1 as NULL to the function
-TEST(FilterAttributes, val1Null) {
-  VtnMoMgr vtn;
-  void *val2 = NULL;
-  val_vtn_t *valVtn2 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  valVtn2->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn2));
-
-  EXPECT_EQ(UNC_VF_VALID, valVtn2->valid[UPLL_IDX_DESC_VTN]);
+  delete okey;
 }
 
 // Passing val2 as NULL to the function
-TEST(FilterAttributes, val2Null) {
+TEST_F(VtnMoMgrTest, FilterAttributes_val2Null) {
   VtnMoMgr vtn;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_CREATE;
 
-  val_vtn_t *valVtn1 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn1(ZALLOC_TYPE(val_vtn_t));
   valVtn1->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn1));
 
   vtn.FilterAttributes(val1, val2, audit_status, op);
   EXPECT_EQ(UNC_VF_INVALID, valVtn1->valid[UPLL_IDX_DESC_VTN]);
+  free(valVtn1);
 }
 
 // Passing audit_status as false to the function
-TEST(FilterAttributes, auditStatus) {
+TEST_F(VtnMoMgrTest, FilterAttributes_auditStatus) {
   VtnMoMgr vtn;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = false;
   unc_keytype_operation_t op = UNC_OP_CREATE;
 
-  val_vtn_t *valVtn1 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  val_vtn_t *valVtn2 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn1(ZALLOC_TYPE(val_vtn_t));
+  val_vtn_t *valVtn2(ZALLOC_TYPE(val_vtn_t));
   valVtn1->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn2));
 
   vtn.FilterAttributes(val1, val2, audit_status, op);
   EXPECT_EQ(UNC_VF_INVALID, valVtn1->valid[UPLL_IDX_DESC_VTN]);
+  free(valVtn1);
+  free(valVtn2);
 }
 
 // Passing valid flag to the function
-TEST(FilterAttributes, val1ValidFlag) {
+TEST_F(VtnMoMgrTest, FilterAttributes_val1ValidFlag) {
   VtnMoMgr vtn;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_CREATE;
 
-  val_vtn_t *valVtn1 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  val_vtn_t *valVtn2 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn1(ZALLOC_TYPE(val_vtn_t));
+  val_vtn_t *valVtn2(ZALLOC_TYPE(val_vtn_t));
   valVtn1->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn2));
 
   vtn.FilterAttributes(val1, val2, audit_status, op);
   EXPECT_EQ(UNC_VF_INVALID, valVtn1->valid[UPLL_IDX_DESC_VTN]);
+  free(valVtn1);
+  free(valVtn2);
 }
 
 // Passing valid flag with delete operation to the function
-TEST(FilterAttributes, val2ValidFlag) {
+TEST_F(VtnMoMgrTest, FilterAttributes_val2ValidFlag) {
   VtnMoMgr vtn;
   void *val1 = NULL;
   void *val2 = NULL;
   bool audit_status = true;
   unc_keytype_operation_t op = UNC_OP_DELETE;
 
-  val_vtn_t *valVtn1 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  val_vtn_t *valVtn2 = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn1(ZALLOC_TYPE(val_vtn_t));
+  val_vtn_t *valVtn2(ZALLOC_TYPE(val_vtn_t));
   valVtn2->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valVtn2));
 
   vtn.FilterAttributes(val1, val2, audit_status, op);
   EXPECT_EQ(UNC_VF_INVALID, valVtn2->valid[UPLL_IDX_DESC_VTN]);
+  free(valVtn1);
+  free(valVtn2);
 }
 
 // Passing NULL to the function
-TEST(ValidateVtnKey, nullVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnKey_nullVal) {
   VtnMoMgr vtn;
   key_vtn_t *keyVtn = NULL;
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyVtn));
 }
 
 // Testing the vtn name
-TEST(ValidateVtnKey, properVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnKey_properVal) {
   VtnMoMgr vtn;
-  key_vtn_t *keyVtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  strcpy((char*)keyVtn->vtn_name,(const char *)"vtn1");
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyVtn));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyvtn));
+  free(keyvtn);
 }
 
 // Testing the vtn name with minimum value
-TEST(ValidateVtnKey, minVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnKey_minVal) {
   VtnMoMgr vtn;
-  key_vtn_t *keyVtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  strcpy((char*)keyVtn->vtn_name,(const char *)"1");
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  strcpy((char*)keyvtn->vtn_name,(const char *)"1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyVtn));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyvtn));
+  free(keyvtn);
 }
 
 // Testing the vtn name with maximum value
-TEST(ValidateVtnKey, maxVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnKey_maxVal) {
   VtnMoMgr vtn;
-  key_vtn_t *keyVtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  strcpy((char*)keyVtn->vtn_name,(const char *)"vtnsddfkjlkssdklfjsdkladdassdd1");
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  pfc_strlcpy(reinterpret_cast<char *>(keyvtn->vtn_name),
+              "vtnsddfkjlkssdklfjsdkladdassdd1", sizeof(keyvtn->vtn_name));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyVtn));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyvtn));
+  free(keyvtn);
 }
 
 // Testing the vtn name with maximum value exceeds
-TEST(ValidateVtnKey, maxValExceeds) {
+TEST_F(VtnMoMgrTest, ValidateVtnKey_maxValExceeds) {
   VtnMoMgr vtn;
-  key_vtn_t *keyVtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  strcpy((char*)keyVtn->vtn_name,(const char *)"vtndfgdfddfrsdklfjsdklflsdsddfdfgdgfd1");
+  key_vtn_t *keyvtn(ZALLOC_ARRAY(key_vtn_t, 2));
+  memcpy(keyvtn->vtn_name, "vtndfgdfddfrsdklfjsdklflsdsddfdfgdgfd1",
+         sizeof(keyvtn->vtn_name));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyVtn));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyvtn));
+  free(keyvtn);
 }
 
 // Testing the vtn name with empty value
-TEST(ValidateVtnKey, emptyVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnKey_emptyVal) {
   VtnMoMgr vtn;
-  key_vtn_t *keyVtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  strcpy((char*)keyVtn->vtn_name,(const char *)"");
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  strcpy((char*)keyvtn->vtn_name,(const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyVtn));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyvtn));
+  free(keyvtn);
 }
 
 /* ValidateVtnValue() */
 // Passing NULL to the function
-TEST(ValidateVtnValue, invalidVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_invalidVal) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   uint32_t op = UNC_OP_CREATE;
   strcpy((char*)valVtn->description,(const char *)"");
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnValue(valVtn, op)); //Bug 250
+  free(valVtn);
 }
 
 // Testing the vtn description
-TEST(ValidateVtnValue, properVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_properVal) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   strcpy((char*)valVtn->description,(const char *)"ashd l1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with minimum value
-TEST(ValidateVtnValue, minVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_minVal) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   strcpy((char*)valVtn->description,(const char *)"1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with maximum value
-TEST(ValidateVtnValue, maxVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_maxVal) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  strcpy((char*)valVtn->description,(const char *)"vtnsddfkjlkssdklfjsdkladdassdd1");
+  pfc_strlcpy(reinterpret_cast<char *>(valVtn->description),
+              "vtnsddfkjlkssdklfjsdkladdassdd1", sizeof(valVtn->description));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with maximum value exceeds
-TEST(ValidateVtnValue, maxValExceeds) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_maxValExceeds) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_ARRAY(val_vtn_t, 2));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  strcpy((char*)valVtn->description,(const char *)"vtndfgjjj;j;j;j;jjjjjjjjjdfddfrsdklfjsdklflsdsddfdfgdgfd1");
+  memcpy(valVtn->description,
+         "vtndfgjjj;j;j;j;jjjjjjjjjdfddfrsdklfjsdklflsdsddfdfgdgfd1",
+         sizeof(valVtn->description));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with empty value
-TEST(ValidateVtnValue, emptyVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_emptyVal) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   strcpy((char*)valVtn->description,(const char *)"");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with invalid flag
-TEST(ValidateVtnValue, invalidFlag) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_invalidFlag) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
   strcpy((char*)valVtn->description,(const char *)"vtn1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with no value flag
-TEST(ValidateVtnValue, novalueFlagCreate) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_novalueFlagCreate) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID_NO_VALUE;
   strcpy((char*)valVtn->description,(const char *)"vtn1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with no value flag
-TEST(ValidateVtnValue, novalueFlagUpdate) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_novalueFlagUpdate) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_UPDATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID_NO_VALUE;
   strcpy((char*)valVtn->description,(const char *)"vtn1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
 // Testing the vtn description with invalid flag
-TEST(ValidateVtnValue, novalueFlagDelete) {
+TEST_F(VtnMoMgrTest, ValidateVtnValue_novalueFlagDelete) {
   VtnMoMgr vtn;
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_DELETE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID_NO_VALUE;
   strcpy((char*)valVtn->description,(const char *)"vtn1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  free(valVtn);
 }
 
-
 // Testing the vtn name
-TEST(ValidateVtnRenameValue, properVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_properVal) {
   VtnMoMgr vtn;
-  val_rename_vtn_t *valVtnRename = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
   strcpy((char*)valVtnRename->new_name,(const char *)"vtn1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  free(valVtnRename);
 }
 
 // Testing the vtn name with minimum value
-TEST(ValidateVtnRenameValue, minVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_minVal) {
   VtnMoMgr vtn;
-  val_rename_vtn_t *valVtnRename = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
   strcpy((char*)valVtnRename->new_name,(const char *)"1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  free(valVtnRename);
 }
 
 // Testing the vtn name with maximum value
-TEST(ValidateVtnRenameValue, maxVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_maxVal) {
   VtnMoMgr vtn;
-  val_rename_vtn_t *valVtnRename = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-  strcpy((char*)valVtnRename->new_name,(const char *)"vtnsddfkjlkssdklfjsdkladdassdd1");
+  pfc_strlcpy(reinterpret_cast<char *>(valVtnRename->new_name),
+              "vtnsddfkjlkssdklfjsdkladdassdd1",
+              sizeof(valVtnRename->new_name));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  free(valVtnRename);
 }
 
 // Testing the vtn name with maximum value exceeds
-TEST(ValidateVtnRenameValue, maxValExceeds) {
+TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_maxValExceeds) {
   VtnMoMgr vtn;
-  val_rename_vtn_t *valVtnRename = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *valVtnRename(ZALLOC_ARRAY(val_rename_vtn_t, 2));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-  strcpy((char*)valVtnRename->new_name,(const char *)"vtndfgdfddfrsdklfjsdklflsdsddfdfgdgfd1");
+  memcpy(valVtnRename->new_name,
+         "vtndfgdfddfrsdklfjsdklflsdsddfdfgdgfd1",
+         sizeof(valVtnRename->new_name));
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnRenameValue(valVtnRename));
+  free(valVtnRename);
 }
 
 // Testing the vtn name with empty value
-TEST(ValidateVtnRenameValue, emptyVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_emptyVal) {
   VtnMoMgr vtn;
-  val_rename_vtn_t *valVtnRename = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
   strcpy((char*)valVtnRename->new_name,(const char *)"");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnRenameValue(valVtnRename));
+  free(valVtnRename);
 }
 
 // Testing the vtn name with invalid flag
-TEST(ValidateVtnRenameValue, invalidFlag) {
+TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_invalidFlag) {
   VtnMoMgr vtn;
-  val_rename_vtn_t *valVtnRename = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_INVALID;
   strcpy((char*)valVtnRename->new_name,(const char *)"vtn1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  free(valVtnRename);
 }
 
 
 /* ValidateVtnMapCtrlrKey() */
 // Passing NULL to the function
-TEST(ValidateVtnMapCtrlrKey, nullVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_nullVal) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap = NULL;
 
@@ -884,98 +947,114 @@ TEST(ValidateVtnMapCtrlrKey, nullVal) {
 }
 
 // Testing the controller name and vtn name
-TEST(ValidateVtnMapCtrlrKey, properVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_properVal) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
   strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the controller name with minimum value and proper vtn name
-TEST(ValidateVtnMapCtrlrKey, ctrlNameMin) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameMin) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
   strcpy((char*)keyVtnMap->controller_name,(const char *)"1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the controller name with maximum value and proper vtn name
-TEST(ValidateVtnMapCtrlrKey, ctrlNameMax) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameMax) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"vtnstationcontrollersdklfjsdkl1");
+  pfc_strlcpy(reinterpret_cast<char *>(keyVtnMap->controller_name),
+              "vtnstationcontrollersdklfjsdkl1",
+              sizeof(keyVtnMap->controller_name));
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the controller name with maximum value exceeds and proper vtn name
-TEST(ValidateVtnMapCtrlrKey, ctrlNameMaxExceeds) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameMaxExceeds) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_ARRAY(key_vtn_controller_t, 2));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"vtnstationcontrollersdklfjsdklflsdsddf1");
+  memcpy(keyVtnMap->controller_name,
+         "vtnstationcontrollersdklfjsdklflsdsddf1",
+         sizeof(keyVtnMap->controller_name));
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the controller name with empty value and proper vtn name
-TEST(ValidateVtnMapCtrlrKey, ctrlNameempty) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameempty) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
   strcpy((char*)keyVtnMap->controller_name,(const char *)"");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the vtn name with minimum value and proper controller name
-TEST(ValidateVtnMapCtrlrKey, vtnNameMin) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameMin) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"1");
   strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the vtn name with maximum value and proper controller name
-TEST(ValidateVtnMapCtrlrKey, vtnNameMax) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameMax) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtnsdaflkjsdfhksdfgdghkshglkas1");
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
+  pfc_strlcpy(reinterpret_cast<char *>(keyVtnMap->vtn_key.vtn_name),
+              "vtnsdaflkjsdfhksdfgdghkshglkas1",
+              sizeof(keyVtnMap->vtn_key.vtn_name));
   strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the vtn name with maximum value exceeds and proper controller name
-TEST(ValidateVtnMapCtrlrKey, vtnNameMaxExceeds) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameMaxExceeds) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtnsdaflkjsdfhksdfghkjasdghkshglkask1");
+  key_vtn_controller_t *keyVtnMap(ZALLOC_ARRAY(key_vtn_controller_t, 2));
+  memcpy(keyVtnMap->vtn_key.vtn_name, "vtnsdaflkjsdfhksdfghkjasdghkshglkask1",
+         sizeof(keyVtnMap->vtn_key.vtn_name));
   strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 // Testing the vtn name with empty value and proper controller name
-TEST(ValidateVtnMapCtrlrKey, vtnNameEmpty) {
+TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameEmpty) {
   VtnMoMgr vtn;
-  key_vtn_controller_t *keyVtnMap = (key_vtn_controller_t *)malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"");
   strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  free(keyVtnMap);
 }
 
 /* ValidateVtnStnCtrlrKey() */
 // Passing NULL to the function
-TEST(ValidateVtnStnCtrlrKey, nullVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_nullVal) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn = NULL;
 
@@ -983,70 +1062,85 @@ TEST(ValidateVtnStnCtrlrKey, nullVal) {
 }
 
 // Testing the controller name
-TEST(ValidateVtnStnCtrlrKey, properVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_properVal) {
   VtnMoMgr vtn;
-  key_vtnstation_controller_t *keyVtnStn = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *keyVtnStn
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)keyVtnStn->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  free(keyVtnStn);
 }
 
-TEST(ValidateVtnStnCtrlrKey, UNC_OP_READ_SIBLING_COUNT) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_READ_SIBLING_COUNT) {
   VtnMoMgr vtn;
-  key_vtnstation_controller_t *keyVtnStn = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *keyVtnStn
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)keyVtnStn->controller_name,(const char *)"pfc1");
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_READ_SIBLING_COUNT));
+  free(keyVtnStn);
 }
 
 // Testing the controller name with minimum value
-TEST(ValidateVtnStnCtrlrKey, minVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_minVal) {
   VtnMoMgr vtn;
-  key_vtnstation_controller_t *keyVtnStn = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
-  strcpy((char*)keyVtnStn->controller_name,(const char *)"1");
+  key_vtnstation_controller_t *keyVtnStn
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  keyVtnStn->controller_name[0] = 'a';
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  free(keyVtnStn);
 }
 
 // Testing the controller name with maximum value
-TEST(ValidateVtnStnCtrlrKey, maxVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_maxVal) {
   VtnMoMgr vtn;
-  key_vtnstation_controller_t *keyVtnStn = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
-  strcpy((char*)keyVtnStn->controller_name,(const char *)"vtnstationcontrollhljhleouuuuuu");
+  key_vtnstation_controller_t *keyVtnStn
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  pfc_strlcpy(reinterpret_cast<char *>(keyVtnStn->controller_name),
+              "vtnstationcontrollhljhleouuuuuu",
+              sizeof(keyVtnStn->controller_name));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  free(keyVtnStn);
 }
 
 // Testing the controller name with maximum value exceeds
-TEST(ValidateVtnStnCtrlrKey, maxValExceeds) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_maxValExceeds) {
   VtnMoMgr vtn;
-  key_vtnstation_controller_t *keyVtnStn = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
-  strcpy((char*)keyVtnStn->controller_name,(const char *)"vtnstationcontrollersdklfjsdklflsdsddf1");
+  key_vtnstation_controller_t *keyVtnStn
+      (ZALLOC_ARRAY(key_vtnstation_controller_t, 2));
+  memcpy(keyVtnStn->controller_name, "vtnstationcontrollersdklfjsdklflsdsddf1",
+         sizeof(keyVtnStn->controller_name));
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  free(keyVtnStn);
 }
 
 // Testing the controller name with empty value
-TEST(ValidateVtnStnCtrlrKey, emptyVal) {
+TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_emptyVal) {
   VtnMoMgr vtn;
-  key_vtnstation_controller_t *keyVtnStn = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *keyVtnStn
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)keyVtnStn->controller_name,(const char *)"");
 
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  free(keyVtnStn);
 }
 
 /* ReadMo() */
-TEST(ReadMo, otherKT_detail) {
+TEST_F(VtnMoMgrTest, ReadMo_otherKT_detail) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_DETAIL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
@@ -1055,17 +1149,17 @@ TEST(ReadMo, otherKT_detail) {
 }
 
 //otherKT when option1 = UNC_OPT1_COUNT
-TEST(ReadMo, otherKT_count) {
+TEST_F(VtnMoMgrTest, ReadMo_otherKT_count) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_COUNT;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
@@ -1074,18 +1168,19 @@ TEST(ReadMo, otherKT_count) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
-TEST(ReadMo, Mapping_invaliddatatype) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_invaliddatatype) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping); 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
@@ -1094,18 +1189,19 @@ TEST(ReadMo, Mapping_invaliddatatype) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
-TEST(ReadMo, Mapping_invalidstnum) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_invalidstnum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping); 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
 
@@ -1114,18 +1210,19 @@ TEST(ReadMo, Mapping_invalidstnum) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
-TEST(ReadMo, Mapping_emptyvtnname) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_emptyvtnname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
@@ -1134,20 +1231,21 @@ TEST(ReadMo, Mapping_emptyvtnname) {
   delete ikey;
 }
 
-TEST(ReadMo, Mapping_valid) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_valid) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
   strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
   strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
@@ -1160,20 +1258,22 @@ TEST(ReadMo, Mapping_valid) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
-TEST(ReadMo, Mapping_invalid_01) {
+
+TEST_F(VtnMoMgrTest, ReadMo_mapping_invalid_01) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
   strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
   strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
@@ -1188,18 +1288,19 @@ TEST(ReadMo, Mapping_invalid_01) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has domain
-TEST(ReadMo, Mapping_withctrl_domain) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_withctrl_domain) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -1210,18 +1311,20 @@ TEST(ReadMo, Mapping_withctrl_domain) {
   delete ikey;
 }
 
-TEST(ReadMo, Station_invalidkeytype) {
+TEST_F(VtnMoMgrTest, ReadMo_Station_invalidkeytype) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -1230,18 +1333,20 @@ TEST(ReadMo, Station_invalidkeytype) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
-TEST(ReadMo, Station_invalidstnum) {
+TEST_F(VtnMoMgrTest, ReadMo_Station_invalidstnum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
 
@@ -1250,18 +1355,20 @@ TEST(ReadMo, Station_invalidstnum) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
-TEST(ReadMo, Station_emptyctrlrname) {
+TEST_F(VtnMoMgrTest, ReadMo_Station_emptyctrlrname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
   strcpy((char*)key_station->controller_name,(const char *)"");
@@ -1270,19 +1377,21 @@ TEST(ReadMo, Station_emptyctrlrname) {
   delete ikey;
 }
 
-TEST(ReadMo, Station_valid_01) {
+TEST_F(VtnMoMgrTest, ReadMo_Station_valid_01) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(key_station->controller_name,"pfc1", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1297,19 +1406,21 @@ TEST(ReadMo, Station_valid_01) {
   delete ikey;
 }
 
-TEST(ReadMo, Station_valid_02) {
+TEST_F(VtnMoMgrTest, ReadMo_Station_valid_02) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_COUNT;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(key_station->controller_name,"pfc1", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1323,19 +1434,22 @@ TEST(ReadMo, Station_valid_02) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
-TEST(ReadMo, Station_valid_03) {
+
+TEST_F(VtnMoMgrTest, ReadMo_Station_valid_03) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_COUNT;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(key_station->controller_name,"pfc1", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   memset(val_station, 0, sizeof(val_vtnstation_controller_st_t));
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, NULL);
 
@@ -1343,23 +1457,24 @@ TEST(ReadMo, Station_valid_03) {
   delete ikey;
 }
 
-TEST(ReadMo, mapping_valid_01) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_01) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1368,30 +1483,32 @@ TEST(ReadMo, mapping_valid_01) {
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
+  createControllerInfo("controller_name1", UPLL_DT_RUNNING, UNC_CT_PFC);
+
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
 
-TEST(ReadMo, mapping_valid_02) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_02) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1402,23 +1519,23 @@ TEST(ReadMo, mapping_valid_02) {
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
 
-TEST(ReadMo, mapping_valid_03) {
+TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_03) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_COUNT;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
   strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
   strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
@@ -1430,25 +1547,27 @@ TEST(ReadMo, mapping_valid_03) {
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
-TEST(ReadMo, mapping_valid_04) {
+
+TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_04) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1460,26 +1579,27 @@ TEST(ReadMo, mapping_valid_04) {
   createControllerInfo("controller_name1",UPLL_DT_RUNNING,UNC_CT_PFC);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ReadMo, mapping_valid_05) {
+
+TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_05) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1490,14 +1610,14 @@ TEST(ReadMo, mapping_valid_05) {
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
+
 /* ReadSiblingMo() */
 //otherKT when option1 = UNC_OPT1_DETAIL
-TEST(ReadSiblingMo, KT_VTN_detail) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_KT_VTN_detail) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1505,7 +1625,7 @@ TEST(ReadSiblingMo, KT_VTN_detail) {
   req->option1 = UNC_OPT1_DETAIL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
@@ -1513,10 +1633,10 @@ TEST(ReadSiblingMo, KT_VTN_detail) {
   delete ikey;
 }
 
-TEST(ReadSiblingMo, KT_VBRIDGE) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_KT_VBRIDGE) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1524,18 +1644,19 @@ TEST(ReadSiblingMo, KT_VBRIDGE) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vbr_t *keyvbr = (key_vbr_t *)malloc(sizeof(key_vbr_t));
+  key_vbr_t *keyvbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char*)keyvbr->vbridge_name,(const char *)"vbr1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, keyvbr, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
+
 //otherKT when option1 = UNC_OPT1_COUNT
-TEST(ReadSiblingMo, otherKT_count) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_count) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1543,7 +1664,7 @@ TEST(ReadSiblingMo, otherKT_count) {
   req->option1 = UNC_OPT1_COUNT;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
@@ -1552,10 +1673,10 @@ TEST(ReadSiblingMo, otherKT_count) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
-TEST(ReadSiblingMo, Mapping_invaliddatatype) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invaliddatatype) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1563,8 +1684,9 @@ TEST(ReadSiblingMo, Mapping_invaliddatatype) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
@@ -1573,10 +1695,10 @@ TEST(ReadSiblingMo, Mapping_invaliddatatype) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
-TEST(ReadSiblingMo, Mapping_invalidstnum) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invalidstnum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_STATE;
@@ -1584,8 +1706,9 @@ TEST(ReadSiblingMo, Mapping_invalidstnum) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
 
@@ -1594,10 +1717,10 @@ TEST(ReadSiblingMo, Mapping_invalidstnum) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
-TEST(ReadSiblingMo, Mapping_emptyvtnname) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_emptyvtnname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_STATE;
@@ -1605,8 +1728,9 @@ TEST(ReadSiblingMo, Mapping_emptyvtnname) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
@@ -1616,10 +1740,10 @@ TEST(ReadSiblingMo, Mapping_emptyvtnname) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has no ctrlr name
-TEST(ReadSiblingMo, Mapping_noctrlrname_nodomain) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_noctrlrname_nodomain) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_STATE;
@@ -1627,8 +1751,9 @@ TEST(ReadSiblingMo, Mapping_noctrlrname_nodomain) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -1637,11 +1762,12 @@ TEST(ReadSiblingMo, Mapping_noctrlrname_nodomain) {
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
+
 //UNC_KT_VTNSTATION_CONTROLLER has wrong dt_type
-TEST(ReadSiblingMo, station_invaliddatatype) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_station_invaliddatatype) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1649,8 +1775,10 @@ TEST(ReadSiblingMo, station_invaliddatatype) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -1659,10 +1787,10 @@ TEST(ReadSiblingMo, station_invaliddatatype) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
-TEST(ReadSiblingMo, Station_invalidstnum) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidstnum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_STATE;
@@ -1670,8 +1798,10 @@ TEST(ReadSiblingMo, Station_invalidstnum) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
 
@@ -1680,10 +1810,10 @@ TEST(ReadSiblingMo, Station_invalidstnum) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
-TEST(ReadSiblingMo, Station_emptyctrlrname) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_emptyctrlrname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_STATE;
@@ -1691,8 +1821,10 @@ TEST(ReadSiblingMo, Station_emptyctrlrname) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
   strcpy((char*)key_station->controller_name,(const char *)"");
@@ -1702,10 +1834,10 @@ TEST(ReadSiblingMo, Station_emptyctrlrname) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has invalid datatype
-TEST(ReadSiblingMo, Station_invaliddatatype) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invaliddatatype) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1713,8 +1845,10 @@ TEST(ReadSiblingMo, Station_invaliddatatype) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -1723,10 +1857,10 @@ TEST(ReadSiblingMo, Station_invaliddatatype) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has invalid operation
-TEST(ReadSiblingMo, Station_invalidop) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidop) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = false;
 
   req->datatype = UPLL_DT_STATE;
@@ -1734,8 +1868,10 @@ TEST(ReadSiblingMo, Station_invalidop) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -1743,12 +1879,11 @@ TEST(ReadSiblingMo, Station_invalidop) {
   delete ikey;
 }
 
-
 //otherKT when option1 = UNC_OPT1_DETAIL
-TEST(ReadSiblingMo, otherKT_detail_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_detail_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1756,7 +1891,7 @@ TEST(ReadSiblingMo, otherKT_detail_begin) {
   req->option1 = UNC_OPT1_DETAIL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
@@ -1765,10 +1900,10 @@ TEST(ReadSiblingMo, otherKT_detail_begin) {
 }
 
 //otherKT when option1 = UNC_OPT1_COUNT
-TEST(ReadSiblingMo, otherKT_count_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_count_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1776,7 +1911,7 @@ TEST(ReadSiblingMo, otherKT_count_begin) {
   req->option1 = UNC_OPT1_COUNT;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
@@ -1785,10 +1920,10 @@ TEST(ReadSiblingMo, otherKT_count_begin) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
-TEST(ReadSiblingMo, Mapping_invaliddatatype_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invaliddatatype_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1796,8 +1931,9 @@ TEST(ReadSiblingMo, Mapping_invaliddatatype_begin) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
@@ -1806,10 +1942,10 @@ TEST(ReadSiblingMo, Mapping_invaliddatatype_begin) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
-TEST(ReadSiblingMo, Mapping_invalidstnum_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invalidstnum_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -1817,8 +1953,9 @@ TEST(ReadSiblingMo, Mapping_invalidstnum_begin) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
 
@@ -1827,10 +1964,10 @@ TEST(ReadSiblingMo, Mapping_invalidstnum_begin) {
 }
 
 //UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
-TEST(ReadSiblingMo, Mapping_emptyvtnname_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_emptyvtnname_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -1838,8 +1975,9 @@ TEST(ReadSiblingMo, Mapping_emptyvtnname_begin) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
@@ -1848,10 +1986,10 @@ TEST(ReadSiblingMo, Mapping_emptyvtnname_begin) {
   delete ikey;
 }
 
-TEST(ReadSiblingMo, Mapping_01) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_01) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -1859,8 +1997,9 @@ TEST(ReadSiblingMo, Mapping_01) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -1870,14 +2009,14 @@ TEST(ReadSiblingMo, Mapping_01) {
   delete ikey;
 }
 
-TEST(ReadSiblingMo, Mapping_READ_SIBLING_BEGIN) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_READ_SIBLING_BEGIN) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -1885,11 +2024,12 @@ TEST(ReadSiblingMo, Mapping_READ_SIBLING_BEGIN) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1899,18 +2039,20 @@ TEST(ReadSiblingMo, Mapping_READ_SIBLING_BEGIN) {
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+            vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ReadSiblingMo, Mapping_READ) {
-  VtnMoMgr vtn;
+
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_READ) {
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+
+  VtnMoMgr vtn;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -1918,11 +2060,12 @@ TEST(ReadSiblingMo, Mapping_READ) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -1932,22 +2075,25 @@ TEST(ReadSiblingMo, Mapping_READ) {
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+            vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ReadSiblingMo, station_READ_SIBLING_BEGIN) {
+
+TEST_F(VtnMoMgrTest, ReadSiblingMo_station_READ_SIBLING_BEGIN) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -1956,10 +2102,10 @@ TEST(ReadSiblingMo, station_READ_SIBLING_BEGIN) {
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
-TEST(ReadSiblingMo, Station_invalidstnum_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidstnum_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -1967,8 +2113,10 @@ TEST(ReadSiblingMo, Station_invalidstnum_begin) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
 
@@ -1976,18 +2124,20 @@ TEST(ReadSiblingMo, Station_invalidstnum_begin) {
   delete ikey;
 }
 
-TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_01) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_READ_SIBLING_BEGIN_01) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc11");
   strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
   strcpy((char*)val_station->domain_id,(const char *)"dom1");
@@ -2003,10 +2153,10 @@ TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_01) {
   delete ikey;
 }
 
-TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_02) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_READ_SIBLING_BEGIN_02) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
@@ -2014,8 +2164,10 @@ TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_02) {
   req->option2 = UNC_OPT2_NONE;
   //unc_keytype_ctrtype_t ctrlrtype = UNC_CT_PFC;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc11");
   strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
   strcpy((char*)val_station->domain_id,(const char *)"dom1");
@@ -2031,18 +2183,20 @@ TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_02) {
   delete ikey;
 }
 
-TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_03) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_READ_SIBLING_BEGIN_03) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc11");
   strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
   strcpy((char*)val_station->domain_id,(const char *)"dom1");
@@ -2063,11 +2217,12 @@ TEST(ReadSiblingMo, Station_READ_SIBLING_BEGIN_03) {
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
+
 //UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
-TEST(ReadSiblingMo, Station_emptyctrlrname_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_emptyctrlrname_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -2075,21 +2230,23 @@ TEST(ReadSiblingMo, Station_emptyctrlrname_begin) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  strcpy((char*)key_station->controller_name,(const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug raised already
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+            vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
 //UNC_KT_VTNSTATION_CONTROLLER has invalid operation
-TEST(ReadSiblingMo, Station_invalidop_begin) {
+TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidop_begin) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
 
   req->datatype = UPLL_DT_STATE;
@@ -2097,8 +2254,10 @@ TEST(ReadSiblingMo, Station_invalidop_begin) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -2106,19 +2265,18 @@ TEST(ReadSiblingMo, Station_invalidop_begin) {
   delete ikey;
 }
 
-
-TEST(ReadSiblingCount, vtn) {
+TEST_F(VtnMoMgrTest, ReadSiblingCount_vtn) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_t *key_vtn = (key_vtn_t*) malloc(sizeof(key_vtn_t));
-  val_vtn_t *val_vtn = (val_vtn_t*)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key_vtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_vtn, config_val);
   strcpy((char*)key_vtn->vtn_name,(const char *)"vtn1");
@@ -2126,18 +2284,20 @@ TEST(ReadSiblingCount, vtn) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingCount(req, ikey, dmi));
   delete ikey;
 }
-TEST(ReadSiblingCount, vtnStation_01) {
-  VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
 
+TEST_F(VtnMoMgrTest, ReadSiblingCount_vtnStation_01) {
+  VtnMoMgr vtn;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
@@ -2146,18 +2306,19 @@ TEST(ReadSiblingCount, vtnStation_01) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ReadSiblingCount(req, ikey, dmi));
   delete ikey;
 }
-/* MappingvExtTovBr() */
 
-TEST(MappingvExtTovBr, vtnstation_02) {
+/* MappingvExtTovBr() */
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_02) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
   strcpy((char*)val_station->domain_id,(const char *)"dom1");
   strcpy((char*)val_station->vbr_name,(const char *)"vbr_name1");
@@ -2173,16 +2334,18 @@ TEST(MappingvExtTovBr, vtnstation_02) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
-TEST(MappingvExtTovBr, vtnstation_03) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_03) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -2205,14 +2368,16 @@ TEST(MappingvExtTovBr, vtnstation_03) {
 
   delete ikey;
 }
-TEST(MappingvExtTovBr, vtnstation_val_NULL) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_val_NULL) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, NULL);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
@@ -2221,20 +2386,22 @@ TEST(MappingvExtTovBr, vtnstation_val_NULL) {
 
   delete ikey;
 }
-TEST(MappingvExtTovBr, vtnstation_04) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_04) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -2256,20 +2423,21 @@ TEST(MappingvExtTovBr, vtnstation_04) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(MappingvExtTovBr, vtnstation_05) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_05) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -2286,22 +2454,23 @@ TEST(MappingvExtTovBr, vtnstation_05) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(MappingvExtTovBr, vtnstation_06) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_06) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -2318,18 +2487,19 @@ TEST(MappingvExtTovBr, vtnstation_06) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
+
 //when the key is UNC_KT_VTN_MAPPING_CONTROLLER and has invalid key st_num
-TEST(MappingvExtTovBr, mapping_invalidkeynum) {
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_invalidkeynum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, key_ctrlr, config_val);
 
@@ -2337,10 +2507,10 @@ TEST(MappingvExtTovBr, mapping_invalidkeynum) {
   delete ikey;
 }
 
-TEST(MappingvExtTovBr, ikey_No_value) {
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_ikey_No_value) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
@@ -2348,16 +2518,18 @@ TEST(MappingvExtTovBr, ikey_No_value) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
+
 //when the key is UNC_KT_VTN_MAPPING_CONTROLLER and without setting vbr valid flag
-TEST(MappingvExtTovBr, mapping_withoutvbrvalidflag) {
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_withoutvbrvalidflag) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
@@ -2366,15 +2538,16 @@ TEST(MappingvExtTovBr, mapping_withoutvbrvalidflag) {
 }
 
 //when the key is UNC_KT_VTN_MAPPING_CONTROLLER and with setting vbr valid flag
-TEST(MappingvExtTovBr, mapping_withoutvbrifvalidflag) {
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_withoutvbrifvalidflag) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   val_mapping->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
@@ -2382,15 +2555,17 @@ TEST(MappingvExtTovBr, mapping_withoutvbrifvalidflag) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
-TEST(MappingvExtTovBr, mapping_withvbrifvalidflag) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_withvbrifvalidflag) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
@@ -2405,19 +2580,21 @@ TEST(MappingvExtTovBr, mapping_withvbrifvalidflag) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
-TEST(MappingvExtTovBr, mapping_01) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_01) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
@@ -2433,18 +2610,19 @@ TEST(MappingvExtTovBr, mapping_01) {
   val_mapping->map_type = UPLL_IF_VLAN_MAP;
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(MappingvExtTovBr, mapping_02) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_02) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
@@ -2456,23 +2634,24 @@ TEST(MappingvExtTovBr, mapping_02) {
   val_mapping->valid[UPLL_IDX_VBR_IF_NAME_VMCS] = UNC_VF_VALID;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(MappingvExtTovBr, mapping_03) {
+
+TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_03) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  IPC_REQ_RESP_HEADER_DECL(req);
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint32_t count1=0;
   uint32_t *count=&count1;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
   strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
@@ -2484,28 +2663,28 @@ TEST(MappingvExtTovBr, mapping_03) {
   val_mapping->valid[UPLL_IDX_VBR_IF_NAME_VMCS] = UNC_VF_VALID;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
 
 /* ValidateMessageForVtnStnCtrlr */
 //when the configkeyval is null
-TEST(ValidateMessageForVtnStnCtrlr, ikeynull) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_ikeynull) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   ConfigKeyVal *ikey = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnStnCtrlr(req, ikey)); // Code has the fix now
   delete ikey;
 }
 
 //when the IpcReqRespHeader is null
-TEST(ValidateMessageForVtnStnCtrlr, reqnull) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_reqnull) {
   VtnMoMgr vtn;
   IpcReqRespHeader *req = NULL;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnStnCtrlr(req, ikey)); //Bug 404
@@ -2513,44 +2692,47 @@ TEST(ValidateMessageForVtnStnCtrlr, reqnull) {
 }
 
 //when invalid st_num
-TEST(ValidateMessageForVtnStnCtrlr, invalid_stnum) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_invalid_stnum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
   delete ikey;
 }
 
-TEST(ValidateMessageForVtnStnCtrlr, Invalid_option1) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_Invalid_option1) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1=(unc_keytype_option1_t)3;
   req->option2 = UNC_OPT2_NEIGHBOR;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
   delete ikey;
 }
 
-TEST(ValidateMessageForVtnStnCtrlr, Invalid_option2) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_Invalid_option2) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NEIGHBOR;
 
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
@@ -2559,12 +2741,14 @@ TEST(ValidateMessageForVtnStnCtrlr, Invalid_option2) {
 }
 
 //when valid stnum with ctrlr name
-TEST(ValidateMessageForVtnStnCtrlr, valid_stnum_ctrlname) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_valid_stnum_ctrlname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_STATE;
-  key_vtnstation_controller_t *key_station = (key_vtnstation_controller_t*) malloc(sizeof(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station = (val_vtnstation_controller_st_t*)malloc(sizeof(val_vtnstation_controller_st_t));
+  key_vtnstation_controller_t *key_station
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st_t *val_station
+      (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   strcpy((char*)key_station->controller_name,(const char *)"pfc1");
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
@@ -2573,21 +2757,22 @@ TEST(ValidateMessageForVtnStnCtrlr, valid_stnum_ctrlname) {
 }
 
 //when the configkeyval is null
-TEST(ValidateMessageForVtnMapCtrlr, ikeynull) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_ikeynull) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   ConfigKeyVal *ikey = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnMapCtrlr(req, ikey)); // Code has the fix now
   delete ikey;
 }
 
 //when the IpcReqRespHeader is null
-TEST(ValidateMessageForVtnMapCtrlr, reqnull) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_reqnull) {
   VtnMoMgr vtn;
   IpcReqRespHeader *req = NULL;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2597,17 +2782,18 @@ TEST(ValidateMessageForVtnMapCtrlr, reqnull) {
 }
 
 //when invalid st_num
-TEST(ValidateMessageForVtnMapCtrlr, invalid_stnum) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_stnum) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2617,17 +2803,18 @@ TEST(ValidateMessageForVtnMapCtrlr, invalid_stnum) {
 }
 
 //when valid stnum with empty ctrlr name and vtn name
-TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_emptyctrlvtnname) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyctrlvtnname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
@@ -2637,17 +2824,18 @@ TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_emptyctrlvtnname) {
 }
 
 //when valid stnum with empty ctrlr name
-TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_emptyctrlname) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyctrlname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2657,19 +2845,22 @@ TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_emptyctrlname) {
 }
 
 //when valid stnum with ctrlr name
-TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_ctrlname) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_ctrlname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  pfc_strlcpy(reinterpret_cast<char *>(key_ctrlr->domain_id), "dom1",
+              sizeof(key_ctrlr->domain_id));
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
   strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
@@ -2677,17 +2868,18 @@ TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_ctrlname) {
 }
 
 //when valid stnum with empty vtn name
-TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_emptyvtnname) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyvtnname) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
@@ -2696,17 +2888,18 @@ TEST(ValidateMessageForVtnMapCtrlr, valid_stnum_emptyvtnname) {
   delete ikey;
 }
 
-TEST(ValidateMessageForVtnMapCtrlr, invalid_option1) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_option1) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_DETAIL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2715,17 +2908,18 @@ TEST(ValidateMessageForVtnMapCtrlr, invalid_option1) {
   delete ikey;
 }
 
-TEST(ValidateMessageForVtnMapCtrlr, invalid_option2) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_option2) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NEIGHBOR;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2735,17 +2929,18 @@ TEST(ValidateMessageForVtnMapCtrlr, invalid_option2) {
 }
 
 //when invalid datatype
-TEST(ValidateMessageForVtnMapCtrlr, invalid_datatype) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_datatype) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_READ;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2755,17 +2950,18 @@ TEST(ValidateMessageForVtnMapCtrlr, invalid_datatype) {
 }
 
 //when invalid operation
-TEST(ValidateMessageForVtnMapCtrlr, invalid_operation) {
+TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_operation) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  key_vtn_controller_t *key_ctrlr = (key_vtn_controller_t*) malloc(sizeof(key_vtn_controller_t));
-  val_vtn_mapping_controller_st_t *val_mapping = (val_vtn_mapping_controller_st_t*)malloc(sizeof(val_vtn_mapping_controller_st_t));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
+  val_vtn_mapping_controller_st_t *val_mapping
+      (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
@@ -2775,8 +2971,7 @@ TEST(ValidateMessageForVtnMapCtrlr, invalid_operation) {
 }
 
 /* DupConfigKeyVal */
-
-TEST(DupConfigKeyVal, nullkey) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_nullkey) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   ConfigKeyVal *okey = NULL;
@@ -2787,27 +2982,31 @@ TEST(DupConfigKeyVal, nullkey) {
   delete okey;
 }
 
-TEST(DupConfigKeyVal, nonullokey) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_nonullokey) {
   VtnMoMgr vtn;
   MoMgrTables tbl=MAINTBL;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key1,
+                                      NULL));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
+  delete okey;
 }
 
-TEST(DupConfigKeyVal, novtnKT) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_novtnKT) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   MoMgrTables tbl=MAINTBL;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
@@ -2816,13 +3015,13 @@ TEST(DupConfigKeyVal, novtnKT) {
   delete okey;
 }
 
-TEST(DupConfigKeyVal, MAINTBL) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_MAINTBL) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   MoMgrTables tbl = MAINTBL;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
@@ -2831,18 +3030,18 @@ TEST(DupConfigKeyVal, MAINTBL) {
   delete okey;
 }
 
-TEST(DupConfigKeyVal, MAINTBL_withST) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_MAINTBL_withST) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   MoMgrTables tbl = MAINTBL;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
-  val_vtn_st_t *val_vtnst = (val_vtn_st_t *)malloc(sizeof(val_vtn_st_t));
-  ConfigVal *config_valst = new ConfigVal(IpctSt::kIpcStValVtnSt, val_vtnst);
+  val_db_vtn_st *val_dbvtn(ZALLOC_TYPE(val_db_vtn_st));
+  ConfigVal *config_valst = new ConfigVal(IpctSt::kIpcStValVtnSt, val_dbvtn);
   config_val->AppendCfgVal(config_valst);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyVal(okey, ikey, tbl));
@@ -2850,13 +3049,13 @@ TEST(DupConfigKeyVal, MAINTBL_withST) {
   delete okey;
 }
 
-TEST(DupConfigKeyVal, RENAMETBL) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_RENAMETBL) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   MoMgrTables tbl = RENAMETBL;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_rename_vtn_t *val_rename_vtn = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_rename_vtn_t *val_rename_vtn(ZALLOC_TYPE(val_rename_vtn_t));
   ConfigVal *rename_val = new ConfigVal(IpctSt::kIpcStValRenameVtn, val_rename_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStValRenameVtn, keyvtn, rename_val);
 
@@ -2866,13 +3065,13 @@ TEST(DupConfigKeyVal, RENAMETBL) {
 }
 
 //Negative test case
-TEST(DupConfigKeyVal, CTRLRTBL) {
+TEST_F(VtnMoMgrTest, DupConfigKeyVal_CTRLRTBL) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   MoMgrTables tbl = CTRLRTBL;
 
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
@@ -2882,84 +3081,78 @@ TEST(DupConfigKeyVal, CTRLRTBL) {
 }
 
 /* MergeValidateChildren */
-
-TEST(MergeValidateChildren, nullikey) {
+TEST_F(VtnMoMgrTest, MergeValidateChildren_nullikey) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   const char *ctrlr_id = NULL;
   ConfigKeyVal *ikey = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
 }
-TEST(MergeValidateChildren, ikey_VTN) {
+
+TEST_F(VtnMoMgrTest, MergeValidateChildren_ikey_VTN) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   const char *ctrlr_id = "pfc1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
+
+  delete ikey;
 }
-TEST(MergeValidateChildren, ikey_UNC_KT_VBRIDGE) {
+
+TEST_F(VtnMoMgrTest, MergeValidateChildren_ikey_UNC_KT_VBRIDGE) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   const char *ctrlr_id = "pfc1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
-}
+  key_vbr_t *vbrkey(ZALLOC_TYPE(key_vbr_t));
+  vbrkey->vtn_key = *key;
+  free(key);
+  pfc_strlcpy(reinterpret_cast<char *>(vbrkey->vbridge_name), "VBR_1",
+              sizeof(vbrkey->vbridge_name));
+  ConfigVal *config_val(new ConfigVal(IpctSt::kIpcStValVtnSt, val));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn,
+                                      vbrkey, config_val));
 
-TEST(AdaptValToVtnService, ikey_NULL) {
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
+}
 
+TEST_F(VtnMoMgrTest, AdaptValToVtnService_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AdaptValToVtnService(ikey));
 }
-TEST(AdaptValToVtnService, ikey) {
 
+TEST_F(VtnMoMgrTest, AdaptValToVtnService_ikey) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
 
   GetKeyValStruct(key, val);
 
-  val_vtn_st *valst;
-  valst = reinterpret_cast<val_vtn_st *>(malloc
-  (sizeof(val_vtn_st)));
-
-  memset(valst,0,sizeof(val_vtn_st));
+  val_vtn_st *valst(ZALLOC_TYPE(val_vtn_st));
   valst->valid[0] = UNC_VF_VALID;
   valst->oper_status = UPLL_OPER_STATUS_UP;
 
-
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, valst);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AdaptValToVtnService(ikey));
   delete ikey;
 }
-TEST(AdaptValToVtnService, ConfigVal_NULL) {
 
+TEST_F(VtnMoMgrTest, AdaptValToVtnService_ConfigVal_NULL) {
   VtnMoMgr vtn;
   key_vtn *key;
-  val_vtn *val;
-
-  GetKeyValStruct(key, val);
-
-  val_vtn_st *valst;
-  valst = reinterpret_cast<val_vtn_st *>(malloc
-  (sizeof(val_vtn_st)));
-
-  memset(valst,0,sizeof(val_vtn_st));
-  valst->valid[0] = UNC_VF_VALID;
-  valst->oper_status = UPLL_OPER_STATUS_UP;
-
+  GetKeyStruct(key);
 
   ConfigVal *config_val= NULL;
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
@@ -2967,51 +3160,49 @@ TEST(AdaptValToVtnService, ConfigVal_NULL) {
   delete ikey;
 }
 
-TEST(GetControllerDomainSpan, ikey) {
-
+TEST_F(VtnMoMgrTest, GetControllerDomainSpan_ikey) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetControllerDomainSpan(ikey,dtType,dmi,list_ctrlr_dom));
   delete ikey;
 }
-TEST(GetControllerDomainSpan, datatype_STATE) {
 
+TEST_F(VtnMoMgrTest, GetControllerDomainSpan_datatype_STATE) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetControllerDomainSpan(ikey,dt_type,dmi,list_ctrlr_dom));
   delete ikey;
 }
 
-TEST(GetControllerDomainSpan, ikey_01) {
-
+TEST_F(VtnMoMgrTest, GetControllerDomainSpan_ikey_01) {
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::EXECUTE_QUERY,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.GetControllerDomainSpan(ikey,dtType,dmi,list_ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetControllerDomainSpan, ikey_02) {
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+TEST_F(VtnMoMgrTest, GetControllerDomainSpan_ikey_02) {
+  DalDmlIntf *dmi(getDalDmlIntf());
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -3023,80 +3214,81 @@ TEST(GetControllerDomainSpan, ikey_02) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetControllerDomainSpan(ikey,dtType,dmi,list_ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetControllerDomainSpan,default ) {
 
+TEST_F(VtnMoMgrTest, GetControllerDomainSpan_default) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetControllerDomainSpan(ikey,dt_type,dmi));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, ikey_NULL) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, ikey_proper) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_ikey_proper) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, val_vtnstation_valid) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_val_vtnstation_valid) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-
-  key_vtnstation_controller_t *keyvtnsta = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
 
+  key_vtnstation_controller_t *keyvtnsta
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
  uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st *valVtnsta = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
 
+  val_vtnstation_controller_st *valVtnsta
+      (ZALLOC_TYPE(val_vtnstation_controller_st));
 ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, val_vtnstation_ALL_VALID_01) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_val_vtnstation_ALL_VALID_01) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
-
-  key_vtnstation_controller_t *keyvtnsta = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
 
+  key_vtnstation_controller_t *keyvtnsta
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st *valVtnsta = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
 
+  val_vtnstation_controller_st *valVtnsta
+      (ZALLOC_TYPE(val_vtnstation_controller_st));
   uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -3108,23 +3300,24 @@ ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, va
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, val_vtnstation_ALL_VALID_02) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_val_vtnstation_ALL_VALID_02) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
-
-  key_vtnstation_controller_t *keyvtnsta = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
 
+  key_vtnstation_controller_t *keyvtnsta
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st *valVtnsta = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
 
+  val_vtnstation_controller_st *valVtnsta
+      (ZALLOC_TYPE(val_vtnstation_controller_st));
   uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
@@ -3135,20 +3328,20 @@ ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, va
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ReadSingleCtlrlStation, vtn_valid_01) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_vtn_valid_01) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  key_vtnstation_controller_t *keyvtnsta = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *keyvtnsta
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st *valVtnsta = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
-
+  val_vtnstation_controller_st *valVtnsta
+      (ZALLOC_TYPE(val_vtnstation_controller_st));
   uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
@@ -3158,18 +3351,20 @@ TEST(ReadSingleCtlrlStation, vtn_valid_01) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, vtn_valid_02) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_vtn_valid_02) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  key_vtnstation_controller_t *keyvtnsta = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
+  key_vtnstation_controller_t *keyvtnsta
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
   uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st *valVtnsta = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
 
+  val_vtnstation_controller_st *valVtnsta
+      (ZALLOC_TYPE(val_vtnstation_controller_st));
   uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(valVtnsta->domain_id,"domain_id1", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
@@ -3181,19 +3376,19 @@ TEST(ReadSingleCtlrlStation, vtn_valid_02) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlStation, vtn_valid_03) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_vtn_valid_03) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *rec_count=&ckv_count1;
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
-
-  key_vtnstation_controller_t *keyvtnsta = (key_vtnstation_controller_t *)malloc(sizeof(key_vtnstation_controller_t));
-  uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
-  val_vtnstation_controller_st *valVtnsta = (val_vtnstation_controller_st *)malloc(sizeof(val_vtnstation_controller_st));
+  DalDmlIntf *dmi(getDalDmlIntf());
 
+  key_vtnstation_controller_t *keyvtnsta
+      (ZALLOC_TYPE(key_vtnstation_controller_t));
+  val_vtnstation_controller_st *valVtnsta
+      (ZALLOC_TYPE(val_vtnstation_controller_st));
   uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(valVtnsta->domain_id,"domain_id1", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
@@ -3204,63 +3399,61 @@ TEST(ReadSingleCtlrlStation, vtn_valid_03) {
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(ReadSingleCtlrlVtnMapping, ikey) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlVtnMapping_ikey) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *ckv_count=&ckv_count1;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
+  req->rep_count = 2;
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlVtnMapping(req,ikey,dmi,ckv_count));
   delete ikey;
 }
-TEST(ReadSingleCtlrlVtnMapping, ikey_Proper) {
 
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlVtnMapping_ikey_Proper) {
   VtnMoMgr vtn;
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *ckv_count=&ckv_count1;
   req->rep_count = 2;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlVtnMapping(req,ikey,dmi,ckv_count));
   delete ikey;
 }
 
-TEST(ReadSingleCtlrlVtnMapping, ikey_Proper_03) {
-
+TEST_F(VtnMoMgrTest, ReadSingleCtlrlVtnMapping_ikey_Proper_03) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
-  IpcReqRespHeader *req = reinterpret_cast<IpcReqRespHeader*>(malloc(sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
   uint32_t ckv_count1=1;
   uint32_t *ckv_count=&ckv_count1;
   req->rep_count = 2;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi=new unc::upll::dal::DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSingleCtlrlVtnMapping(req,ikey,dmi,ckv_count));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(MergeValidate, MergeValidate_Error) {
 
+TEST_F(VtnMoMgrTest, MergeValidate_Error) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -3269,21 +3462,20 @@ TEST(MergeValidate, MergeValidate_Error) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   const char *ctrlr_id = "Controller1";
   GetKeyValStruct(keyvtn,valVtn);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.MergeValidate(UNC_KT_VTN, ctrlr_id,
                                               ikey, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(MergeValidate, MergeValidate_success) {
 
+TEST_F(VtnMoMgrTest, MergeValidate_success) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -3292,21 +3484,20 @@ TEST(MergeValidate, MergeValidate_success) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
   const char *ctrlr_id = "Controller1";
-  GetKeyValStruct(key,val);
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.MergeValidate(UNC_KT_VTN, ctrlr_id,
                                               ikey, dmi));
-  DalOdbcMgr::clearStubData();
   delete ikey;
 }
-TEST(ControllerStatusHandler, ControllerStatusHandler_01) {
+
+TEST_F(VtnMoMgrTest, ControllerStatusHandler_01) {
   bool operstatus=true;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
   std::map<uint8_t,DalResultCode> map;
@@ -3314,36 +3505,38 @@ TEST(ControllerStatusHandler, ControllerStatusHandler_01) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
                                               dmi, operstatus));
-  DalOdbcMgr::clearStubData();
   delete ikey;
+  free(ctr_id1);
 }
-TEST(ControllerStatusHandler, ControllerStatusHandler_02) {
+
+TEST_F(VtnMoMgrTest, ControllerStatusHandler_02) {
   bool operstatus=true;
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctrlr_id=NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctrlr_id,
                                               dmi, operstatus));
   delete ikey;
 }
-TEST(ControllerStatusHandler, ControllerStatusHandler_03) {
+
+TEST_F(VtnMoMgrTest, ControllerStatusHandler_03) {
   bool operstatus=true;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
@@ -3352,26 +3545,44 @@ TEST(ControllerStatusHandler, ControllerStatusHandler_03) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
+  GetKeyValStruct(keyvtn,valVtn);
+
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
+  memcpy(ctr_id1, "Controller1", 11);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
+                                              dmi, operstatus));
+  delete ikey;
+  free(ctr_id1);
+}
+
+TEST_F(VtnMoMgrTest, ControllerStatusHandler_04) {
+  bool operstatus=true;
+  VtnMoMgr vtn;
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
                                               dmi, operstatus));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
 }
-TEST(IsReferenced, IsReferenced_01) {
 
+TEST_F(VtnMoMgrTest, IsReferenced_01) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
@@ -3379,21 +3590,21 @@ TEST(IsReferenced, IsReferenced_01) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsReferenced(ikey,dt_type,dmi));
   delete ikey;
 }
-TEST(IsReferenced, IsReferenced_02) {
 
+TEST_F(VtnMoMgrTest, IsReferenced_02) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsReferenced(ikey,dt_type,dmi));
   delete ikey;
 }
-TEST(IsReferenced, IsReferenced_03) {
 
+TEST_F(VtnMoMgrTest, IsReferenced_03) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -3402,50 +3613,35 @@ TEST(IsReferenced, IsReferenced_03) {
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_CFG_SEMANTIC, vtn.IsReferenced(ikey,dt_type,dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
 
-TEST(ControllerStatusHandler, ControllerStatusHandler_04) {
-  bool operstatus=true;
-  VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  GetKeyValStruct(keyvtn,valVtn);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
-  memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
-                                              dmi, operstatus));
-  delete ikey;
-}
-TEST(UpdateOperStatus, UpdateOperStatus_01) {
+TEST_F(VtnMoMgrTest, UpdateOperStatus_01) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateOperStatus( ikey,
                                               dmi, notification, true));
   delete ikey;
+  free(ctr_id1);
 }
-TEST(UpdateOperStatus, UpdateOperStatus_02) {
+
+TEST_F(VtnMoMgrTest, UpdateOperStatus_02) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -3453,22 +3649,23 @@ TEST(UpdateOperStatus, UpdateOperStatus_02) {
   map.insert(std::make_pair(1,kDalRcRecordNoMore));
   map.insert(std::make_pair(0,kDalRcSuccess));
   state_notification notification=kPortFaultReset;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"Controller1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateOperStatus( ikey,
                                               dmi, notification, true));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(UpdateOperStatus, UpdateOperStatus_03) {
+
+TEST_F(VtnMoMgrTest, UpdateOperStatus_03) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::CREATE_RECORD,kDalRcSuccess);
@@ -3477,82 +3674,86 @@ TEST(UpdateOperStatus, UpdateOperStatus_03) {
   map.insert(std::make_pair(1,kDalRcRecordNoMore));
   map.insert(std::make_pair(0,kDalRcSuccess));
   state_notification notification=kPortFaultReset;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();;
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"Controller1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,vtn.UpdateOperStatus( ikey, dmi, notification, true));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetRenamedUncKey, GetRenamedUncKey_01) {
+
+TEST_F(VtnMoMgrTest, GetRenamedUncKey_01) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
 }
 
-TEST(GetRenamedUncKey, GetRenamedUncKey_02) {
+TEST_F(VtnMoMgrTest, GetRenamedUncKey_02) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
   delete ikey;
+  free(ctr_id1);
 }
-TEST(GetRenamedUncKey, GetRenamedUncKey_03) {
+
+TEST_F(VtnMoMgrTest, GetRenamedUncKey_03) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
 }
-TEST(GetRenamedUncKey, GetRenamedUncKey_04) {
+
+TEST_F(VtnMoMgrTest, GetRenamedUncKey_04) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
 }
-TEST(GetRenamedControllerKey, GetRenamedControllerKey_01) {
+
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_01) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
@@ -3560,165 +3761,168 @@ TEST(GetRenamedControllerKey, GetRenamedControllerKey_01) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,ctrlr_dom));
+  controller_domain ctrlr_dom;
+  ctrlr_dom.ctrlr = ctr_id1;
+  ctrlr_dom.domain = dom_id1;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
+  free(dom_id1);
 }
-TEST(GetRenamedControllerKey, GetRenamedControllerKey_02) {
+
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_02) {
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
+  controller_domain ctrlr_dom;
+  ctrlr_dom.ctrlr = ctr_id1;
+  ctrlr_dom.domain = dom_id1;
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   SET_USER_DATA_FLAGS(ikey, 0x01);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
+  free(dom_id1);
 }
-TEST(GetRenamedControllerKey, GetRenamedControllerKey_03) {
+
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_03) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
+  controller_domain ctrlr_dom;
+  ctrlr_dom.ctrlr = ctr_id1;
+  ctrlr_dom.domain = dom_id1;
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   SET_USER_DATA_FLAGS(ikey, 0x01);
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
+  free(dom_id1);
 }
 
-TEST(GetRenamedControllerKey, GetRenamedControllerKey_05) {
-  DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_04) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
-  memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
-  memcpy(dom_id1, "Domain1", 7);
-  controller_domain *ctrlr_dom = reinterpret_cast<controller_domain_t *>(malloc(sizeof(controller_domain_t)));
-  ctrlr_dom->ctrlr = ctr_id1;
-  ctrlr_dom->domain = dom_id1;
-  UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
+  DalDmlIntf *dmi(getDalDmlIntf());
+  controller_domain *ctrlr_dom=NULL;
   SET_USER_DATA_FLAGS(ikey, 0x01);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(GetRenamedControllerKey, GetRenamedControllerKey_04) {
+
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_05) {
+  DalOdbcMgr::stub_setSingleRecordExists(true);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn;
+  val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  controller_domain *ctrlr_dom=NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
+  memcpy(ctr_id1, "Controller1", 11);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
+  memcpy(dom_id1, "Domain1", 7);
+  controller_domain ctrlr_dom;
+  ctrlr_dom.ctrlr = ctr_id1;
+  ctrlr_dom.domain = dom_id1;
+  UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   SET_USER_DATA_FLAGS(ikey, 0x01);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
+  free(dom_id1);
 }
-TEST(GetRenamedControllerKey, ikey_NULL) {
+
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_ikey_NULL) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
   VtnMoMgr vtn;
-  key_vtn_t *keyvtn = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *valVtn = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
+  val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = ctr_id1;
-  ctrlr_dom.domain = dom_id1;
   controller_domain ctrlr_dom1;
   ctrlr_dom1.ctrlr = ctr_id1;
   ctrlr_dom1.domain = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom1));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
+  free(dom_id1);
 }
-TEST(GetRenamedControllerKey, ikey_01) {
-  DalOdbcMgr::clearStubData();
+
+TEST_F(VtnMoMgrTest, GetRenamedControllerKey_ikey_01) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
   VtnMoMgr vtn;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, NULL);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, NULL, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  uint8_t *dom_id1 = (uint8_t *)malloc(32);
-  memset(dom_id1, '\0', 32);
+  uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = ctr_id1;
@@ -3726,116 +3930,140 @@ TEST(GetRenamedControllerKey, ikey_01) {
   SET_USER_DATA_FLAGS(ikey, 0x01);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
+  free(dom_id1);
 }
-TEST(UpdateVtnConfigStatus, UpdateVtnConfigStatus_Update) {
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
   uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE, driver_result,
+                                      upd_key, dmi));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateVtnConfigStatus, UpdateVtnConfigStatus_Update_01) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update_01) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::CREATE_RECORD,kDalRcSuccess);
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
   uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE, driver_result,
+                                      upd_key, dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  delete upd_key;
 }
-TEST(UpdateVtnConfigStatus, UpdateVtnConfigStatus_Create) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Create) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
   uint32_t driver_result=UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_CREATE,
                                                    driver_result,
                                                    upd_key,dmi));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateVtnConfigStatus, UpdateVtnConfigStatus_DElete) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Delete) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
   uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE, driver_result,
+                                      upd_key, dmi));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateVtnConfigStatus, UpdateVtnConfigStatus_Read) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Read) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
   uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_READ,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_READ, driver_result,
+                                      upd_key, dmi));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateVtnConfigStatus, Update_ikey_Err) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update_ikey_Err) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *upd_key = NULL;
   uint32_t driver_result=UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
@@ -3843,15 +4071,16 @@ TEST(UpdateVtnConfigStatus, Update_ikey_Err) {
                                                    upd_key,dmi));
   delete ikey;
 }
-TEST(UpdateVtnConfigStatus, Update_Val_NULL) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update_Val_NULL) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *upd_key = NULL;
   uint32_t driver_result=UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
@@ -3859,15 +4088,16 @@ TEST(UpdateVtnConfigStatus, Update_Val_NULL) {
                                                    upd_key,dmi));
   delete ikey;
 }
-TEST(UpdateVtnConfigStatus, Delete_ikey_Err) {
 
+TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Delete_ikey_Err) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   GetKeyValStruct(keyvtn,valVtn);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi = new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *upd_key = NULL;
   uint32_t driver_result=UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE,
@@ -3876,7 +4106,7 @@ TEST(UpdateVtnConfigStatus, Delete_ikey_Err) {
   delete ikey;
 }
 
-TEST(CopyToConfigkey, CopyToConfigkey_ikeyokeyNull) {
+TEST_F(VtnMoMgrTest, CopyToConfigkey_ikeyokeyNull) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
@@ -3891,92 +4121,92 @@ TEST(CopyToConfigkey, CopyToConfigkey_ikeyokeyNull) {
   delete okey;
 }
 
-TEST(CopyToConfigkey, CopyToConfigkey_01) {
+TEST_F(VtnMoMgrTest, CopyToConfigkey_01) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey=NULL;
-  key_vtn_t *keyvtn;
-  val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.CopyToConfigKey(okey,ikey));
+  key_rename_vnode_info *key_rename(ZALLOC_TYPE(key_rename_vnode_info));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                      key_rename, NULL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.CopyToConfigKey(okey, ikey));
   delete ikey;
   delete okey;
 }
-TEST(CopyToConfigkey, CopyToConfigkey_02) {
+
+TEST_F(VtnMoMgrTest, CopyToConfigkey_02) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey=NULL;
-  key_vtn_t *keyvtn;
-  val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            keyvtn, config_val);
-  key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
-  uuu::upll_strncpy(keyvtn->vtn_name, key_rename->old_unc_vtn_name,(kMaxLenVtnName + 1));
-
-
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.CopyToConfigKey(okey,ikey));
+  key_rename_vnode_info *key_rename(ZALLOC_TYPE(key_rename_vnode_info));
+  pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vtn_name),
+              "VTN_1", sizeof(key_rename->old_unc_vtn_name));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                      key_rename, NULL));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.CopyToConfigKey(okey, ikey));
   delete ikey;
   delete okey;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_Create) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_Create) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
-  ConfigKeyVal *ctrlr_run = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
+
+  key_vtn_t *key2(UT_CLONE(key_vtn_t, key));
+  val_vtn_t *val2(UT_CLONE(val_vtn_t, val));
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVtn, val2));
+  ConfigKeyVal *ctrlr_run(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                           key2, cfgval2));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,ctrlr_run));
   delete ikey;
+  delete upd_key;
+  delete ctrlr_run;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_ValVTN_NULL) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_ValVTN_NULL) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn *key;
-  key = reinterpret_cast<key_vtn *>(malloc
-                 (sizeof(key_vtn)));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn *key(ZALLOC_TYPE(key_vtn));
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
-  val_vtn *val=NULL;
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                      key, cfgval));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE, UPLL_RC_SUCCESS,
+                                   upd_key, dmi, ikey));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_ConfigKeyVal_NULL) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_ConfigKeyVal_NULL) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
@@ -3988,46 +4218,48 @@ TEST(UpdateConfigStatus, UpdateConfigStatus_ConfigKeyVal_NULL) {
                                                    upd_key,dmi,ikey));
   delete ikey;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_PFC) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_PFC) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
-
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE, UPLL_RC_SUCCESS,
+                                   upd_key, dmi, ikey));
   delete ikey;
+  delete upd_key;
 }
 
-TEST(UpdateConfigStatus, OP_Update_01) {
-
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Update_01) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=1;
   val_ctrlr->down_count=1;
 
@@ -4040,7 +4272,7 @@ TEST(UpdateConfigStatus, OP_Update_01) {
   CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
   CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
@@ -4050,25 +4282,25 @@ TEST(UpdateConfigStatus, OP_Update_01) {
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,upd_key));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateConfigStatus, OP_Update_02) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Update_02) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=3;
   val_ctrlr->down_count=1;
 
@@ -4081,64 +4313,70 @@ TEST(UpdateConfigStatus, OP_Update_02) {
   CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
   CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
   CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
-  val_vtn_ctrlr_t *val_ctrlr1 = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
-  val_ctrlr1->ref_count=1;
-  val_ctrlr1->down_count=0;
-  ConfigVal *cfgval2 = new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr1);
-  ConfigKeyVal *upd_key1 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtnController,
-                            key_ctrlr, cfgval2);
+  key_vtn_controller_t *key_ctrlr2(UT_CLONE(key_vtn_controller_t, key_ctrlr));
+  val_vtn_ctrlr_t *val_ctrlr2(ZALLOC_TYPE(val_vtn_ctrlr_t));
+  val_ctrlr2->ref_count=1;
+  val_ctrlr2->down_count=0;
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr2));
+  ConfigKeyVal *upd_key2(new ConfigKeyVal(UNC_KT_VTN,
+                                          IpctSt::kIpcStKeyVtnController,
+                                          key_ctrlr2, cfgval2));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key1));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.UpdateConfigStatus(ikey, UNC_OP_UPDATE, UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key2));
   delete ikey;
+  delete upd_key;
+  delete upd_key2;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_invalidOP) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_invalidOP) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                         key1, cfgval1));
 
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_READ,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,ikey));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_OP_Create) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Create) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=1;
   val_ctrlr->down_count=1;
 
@@ -4151,7 +4389,7 @@ TEST(UpdateConfigStatus, UpdateConfigStatus_OP_Create) {
   CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
   CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
@@ -4161,26 +4399,26 @@ TEST(UpdateConfigStatus, UpdateConfigStatus_OP_Create) {
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,upd_key));
   delete ikey;
+  delete upd_key;
 }
-TEST(UpdateConfigStatus, UpdateConfigStatus_OP_Create_01) {
 
+TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Create_01) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   val->cs_row_status=UNC_CS_NOT_APPLIED;
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=1;
   val_ctrlr->down_count=1;
 
@@ -4193,7 +4431,7 @@ TEST(UpdateConfigStatus, UpdateConfigStatus_OP_Create_01) {
   CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
   CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
-  key_user_data_t *user_data = reinterpret_cast<key_user_data_t *>(malloc(sizeof(key_user_data_t)));
+  key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
   uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
@@ -4219,13 +4457,15 @@ TEST(UpdateConfigStatus, UpdateConfigStatus_OP_Create_01) {
                                                    UPLL_RC_SUCCESS,
                                                    upd_key,dmi,upd_key));
   delete ikey;
+  delete upd_key;
 }
-TEST(ValidateCapability, ValidateCapability_Success) {
 
+TEST_F(VtnMoMgrTest, ValidateCapability_Success) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
@@ -4235,13 +4475,7 @@ TEST(ValidateCapability, ValidateCapability_Success) {
   CtrlrMgr::Ctrlr ctrlrobj("CTR_1", UNC_CT_PFC, "5.0");
   CtrlrMgr::GetInstance()->Add(ctrlrobj, UPLL_DT_CANDIDATE);
 
-  uint8_t attrs[3];
-  attrs[unc::capa::vtn::kCapDesc] = 1;
-
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -4265,35 +4499,34 @@ TEST(ValidateCapability, ValidateCapability_Success) {
   CtrlrMgr::GetInstance()->Delete("CTR_1", UPLL_DT_CANDIDATE);
   delete ikey;
 }
-TEST(ValidateCapability, ValidateCapability_ikey_NULL) {
 
+TEST_F(VtnMoMgrTest, ValidateCapability_ikey_NULL) {
   VtnMoMgr vtn;
-  key_vtn *key;
-  val_vtn *val;
-  GetKeyValStruct(key, val);
   ConfigKeyVal *ikey = NULL;
   IpcReqRespHeader *req=NULL;
   const char *ctrlr_name="ctr1";
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateCapability(req, ikey, ctrlr_name));
 }
-TEST(ValidateCapability, ValidateCapability_ctrName_NULL) {
 
+TEST_F(VtnMoMgrTest, ValidateCapability_ctrName_NULL) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
+  IPC_REQ_RESP_HEADER_DECL(req);
 
   const char *ctrlr_name=NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateCapability(req, ikey, ctrlr_name));
+
+  delete ikey;
 }
-TEST(GetChildConfigKey, GetChildConfigKey_SuccessNullObjs) {
+
+TEST_F(VtnMoMgrTest, GetChildConfigKey_SuccessNullObjs) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *pkey = NULL;
@@ -4301,7 +4534,8 @@ TEST(GetChildConfigKey, GetChildConfigKey_SuccessNullObjs) {
   delete okey;
   delete pkey;
 }
-TEST(GetChildConfigKey, GetChildConfigKey_pkeyNull) {
+
+TEST_F(VtnMoMgrTest, GetChildConfigKey_pkeyNull) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
@@ -4312,12 +4546,10 @@ TEST(GetChildConfigKey, GetChildConfigKey_pkeyNull) {
   delete okey;
   delete pkey;
 }
-TEST(GetChildConfigKey, pkeyNull_okey_NotNull) {
-  VtnMoMgr vtn;
-  key_vbr_t *key = reinterpret_cast<key_vbr_t *>
-                  (malloc(sizeof(key_vbr_t)));
-  memset(key, 0 ,sizeof(key_vtn_t));
 
+TEST_F(VtnMoMgrTest, GetChildConfigKey_pkeyNull_okey_NotNull) {
+  VtnMoMgr vtn;
+  key_vbr_t *key(ZALLOC_TYPE(key_vbr_t));
   strncpy((char*) key->vbridge_name,"VTN1",32);
 
   ConfigKeyVal *pkey = NULL;
@@ -4327,13 +4559,11 @@ TEST(GetChildConfigKey, pkeyNull_okey_NotNull) {
   EXPECT_EQ(UPLL_RC_SUCCESS,vtn.GetChildConfigKey(okey, pkey));
   delete okey;
 }
-TEST(GetChildConfigKey, GetChildConfigKey_Vtn) {
+
+TEST_F(VtnMoMgrTest, GetChildConfigKey_Vtn) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
-  key_vtn_t *key = reinterpret_cast<key_vtn_t *>
-                  (malloc(sizeof(key_vtn_t)));
-  memset(key, 0 ,sizeof(key_vtn_t));
-
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy((char*) key->vtn_name,"VTN1",32);
 
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
@@ -4347,32 +4577,28 @@ TEST(GetChildConfigKey, GetChildConfigKey_Vtn) {
   delete okey;
   delete pkey;
 }
-TEST(GetChildConfigKey, okey_Not_NULL) {
-  VtnMoMgr vtn;
-  key_vtn_t *key = reinterpret_cast<key_vtn_t *>
-                  (malloc(sizeof(key_vtn_t)));
-  memset(key, 0 ,sizeof(key_vtn_t));
 
+TEST_F(VtnMoMgrTest, GetChildConfigKey_okey_Not_NULL) {
+  VtnMoMgr vtn;
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy((char*) key->vtn_name,"VTN1",32);
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, NULL);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, NULL);
+  ConfigKeyVal *pkey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                      key, NULL));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                      key1, NULL));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vtn.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetChildConfigKey(okey, pkey));
 
   delete okey;
+  delete pkey;
 }
-TEST(GetChildConfigKey, GetChildConfigKey_Vbr) {
+
+TEST_F(VtnMoMgrTest, GetChildConfigKey_Vbr) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
-  key_vtn_t *key = reinterpret_cast<key_vtn_t *>
-                  (malloc(sizeof(key_vtn_t)));
-  memset(key, 0 ,sizeof(key_vtn_t));
-
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy((char*) key->vtn_name,"VTN1",32);
 
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
@@ -4383,15 +4609,15 @@ TEST(GetChildConfigKey, GetChildConfigKey_Vbr) {
   delete okey;
   delete pkey;
 }
-TEST(IsKeyInUse, ikey_Error) {
 
+TEST_F(VtnMoMgrTest, IsKeyInUse_ikey_Error) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
-
   GetKeyValStruct(key, val);
+
   upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool in_use;
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
@@ -4399,49 +4625,37 @@ TEST(IsKeyInUse, ikey_Error) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsKeyInUse(dt_type,ikey,&in_use,dmi));
   delete ikey;
 }
-TEST(IsKeyInUse, invalid_ctrlrName) {
 
+TEST_F(VtnMoMgrTest, IsKeyInUse_invalid_ctrlrName) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
-
-  const char *controller_name = "";
   GetKeyValStruct(key, val);
+
   upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool in_use;
-  key = reinterpret_cast<key_vtn *>(malloc
-                 (sizeof(key_vtn)));
   memset(key,0,sizeof(key_vtn));
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  key_ctr_t *key_ctr =
-           reinterpret_cast<key_ctr_t *>(ikey->get_key());
-  memset(key_ctr,0,sizeof(key_ctr));
-  strncpy(reinterpret_cast<char *>(key_ctr->controller_name),
-  controller_name, strlen(controller_name)+1);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsKeyInUse(dt_type,ikey,&in_use,dmi));
   delete ikey;
 }
 
-TEST(IsKeyInUse, ikey_NULL) {
-
+TEST_F(VtnMoMgrTest, IsKeyInUse_ikey_NULL) {
   VtnMoMgr vtn;
-  key_vtn *key;
-  val_vtn *val;
-
-  GetKeyValStruct(key, val);
   upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
-  DalDmlIntf *dmi=new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool in_use;
 
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, NULL, NULL);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsKeyInUse(dt_type,ikey,&in_use,dmi));
   delete ikey;
 }
-TEST(ValidateMessage, ValidateMessage_01) {
 
+TEST_F(VtnMoMgrTest, ValidateMessage_01) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
@@ -4452,10 +4666,7 @@ TEST(ValidateMessage, ValidateMessage_01) {
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_CREATE;
@@ -4466,95 +4677,93 @@ TEST(ValidateMessage, ValidateMessage_01) {
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval2);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey2));
-  val_rename_vtn *renameval;
-  renameval = reinterpret_cast<val_rename_vtn *>(malloc
-  (sizeof(val_rename_vbr)));
-  memset(renameval,0,sizeof(val_rename_vtn));
+  key_vtn *key1(UT_CLONE(key_vtn, key));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key1, NULL));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey1));
+  val_rename_vtn *renameval(ZALLOC_TYPE(val_rename_vtn));
   for(unsigned int loop = 0; loop < sizeof(renameval->valid)/
-     sizeof(renameval->valid[0]); ++loop) {
-    renameval->valid[loop] = UNC_VF_VALID;
+          sizeof(renameval->valid[0]); ++loop) {
+      renameval->valid[loop] = UNC_VF_VALID;
   }
   strncpy(reinterpret_cast<char *>(renameval->new_name),
-  "renamed", strlen("renamed")+1);
-
+          "renamed", strlen("renamed")+1);
 
-  ConfigVal *rename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVtn, renameval);
-  ConfigKeyVal *rename_ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, rename_cfgval);
+  key_vtn *key2(UT_CLONE(key_vtn, key));
+  ConfigVal *rename_cfgval(new ConfigVal(IpctSt::kIpcStValRenameVtn,
+                                         renameval));
+  ConfigKeyVal *rename_ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                             key2, rename_cfgval));
 
   req->operation = UNC_OP_RENAME;
   req->datatype = UPLL_DT_IMPORT;
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, rename_ikey));
 
-  ConfigVal *cfgval3 = NULL;
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval3);
+  key_vtn *key3(UT_CLONE(key_vtn, key));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key3, NULL));
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey3));
 
-  val_rename_vtn *vtn_rename =NULL;
-  ConfigVal *cfgval4 = new ConfigVal(IpctSt::kIpcStValVtn, vtn_rename);
-  ConfigKeyVal *ikey4 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval4);
+  key_vtn *key4(UT_CLONE(key_vtn, key));
+  ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key4, cfgval4));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey4));
 
   req->operation = UNC_OP_READ_SIBLING;
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, rename_ikey));
 
-  ConfigVal *invrename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVtn, NULL);
-  ConfigKeyVal *invrename_ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, invrename_cfgval);
+  key_vtn *key5(UT_CLONE(key_vtn, key));
+  ConfigVal *invrename_cfgval(new ConfigVal(IpctSt::kIpcStValRenameVtn, NULL));
+  ConfigKeyVal *invrename_ikey(new ConfigKeyVal(UNC_KT_VTN,
+                                                IpctSt::kIpcStKeyVtn,
+                                                key5, invrename_cfgval));
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, invrename_ikey));
 
   const char *vtn_name1 = " ";
-  key_vtn *key5;
-  val_vtn *val5;
-  key5 = reinterpret_cast<key_vtn *>(malloc
-                 (sizeof(key_vtn)));
-  memset(key5,0,sizeof(key_vtn));
-  strncpy(reinterpret_cast<char *>(key5->vtn_name),
-  vtn_name1, strlen(vtn_name1)+1);
-  val5 = reinterpret_cast<val_vtn *>(malloc
-  (sizeof(val_vtn)));
-  memset(val5,0,sizeof(val_vtn));
-  ConfigVal *cfgval5 = new ConfigVal(IpctSt::kIpcStValVtn, val5);
-  ConfigKeyVal *ikey5 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key5, cfgval5);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey5));
+  key_vtn *key6(ZALLOC_TYPE(key_vtn));
+  val_vtn *val6(ZALLOC_TYPE(val_vtn));
+  strncpy(reinterpret_cast<char *>(key6->vtn_name),
+          vtn_name1, strlen(vtn_name1)+1);
+  ConfigVal *cfgval6(new ConfigVal(IpctSt::kIpcStValVtn, val6));
+  ConfigKeyVal *ikey6(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key6, cfgval6));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey6));
 
   req->operation = UNC_OP_READ_SIBLING_COUNT;
   req->datatype = UPLL_DT_RUNNING;
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
 
-
   ikey=NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessage(req, ikey));
 
+  key_vtn *key7(UT_CLONE(key_vtn, key));
+  val_vtn *val7(UT_CLONE(val_vtn, val));
+  ConfigVal *cfgval7(new ConfigVal(IpctSt::kIpcStValVtn, val7));
+  ConfigKeyVal *ikey7( new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
+                                     key7, cfgval7));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey7));
 
-  ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVbr,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey));
-
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey));
+  key_vtn *key8(UT_CLONE(key_vtn, key));
+  val_vtn *val8(UT_CLONE(val_vtn, val));
+  ConfigVal *cfgval8(new ConfigVal(IpctSt::kIpcStValVtn, val8));
+  ConfigKeyVal *ikey8(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn,
+                                       key8, cfgval8));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey8));
 
+  delete ikey;
+  delete ikey1;
+  delete rename_ikey;
+  delete ikey3;
+  delete ikey4;
+  delete invrename_ikey;
+  delete ikey6;
+  delete ikey7;
+  delete ikey8;
 }
 
-TEST(ValidateMessage, ValidateMessage_02) {
-
+TEST_F(VtnMoMgrTest, ValidateMessage_02) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
@@ -4565,10 +4774,7 @@ TEST(ValidateMessage, ValidateMessage_02) {
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->operation = UNC_OP_UPDATE;
@@ -4578,35 +4784,43 @@ TEST(ValidateMessage, ValidateMessage_02) {
   req->datatype = UPLL_DT_CANDIDATE;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
+
+  key_vtn *key1(UT_CLONE(key_vtn, key));
+  val_vtn *val1(UT_CLONE(val_vtn, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key1, cfgval1));
   req->operation = UNC_OP_CONTROL;
-  ConfigKeyVal *ikey4 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, vtn.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+            vtn.ValidateMessage(req, ikey1));
 
   req->operation = UNC_OP_UPDATE;
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval1);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey1));
+  key_vtn *key2(UT_CLONE(key_vtn, key));
+  val_vtn *val2(UT_CLONE(val_vtn, val));
+  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVbr, val2));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key2, cfgval2));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey2));
+
+  key_vtn *key3(UT_CLONE(key_vtn, key));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key3, NULL));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey3));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval2);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey2));
-
-  val = NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval3);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey3));
+  key_vtn *key4(UT_CLONE(key_vtn, key));
+  ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key4, cfgval4));
+  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey4));
 
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
+  delete ikey4;
 }
-TEST(ValidateMessage, ValidateMessage_03) {
 
+TEST_F(VtnMoMgrTest, ValidateMessage_03) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
@@ -4617,10 +4831,7 @@ TEST(ValidateMessage, ValidateMessage_03) {
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -4637,28 +4848,31 @@ TEST(ValidateMessage, ValidateMessage_03) {
   req->option2 = UNC_OPT2_NONE;
   req->option1 = UNC_OPT1_NORMAL;
 
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval1);
+  key_vtn *key1(UT_CLONE(key_vtn, key));
+  val_vtn *val1(UT_CLONE(val_vtn, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey1));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval2);
+  key_vtn *key2(UT_CLONE(key_vtn, key));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key2, NULL));
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey2));
 
-  val_vtn *val1=NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVtn, val1);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval3);
+  key_vtn *key3(UT_CLONE(key_vtn, key));
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey3));
 
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
 }
-TEST(ValidateMessage, ValidateMessage_04) {
 
+TEST_F(VtnMoMgrTest, ValidateMessage_04) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
@@ -4669,10 +4883,7 @@ TEST(ValidateMessage, ValidateMessage_04) {
                             IpctSt::kIpcStKeyVtn,
                             key, cfgval);
 
-  IpcReqRespHeader *req;
-  req = reinterpret_cast<IpcReqRespHeader *>(malloc
-                 (sizeof(IpcReqRespHeader)));
-  memset(req,0,sizeof(IpcReqRespHeader));
+  IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
   req->rep_count = 100;
@@ -4691,32 +4902,37 @@ TEST(ValidateMessage, ValidateMessage_04) {
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, vtn.ValidateMessage(req, ikey));
 
   req->option2 = UNC_OPT2_NONE;
-  ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval1);
+
+  key_vtn *key1(UT_CLONE(key_vtn, key));
+  val_vtn *val1(UT_CLONE(val_vtn, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey1));
 
-  ConfigVal *cfgval2 = NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval2);
+  key_vtn *key2(UT_CLONE(key_vtn, key));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key2, NULL));
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey2));
 
-  val_vtn *val1=NULL;
-  ConfigVal *cfgval3 = new ConfigVal(IpctSt::kIpcStValVtn, val1);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval3);
+  key_vtn *key3(UT_CLONE(key_vtn, key));
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key3, cfgval3));
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey3));
+
+  delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
 }
-TEST(ValVtnAttributeSupportCheck, ValVtnAttributeSupportCheck_01) {
 
+TEST_F(VtnMoMgrTest, ValVtnAttributeSupportCheck_01) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
-
   GetKeyValStruct(key, val);
+
   uint32_t operation= UNC_OP_CREATE;
   uint8_t ckv_count1=1;
   uint8_t *attrs=&ckv_count1;
@@ -4725,13 +4941,13 @@ TEST(ValVtnAttributeSupportCheck, ValVtnAttributeSupportCheck_01) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValVtnAttributeSupportCheck(val,attrs,operation));
   delete ikey;
 }
-TEST(ValVtnAttributeSupportCheck, ValVtnAttributeSupportCheck_02) {
 
+TEST_F(VtnMoMgrTest, ValVtnAttributeSupportCheck_02) {
   VtnMoMgr vtn;
   key_vtn *key;
   val_vtn *val;
-
   GetKeyValStruct(key, val);
+
   uint32_t operation= UNC_OP_CREATE;
   val->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   uint8_t ckv_count1=1;
@@ -4741,64 +4957,57 @@ TEST(ValVtnAttributeSupportCheck, ValVtnAttributeSupportCheck_02) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValVtnAttributeSupportCheck(val,attrs,operation));
   delete ikey;
 }
-TEST(SetOperStatus, ikey_NULL) {
 
+TEST_F(VtnMoMgrTest, SetOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
-  key_vtn *key;
-  val_vtn *val;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  GetKeyValStruct(key, val);
   state_notification notification=kCtrlrReconnect;
   ConfigKeyVal *ikey =NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetOperStatus(ikey,notification,dmi));
-  delete ikey;
 }
-TEST(SetConsolidatedStatus, invalid_key) {
 
+TEST_F(VtnMoMgrTest, SetConsolidatedStatus_invalid_key) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_db_vtn_st_t *val = (val_db_vtn_st_t *)malloc(sizeof(val_db_vtn_st_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
+  val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   val->down_count=0;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
   delete ikey;
 }
-TEST(SetConsolidatedStatus, valid_key) {
 
+TEST_F(VtnMoMgrTest, SetConsolidatedStatus_valid_key) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_db_vtn_st_t *val = (val_db_vtn_st_t *)malloc(sizeof(val_db_vtn_st_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
+  val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   val->down_count=0;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
   delete ikey;
 }
-TEST(SetOperStatus, notification_kCtrlrReconnectIfUp) {
 
+TEST_F(VtnMoMgrTest, SetOperStatus_notification_kCtrlrReconnectIfUp) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_db_vtn_st_t *val = (val_db_vtn_st_t *)malloc(sizeof(val_db_vtn_st_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
+  val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   val->down_count=0;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   state_notification notification=kCtrlrReconnectIfUp;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
@@ -4806,17 +5015,16 @@ TEST(SetOperStatus, notification_kCtrlrReconnectIfUp) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetOperStatus(ikey,notification,dmi));
   delete ikey;
 }
-TEST(SetOperStatus, notification_kCtrlrDisconnect) {
 
+TEST_F(VtnMoMgrTest, SetOperStatus_notification_kCtrlrDisconnect) {
   const char *vtn_name = "VTN_1";
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_db_vtn_st_t *val = (val_db_vtn_st_t *)malloc(sizeof(val_db_vtn_st_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
+  val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
+          vtn_name, strlen(vtn_name)+1);
   val->down_count=0;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   state_notification notification=kCtrlrDisconnect;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
@@ -4824,36 +5032,31 @@ TEST(SetOperStatus, notification_kCtrlrDisconnect) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetOperStatus(ikey,notification,dmi));
   delete ikey;
 }
-TEST(SetCtrlrOperStatus, ikey_NULL) {
 
+TEST_F(VtnMoMgrTest, SetCtrlrOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
-  key_vtn *key;
-  val_vtn *val;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-
-  GetKeyValStruct(key, val);
+  DalDmlIntf *dmi(getDalDmlIntf());
   state_notification notification=kCtrlrReconnect;
   ConfigKeyVal *ikey =NULL;
   bool oper_change;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
   delete ikey;
 }
-TEST(SetCtrlrOperStatus, kCtrlrReconnectIfUp) {
 
+TEST_F(VtnMoMgrTest, SetCtrlrOperStatus_kCtrlrReconnectIfUp) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   state_notification notification=kCtrlrReconnectIfUp;
   bool oper_change;
@@ -4864,22 +5067,20 @@ TEST(SetCtrlrOperStatus, kCtrlrReconnectIfUp) {
   delete ikey;
 }
 
-TEST(SetCtrlrOperStatus, kCtrlrReconnectIfDown) {
-
+TEST_F(VtnMoMgrTest, SetCtrlrOperStatus_kCtrlrReconnectIfDown) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   state_notification notification=kCtrlrReconnectIfDown;
   bool oper_change;
@@ -4902,13 +5103,13 @@ TEST(SetCtrlrOperStatus, kCtrlrReconnectIfDown) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
   delete ikey;
 }
-TEST(VtnSetOperStatus, default) {
 
+TEST_F(VtnMoMgrTest, VtnSetOperStatus_default) {
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
 
   state_notification notification=kCtrlrReconnect;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
@@ -4918,44 +5119,44 @@ TEST(VtnSetOperStatus, default) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.VtnSetOperStatus(vtn_name_o,dmi,notification));
   delete ikey;
 }
-TEST(VtnSetOperStatus, Valid) {
 
+TEST_F(VtnMoMgrTest, VtnSetOperStatus_Valid) {
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
 
   state_notification notification=kCtrlrReconnect;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.VtnSetOperStatus(ctr_id1,dmi,notification));
   delete ikey;
+  free(ctr_id1);
 }
-TEST(VtnSetOperStatus, Valid_01) {
 
+TEST_F(VtnMoMgrTest, VtnSetOperStatus_Valid_01) {
   VtnMoMgr vtn;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
+  DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
 
   state_notification notification=kCtrlrReconnectIfUp;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.VtnSetOperStatus(ctr_id1,dmi,notification));
   delete ikey;
+  free(ctr_id1);
 }
-TEST(TxUpdateDtState,UNC_KT_VTN_01 ) {
 
+TEST_F(VtnMoMgrTest, TxUpdateDtState_UNC_KT_VTN_01) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
   std::map<uint8_t,DalResultCode> map;
   map.insert(std::make_pair(1,kDalRcRecordNoMore));
@@ -4966,70 +5167,71 @@ TEST(TxUpdateDtState,UNC_KT_VTN_01 ) {
   unc_key_type_t ktype=UNC_KT_VTN;
   uint32_t session_id=1;
   uint32_t config_id=2;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateDtState(ktype,session_id,config_id,dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(TxUpdateDtState,UNC_KT_VTN_02 ) {
 
+TEST_F(VtnMoMgrTest, TxUpdateDtState_UNC_KT_VTN_02) {
   VtnMoMgr vtn;
   unc_key_type_t ktype=UNC_KT_VTN;
   uint32_t session_id=1;
   uint32_t config_id=2;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateDtState(ktype,session_id,config_id,dmi));
 }
-TEST(TxUpdateDtState,UNC_KT_VBRIDGE ) {
 
+TEST_F(VtnMoMgrTest, TxUpdateDtState_UNC_KT_VBRIDGE) {
   VtnMoMgr vtn;
   unc_key_type_t ktype=UNC_KT_VBRIDGE;
   uint32_t session_id=1;
   uint32_t config_id=2;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_st_t *val = (val_vtn_st_t *)malloc(sizeof(val_vtn_st_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key;
+  val_vtn_st_t *val;
   GetKeyValStructSt(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateDtState(ktype,session_id,config_id,dmi));
   delete ikey;
 }
-TEST(UpdateVnodeOperStatus,UNC_KT_VBRIDGE ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_UNC_KT_VBRIDGE) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool skip=true;
   uint8_t *ctrlr_id=NULL;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
 }
-TEST(UpdateVnodeOperStatus,kCtrlrDisconnect ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_kCtrlrDisconnect) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrDisconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool skip=true;
   uint8_t *ctrlr_id=NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
 }
-TEST(UpdateVnodeOperStatus,val_NULL ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_val_NULL) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  key_vbr_t *key = (key_vbr_t *)malloc(sizeof(key_vbr_t));
+  key_vbr_t *key(ZALLOC_TYPE(key_vbr_t));
   val_db_vbr_st *val=NULL;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
@@ -5039,11 +5241,11 @@ TEST(UpdateVnodeOperStatus,val_NULL ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
   delete ikey;
 }
-TEST(UpdateVnodeOperStatus,ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = NULL;
   bool skip=true;
@@ -5052,24 +5254,24 @@ TEST(UpdateVnodeOperStatus,ikey_NULL ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
   delete ikey;
 }
-TEST(UpdateVnodeOperStatus,UNC_KT_VBR_IF ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_UNC_KT_VBR_IF) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool skip=true;
   uint8_t *ctrlr_id=NULL;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
 }
-TEST(UpdateVnodeOperStatus,UNC_KT_VROUTER ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_UNC_KT_VROUTER) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool skip=true;
-  key_vrt_t *key = (key_vrt_t *)malloc(sizeof(key_vrt_t));
-  val_db_vrt_st_t *val = (val_db_vrt_st_t *)malloc(sizeof(val_db_vrt_st_t));
+  key_vrt_t *key(ZALLOC_TYPE(key_vrt_t));
+  val_db_vrt_st_t *val(ZALLOC_TYPE(val_db_vrt_st_t));
   val->down_count=0;
   val->fault_count=0;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVrtSt, val);
@@ -5079,13 +5281,13 @@ TEST(UpdateVnodeOperStatus,UNC_KT_VROUTER ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
   delete ikey;
 }
-TEST(UpdateVnodeIfOperStatus,UNC_KT_VBR_IF ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeIfOperStatus_UNC_KT_VBR_IF) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vbr_if_t *key = (key_vbr_if_t *)malloc(sizeof(key_vbr_if_t));
-  val_db_vbr_if_st_t *val = (val_db_vbr_if_st_t *)malloc(sizeof(val_db_vbr_if_st_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
+  val_db_vbr_if_st_t *val(ZALLOC_TYPE(val_db_vbr_if_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIfSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   bool skip=true;
@@ -5094,30 +5296,30 @@ TEST(UpdateVnodeIfOperStatus,UNC_KT_VBR_IF ) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeIfOperStatus(ikey,dmi,notification,skip,if_type));
   delete ikey;
 }
-TEST(UpdateVnodeIfOperStatus,UNC_KT_VRT_IF ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeIfOperStatus_UNC_KT_VRT_IF) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool skip=true;
   int if_type=kLinkedInterface;
-  key_vrt_if_t *key = (key_vrt_if_t *)malloc(sizeof(key_vrt_if_t));
-  val_db_vrt_if_st_t *val = (val_db_vrt_if_st_t *)malloc(sizeof(val_db_vrt_if_st_t));
+  key_vrt_if_t *key(ZALLOC_TYPE(key_vrt_if_t));
+  val_db_vrt_if_st_t *val(ZALLOC_TYPE(val_db_vrt_if_st_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVrtIfSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVrtIf, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeIfOperStatus(ikey,dmi,notification,skip,if_type));
   delete ikey;
 }
-TEST(UpdateVnodeIfOperStatus,UNC_KT_VROUTER ) {
 
+TEST_F(VtnMoMgrTest, UpdateVnodeIfOperStatus_UNC_KT_VROUTER) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool skip=true;
   int if_type=kLinkedInterface;
-  key_vrt_t *key = (key_vrt_t *)malloc(sizeof(key_vrt_t));
-  val_db_vrt_st_t *val = (val_db_vrt_st_t *)malloc(sizeof(val_db_vrt_st_t));
+  key_vrt_t *key(ZALLOC_TYPE(key_vrt_t));
+  val_db_vrt_st_t *val(ZALLOC_TYPE(val_db_vrt_st_t));
   val->down_count=0;
   val->fault_count=0;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVrtSt, val);
@@ -5126,26 +5328,27 @@ TEST(UpdateVnodeIfOperStatus,UNC_KT_VROUTER ) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeIfOperStatus(ikey,dmi,notification,skip,if_type));
   delete ikey;
 }
-TEST(RestoreVtnOperStatus,invalid_keytype ) {
 
+TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_invalid_keytype) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrDisconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
   delete ikey;
 }
-TEST(RestoreVtnOperStatus,VALID ) {
 
+TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrDisconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   val_db_vtn_st_t *val = NULL;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
@@ -5153,26 +5356,28 @@ TEST(RestoreVtnOperStatus,VALID ) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
   delete ikey;
 }
-TEST(RestoreVtnOperStatus,VALID_01 ) {
+
+TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID_01) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrDisconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key,val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(RestoreVtnOperStatus,VALID_02 ) {
+
+TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID_02) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key,val);
 
@@ -5181,15 +5386,16 @@ TEST(RestoreVtnOperStatus,VALID_02 ) {
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(RestoreVtnOperStatus,VALID_03 ) {
+
+TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID_03) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrDisconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key,val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
@@ -5197,44 +5403,44 @@ TEST(RestoreVtnOperStatus,VALID_03 ) {
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(RestoreVtnOperStatus,ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *ikey = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
   delete ikey;
 }
-TEST(RestoreVtnCtrlrOperStatus,ikey_NULL ) {
+
+TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctrlr_id=NULL;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnCtrlrOperStatus(ctrlr_id,dmi,notification));
   delete ikey;
 }
-TEST(RestoreVtnCtrlrOperStatus,valid_01 ) {
+
+TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_valid_01) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctrlr_id=NULL;
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=1;
   val_ctrlr->down_count=1;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
@@ -5243,30 +5449,26 @@ TEST(RestoreVtnCtrlrOperStatus,valid_01 ) {
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnCtrlrOperStatus(ctrlr_id,dmi,notification));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(RestoreVtnCtrlrOperStatus,valid_02 ) {
 
+TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_valid_02) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
   std::map<uint8_t,DalResultCode> map;
   map.insert(std::make_pair(1,kDalRcRecordNoMore));
   map.insert(std::make_pair(0,kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=1;
   val_ctrlr->down_count=1;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
@@ -5274,21 +5476,19 @@ TEST(RestoreVtnCtrlrOperStatus,valid_02 ) {
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnCtrlrOperStatus(ctr_id1,dmi,notification));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
 }
-TEST(RestoreVtnCtrlrOperStatus,valid_03 ) {
 
+TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_valid_03) {
   VtnMoMgr vtn;
   state_notification notification=kCtrlrReconnect;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctrlr_id=NULL;
-  key_vtn_controller_t *key_ctrlr = reinterpret_cast<key_vtn_controller_t *>(malloc
-                 (sizeof(key_vtn_controller_t)));
+  key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
-  val_vtn_ctrlr_t *val_ctrlr = reinterpret_cast<val_vtn_ctrlr_t *>(malloc
-                 (sizeof(val_vtn_ctrlr_t)));
+  val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_ctrlr->ref_count=1;
   val_ctrlr->down_count=1;
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
@@ -5303,10 +5503,9 @@ TEST(RestoreVtnCtrlrOperStatus,valid_03 ) {
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.RestoreVtnCtrlrOperStatus(ctrlr_id,dmi,notification));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(CreateVtunnelKey,ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, CreateVtunnelKey_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   ConfigKeyVal *okey = NULL;
@@ -5314,11 +5513,11 @@ TEST(CreateVtunnelKey,ikey_NULL ) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.CreateVtunnelKey(ikey,okey));
   delete ikey;
 }
-TEST(CreateVtunnelKey,IpctSt_invalid ) {
 
+TEST_F(VtnMoMgrTest, CreateVtunnelKey_IpctSt_invalid) {
   VtnMoMgr vtn;
-  key_vtunnel_t *key = (key_vtunnel_t *)malloc(sizeof(key_vtunnel_t));
-  val_vtunnel_t *val = (val_vtunnel_t *)malloc(sizeof(val_vtunnel_t));
+  key_vtunnel_t *key(ZALLOC_TYPE(key_vtunnel_t));
+  val_vtunnel_t *val(ZALLOC_TYPE(val_vtunnel_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
@@ -5326,11 +5525,11 @@ TEST(CreateVtunnelKey,IpctSt_invalid ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.CreateVtunnelKey(ikey,okey));
   delete ikey;
 }
-TEST(CreateVtunnelKey,IpctSt_valid ) {
 
+TEST_F(VtnMoMgrTest, CreateVtunnelKey_IpctSt_valid) {
   VtnMoMgr vtn;
-  key_vtunnel_t *key = (key_vtunnel_t *)malloc(sizeof(key_vtunnel_t));
-  val_vtunnel_t *val = (val_vtunnel_t *)malloc(sizeof(val_vtunnel_t));
+  key_vtunnel_t *key(ZALLOC_TYPE(key_vtunnel_t));
+  val_vtunnel_t *val(ZALLOC_TYPE(val_vtunnel_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtunnelSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel, key, config_val);
   ConfigKeyVal *okey = NULL;
@@ -5338,12 +5537,12 @@ TEST(CreateVtunnelKey,IpctSt_valid ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.CreateVtunnelKey(ikey,okey));
   delete ikey;
 }
-TEST(SwapKeyVal,ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, SwapKeyVal_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   ConfigKeyVal *okey = NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctrlr=NULL;
   bool no_rename;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SwapKeyVal(ikey,okey,dmi,ctrlr,no_rename));
@@ -5351,88 +5550,103 @@ TEST(SwapKeyVal,ikey_NULL ) {
   delete ikey;
 }
 
-TEST(SwapKeyVal,IpctSt_valid ) {
-
+TEST_F(VtnMoMgrTest, SwapKeyVal_IpctSt_valid) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   const char *vtn_name = "VTN_1";
   bool no_rename;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  val_rename_vtn_t *val = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+          vtn_name, strlen(vtn_name)+1);
+  val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
   val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID_NO_VALUE;
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  delete okey;
+  okey = NULL;
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
+  val_rename_vtn_t *val1(UT_CLONE(val_rename_vtn_t, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtnSt, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn,
+                                       key1, cfgval1));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+            vtn.SwapKeyVal(ikey1, okey, dmi, ctr_id1, no_rename));
+  delete okey;
+  okey = NULL;
 
-  ConfigVal *config_val1= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val1);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.SwapKeyVal(ikey1,okey,dmi,ctr_id1,no_rename));
-
-  ConfigVal *config_val2= NULL;
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val2);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.SwapKeyVal(ikey2,okey,dmi,ctr_id1,no_rename));
+  key_vtn_t *key2(UT_CLONE(key_vtn_t, key));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key2, NULL));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+            vtn.SwapKeyVal(ikey2, okey, dmi, ctr_id1, no_rename));
+  delete okey;
+  okey = NULL;
 
-  val_rename_vtn_t *val3 = NULL;
-  ConfigVal *config_val3= new ConfigVal(IpctSt::kIpcStValVtnSt, val3);
-  ConfigKeyVal *ikey3 = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val3);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SwapKeyVal(ikey3,okey,dmi,ctr_id1,no_rename));
+  key_vtn_t *key3(UT_CLONE(key_vtn_t, key));
+  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVtnSt, NULL));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                       key3, cfgval3));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.SwapKeyVal(ikey3, okey, dmi, ctr_id1, no_rename));
 
   delete okey;
   delete ikey;
+  delete ikey1;
+  delete ikey2;
+  delete ikey3;
+  free(ctr_id1);
 }
-TEST(SwapKeyVal,IpctSt_valid_01 ) {
 
+TEST_F(VtnMoMgrTest, SwapKeyVal_IpctSt_valid_01) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   const char *vtn_name = "VTN_1";
   bool no_rename;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  val_rename_vtn_t *val = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
+          vtn_name, strlen(vtn_name)+1);
+  val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
+  pfc_strlcpy(reinterpret_cast<char *>(val->new_name), "VTN_2",
+              sizeof(val->new_name));
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
   val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  delete okey;
   delete ikey;
+  free(ctr_id1);
 }
 
-TEST(SwapKeyVal,same_newName ) {
-
+TEST_F(VtnMoMgrTest, SwapKeyVal_same_newName) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   const char *vtn_name = "vtn1";
   const char *new_name = "vtn1";
   bool no_rename;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  val_rename_vtn_t *val = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
-  memset(val,0,sizeof(val_rename_vtn));
+          vtn_name, strlen(vtn_name)+1);
+  val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
   strncpy(reinterpret_cast<char *>(val->new_name),
-  new_name, strlen(new_name)+1);
+          new_name, strlen(new_name)+1);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
@@ -5441,26 +5655,24 @@ TEST(SwapKeyVal,same_newName ) {
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
   delete okey;
   delete ikey;
+  free(ctr_id1);
 }
-TEST(SwapKeyVal,EmptyNewName ) {
 
+TEST_F(VtnMoMgrTest, SwapKeyVal_EmptyNewName) {
   VtnMoMgr vtn;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   const char *vtn_name = "vtn1";
   const char *new_name = " ";
   bool no_rename;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key,0,sizeof(key_vtn));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  val_rename_vtn_t *val = (val_rename_vtn_t *)malloc(sizeof(val_rename_vtn_t));
-  memset(val,0,sizeof(val_rename_vtn));
+          vtn_name, strlen(vtn_name)+1);
+  val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
   strncpy(reinterpret_cast<char *>(val->new_name),
-  new_name, strlen(new_name)+1);
+          new_name, strlen(new_name)+1);
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
@@ -5469,23 +5681,22 @@ TEST(SwapKeyVal,EmptyNewName ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
   delete okey;
   delete ikey;
+  free(ctr_id1);
 }
 
-TEST(UpdateCtrlrConfigStatus,valid ) {
-
+TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_valid) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
   unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
@@ -5493,42 +5704,40 @@ TEST(UpdateCtrlrConfigStatus,valid ) {
   delete ikey;
 }
 
-TEST(UpdateCtrlrConfigStatus,phase_kUpllUcpCreate ) {
 
+TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpCreate) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
   unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
   delete ikey;
 }
-TEST(UpdateCtrlrConfigStatus,phase_kUpllUcpUpdate ) {
 
+TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpUpdate) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
   unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->cs_row_status = UNC_CS_INVALID;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
@@ -5536,21 +5745,20 @@ TEST(UpdateCtrlrConfigStatus,phase_kUpllUcpUpdate ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
   delete ikey;
 }
-TEST(UpdateCtrlrConfigStatus,phase_kUpllUcpUpdate_invalid ) {
 
+TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpUpdate_invalid) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
   unc_keytype_configstatus_t cs_status=UNC_CS_INVALID;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
@@ -5558,89 +5766,88 @@ TEST(UpdateCtrlrConfigStatus,phase_kUpllUcpUpdate_invalid ) {
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
   delete ikey;
 }
-TEST(UpdateAuditConfigStatus,valid ) {
 
+TEST_F(VtnMoMgrTest, UpdateAuditConfigStatus_valid) {
   VtnMoMgr vtn;
   unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateAuditConfigStatus(cs_status,phase,ikey));
   delete ikey;
 }
-TEST(UpdateAuditConfigStatus, phase_kUpllUcpCreate ) {
 
+TEST_F(VtnMoMgrTest, UpdateAuditConfigStatus_phase_kUpllUcpCreate) {
   VtnMoMgr vtn;
   unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
   uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
   EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateAuditConfigStatus(cs_status,phase,ikey));
   delete ikey;
 }
-TEST(SetVtnConsolidatedStatus,ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctrlr=NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctrlr,dmi));
   delete ikey;
 }
-TEST(SetVtnConsolidatedStatus,ctrlr_valid ) {
 
+TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_ctrlr_valid) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->down_count=0;
   val_vtn->ref_count=0;
   val_vtn->cs_row_status=UNC_CS_APPLIED;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctr_id1,dmi));
   delete ikey;
+  free(ctr_id1);
 }
-TEST(SetVtnConsolidatedStatus,ctrlr_valid_01 ) {
 
+TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_ctrlr_valid_01) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->down_count=0;
   val_vtn->ref_count=0;
   val_vtn->cs_row_status=UNC_CS_APPLIED;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
 
@@ -5650,78 +5857,74 @@ TEST(SetVtnConsolidatedStatus,ctrlr_valid_01 ) {
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctr_id1,dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
+  free(ctr_id1);
 }
 
-TEST(SetVtnConsolidatedStatus,keytype_invalid ) {
 
+TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_keytype_invalid) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  uint8_t *ctr_id1 = (uint8_t *)malloc(32);
-  memset(ctr_id1, '\0', 32);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctr_id1,dmi));
   delete ikey;
+  free(ctr_id1);
 }
-TEST(SetConsolidatedStatus,ikey_valid ) {
 
+TEST_F(VtnMoMgrTest, SetConsolidatedStatus_ikey_valid) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  key_vtn_controller *key = (key_vtn_controller *)malloc(sizeof(key_vtn_controller));
-  memset(key,0,sizeof(key_vtn_controller));
+  key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
-  vtn_name, strlen(controller_name)+1);
+          vtn_name, strlen(controller_name)+1);
   strncpy(reinterpret_cast<char *>(key->domain_id),
-  vtn_name, strlen(domain_id)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(domain_id)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
   delete ikey;
 }
-TEST(SetConsolidatedStatus,ikey_proper ) {
 
+TEST_F(VtnMoMgrTest, SetConsolidatedStatus_ikey_proper) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key,0,sizeof(key_vtn_t));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(vtn_name)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->down_count=0;
   val_vtn->ref_count=0;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
   delete ikey;
 }
-TEST(SetConsolidatedStatus,ikey_proper_01 ) {
 
+TEST_F(VtnMoMgrTest, SetConsolidatedStatus_ikey_proper_01) {
   VtnMoMgr vtn;
   const char *vtn_name = "VTN_1";
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key,0,sizeof(key_vtn_t));
+  key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
-  vtn_name, strlen(vtn_name)+1);
-  val_vtn_ctrlr_t *val_vtn = (val_vtn_ctrlr_t *)malloc(sizeof(val_vtn_ctrlr_t));
+          vtn_name, strlen(vtn_name)+1);
+  val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->down_count=0;
   val_vtn->ref_count=0;
   DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
@@ -5733,154 +5936,167 @@ TEST(SetConsolidatedStatus,ikey_proper_01 ) {
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
   delete ikey;
-  DalOdbcMgr::clearStubData();
 }
-TEST(TxCopyCandidateToRunning,ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_ikey_NULL) {
   VtnMoMgr vtn;
   unc_key_type_t keytype = UNC_KT_VTN;
   CtrlrCommitStatusList *ctrlr_commit_status=NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxCopyCandidateToRunning(keytype,ctrlr_commit_status,dmi));
 }
 
-TEST(TxCopyCandidateToRunning,valid_01 ) {
-
+TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_01) {
   VtnMoMgr vtn;
   std::list<CtrlrCommitStatus *> CtrlrCommitStatusList;
 
-  struct CtrlrTxResult * l_CtrlrTxResult =  new  CtrlrTxResult("vtn",(upll_rc_t)1,1);
+  struct CtrlrTxResult *l_CtrlrTxResult
+    (new CtrlrTxResult("vtn",(upll_rc_t)1, 1));
   l_CtrlrTxResult->upll_ctrlr_result = UPLL_RC_SUCCESS;
 
   CtrlrCommitStatusList.push_back(l_CtrlrTxResult);
   unc_key_type_t keytype = UNC_KT_VTN;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   l_CtrlrTxResult->err_ckv = ikey;
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxCopyCandidateToRunning(keytype,&CtrlrCommitStatusList,dmi));
-  delete ikey;
+  delete l_CtrlrTxResult;
 }
 
-TEST(TxCopyCandidateToRunning,valid_02 ) {
-
+TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_02) {
   VtnMoMgr vtn;
   std::list<CtrlrCommitStatus *> CtrlrCommitStatusList;
 
-  struct CtrlrTxResult * l_CtrlrTxResult =  new  CtrlrTxResult("vtn",(upll_rc_t)1,1);
+  struct CtrlrTxResult * l_CtrlrTxResult
+    (new CtrlrTxResult("vtn",(upll_rc_t)1, 1));
   l_CtrlrTxResult->upll_ctrlr_result = UPLL_RC_ERR_GENERIC;
 
   CtrlrCommitStatusList.push_back(l_CtrlrTxResult);
   unc_key_type_t keytype = UNC_KT_VTN;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
   l_CtrlrTxResult->err_ckv = ikey;
 
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxCopyCandidateToRunning(keytype,&CtrlrCommitStatusList,dmi));
-  delete ikey;
+  delete l_CtrlrTxResult;
 }
-TEST(GetRenameInfo, ikey_NULL ) {
 
+TEST_F(VtnMoMgrTest, GetRenameInfo_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey=NULL;
   ConfigKeyVal *okey=NULL;
   ConfigKeyVal *rename_info=NULL;
   const char *ctrlr_id = "Controller1";
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool renamed;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  GetKeyValStruct(key, val);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenameInfo(ikey,okey,rename_info,dmi,ctrlr_id,renamed));
   delete ikey;
   delete rename_info;
 }
 
-TEST(GetRenameInfo, key_NULL ) {
-
+TEST_F(VtnMoMgrTest, GetRenameInfo_key_NULL) {
   VtnMoMgr vtn;
   const char *ctrlr_id = "Controller1";
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool renamed=true;
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  memset(key, '\0', sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key,val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+
+  key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
+  val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
+  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                      key1, cfgval1));
   ConfigKeyVal *rename_info = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenameInfo(ikey,okey,rename_info,dmi,ctrlr_id,renamed));
   delete ikey;
+  delete okey;
 }
-TEST(GetRenameInfo, renamed_false ) {
 
+TEST_F(VtnMoMgrTest, GetRenameInfo_renamed_false) {
   VtnMoMgr vtn;
   const char *ctrlr_id = "Controller1";
-  DalDmlIntf *dmi= new DalOdbcMgr();
+  DalDmlIntf *dmi(getDalDmlIntf());
   bool renamed=false;
-  key_rename_vnode_info_t *key1 = (key_rename_vnode_info_t *)malloc(sizeof(key_rename_vnode_info_t));
-  val_rename_vnode_t *val1 = (val_rename_vnode_t *)malloc(sizeof(val_rename_vnode_t));
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  key_rename_vnode_info_t *key1(ZALLOC_TYPE(key_rename_vnode_info_t));
+  val_rename_vnode_t *val1(ZALLOC_TYPE(val_rename_vnode_t));
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+
+  key_vtn_t *key_o(UT_CLONE(key_vtn_t, key));
+  val_vtn_t *val_o(UT_CLONE(val_vtn_t, val));
+  ConfigVal *cfg_o(new ConfigVal(IpctSt::kIpcStValVtn, val_o));
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_o,
+                                      cfg_o));
+
   ConfigVal *config_val1= new ConfigVal(IpctSt::kIpcStValVtnSt, val1);
   ConfigKeyVal *rename_info = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key1, config_val1);
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenameInfo(ikey,okey,rename_info,dmi,ctrlr_id,renamed));
   delete ikey;
+  delete okey;
+  delete rename_info;
 }
 
-TEST(TxUpdateProcess,Create_01 ) {
-
+TEST_F(VtnMoMgrTest, TxUpdateProcess_Create_01) {
   VtnMoMgr vtn;
-  IpcResponse *req = reinterpret_cast<IpcResponse*>(malloc(sizeof(IpcResponse)));
   unc_keytype_operation_t op=UNC_OP_CREATE;
   controller_domain *ctrlr_dom=NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
-  GetKeyValStruct(key, val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrSt, NULL);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, NULL, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateProcess(ikey,req,op,dmi,ctrlr_dom));
+  IPC_RESPONSE_DECL(resp);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.TxUpdateProcess(ikey, resp, op, dmi, ctrlr_dom));
 
   delete ikey;
 }
-TEST(TxUpdateProcess,Create_02 ) {
 
+TEST_F(VtnMoMgrTest, TxUpdateProcess_Create_02) {
   VtnMoMgr vtn;
-  IpcResponse *req = reinterpret_cast<IpcResponse*>(malloc(sizeof(IpcResponse)));
   unc_keytype_operation_t op=UNC_OP_CREATE;
   controller_domain *ctrlr_dom=NULL;
-  DalDmlIntf *dmi= new DalOdbcMgr();
-  key_vtn_t *key = (key_vtn_t *)malloc(sizeof(key_vtn_t));
-  val_vtn_t *val = (val_vtn_t *)malloc(sizeof(val_vtn_t));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key;
+  val_vtn_t *val;
   GetKeyValStruct(key, val);
+
   ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateProcess(ikey,req,op,dmi,ctrlr_dom));
+  IPC_RESPONSE_DECL(resp);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            vtn.TxUpdateProcess(ikey, resp, op, dmi, ctrlr_dom));
 
   delete ikey;
 }
+
 }
 }
 }
index da4f217dac6553aa8ad848a519817f1613309ea2..5b01c5ea0e794d22e5a83e189ccfc0c4d55f6708 100644 (file)
@@ -1,14 +1,12 @@
 /*
  * Copyright (c) 2012-2013 NEC Corporation
- *           * All rights reserved.
+ * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-
-
 #include <limits.h>
 #include <gtest/gtest.h>
 
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include "stub/ODBC/include/odbcm_mgr.hh"
+#include <odbcm_mgr.hh>
 #include "PhysicalLayerStub.hh"
-#include "itc_read_request.hh"
-#include "tclib_module.hh"
-#include "physical_common_def.hh"
-#include "unc/uppl_common.h"
-#include "unc/keytype.h"
-#include "unc/upll_svc.h"
-#include "itc_kt_boundary.hh"
-#include "itc_kt_controller.hh"
-#include "itc_kt_ctr_domain.hh"
-#include "itc_kt_switch.hh"
-#include "itc_kt_port.hh"
-#include "itc_kt_link.hh"
-#include "ipct_util.hh"
-
+#include <itc_read_request.hh>
+#include <tclib_module.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <unc/upll_svc.h>
+#include <itc_kt_boundary.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <ipct_util.hh>
+#include "ut_util.hh"
 
 using namespace pfc;
 using namespace pfc::core;
 using namespace pfc::core::ipc;
 using namespace std;
 using namespace unc::tclib;
+using namespace unc::uppl::test;
 
-ClientSession *cli_sess = NULL;
-pfc_ipcid_t service = UPPL_SVC_CONFIGREQ;
-class KtClassTest : public testing::Test {
-protected:
-  virtual void SetUp() {
-    unc::tclib::TcLibModule::stub_loadtcLibModule();
-    if (cli_sess == NULL) {
-      pfc_ipcconn_t connp = 0;
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);
-      ASSERT_EQ(0, err);
-      //ASSERT_TRUE(connp != 0);
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-      //ASSERT_EQ(0, err);
-    } else {
-      cli_sess->reset(UPPL_IPC_SVC_NAME, service);
-    }
-  }
-  virtual void TearDown() {
-  }
+class BoundaryTest
+  : public UpplTestEnv
+{
 };
 
-char pkempty[] = "";
-char pkName1[] = "Boundary1";
-char pkName2[] = "Boundary2";
-char pkName3[] = "Boundary3";
-char pkName4[] = "Boundary4";
-char pkName5[] = "Boundary5";
-char pkNameNonExistent[] = "NonExistent";
+static char pkName1[] = "Boundary1";
 
-void getKeyForKtBoundary0(key_boundary_t& k) {
+static void getKeyForKtBoundary0(key_boundary_t& k) {
   memset(k.boundary_id, '\0', 32);
 }
 
-void getKeyForKtBoundary1(key_boundary_t& k) {
+static void getKeyForKtBoundary1(key_boundary_t& k) {
   memset(k.boundary_id, '\0', 32);
   memcpy(k.boundary_id, pkName1, strlen(pkName1));
 }
 
-void getKeyForKtBoundary2(key_boundary_t& k) {
-  memset(k.boundary_id, '\0', 32);
-  memcpy(k.boundary_id, pkName2, strlen(pkName2));
-}
-
-void getKeyForKtBoundary3(key_boundary_t& k) {
-  memset(k.boundary_id, '\0', 32);
-  memcpy(k.boundary_id, pkName3, strlen(pkName3));
-}
-
-void getKeyForKtBoundary4(key_boundary_t& k) {
-  memset(k.boundary_id, '\0', 32);
-  memcpy(k.boundary_id, pkName4, strlen(pkName4));
-}
-
-void getKeyForKtBoundary5(key_boundary_t& k) {
-  memset(k.boundary_id, '\0', 32);
-  memcpy(k.boundary_id, pkName5, strlen(pkName5));
-}
-
-
-void getValForKtBoundary1(val_boundary_t& v) {
+static void getValForKtBoundary1(val_boundary_t& v) {
   memset(v.description, '\0', 128);
   memcpy(v.description, "boundary description", strlen("boundary description"));
-
   
   memset(v.controller_name1, '\0', 32);
   memcpy(v.controller_name1, "Controller5", strlen("Controller5"));
 
   memset(v.domain_name1, '\0', 32);
   memcpy(v.domain_name1, "domain1", strlen("domain1"));
-
  
   memset(v.logical_port_id1, '\0', 320);
   memcpy(v.logical_port_id1, "{0xab,0xc}", strlen("{0xab,0xc}"));
 
-
   memset(v.controller_name2, '\0', 32);
   memcpy(v.controller_name2, "Controller7", strlen("Controller7"));
-
   
   memset(v.domain_name2, '\0', 32);
   memcpy(v.domain_name2, "domain2", strlen("domain2"));
@@ -153,87 +103,21 @@ void getValForKtBoundary1(val_boundary_t& v) {
   v.cs_attr[6] =  '\0';
 }
 
-void getValForKtBoundary2(val_boundary_t& v) {
-
-  memset(v.description, '\0', 128);
-  memcpy(v.description, "bndry2 description", strlen("bndry2 description"));
-
-
-  memset(v.controller_name1, '\0', 32);
-  memcpy(v.controller_name1, "Controller5", strlen("Controller5"));
-
-
-  memset(v.domain_name1, '\0', 32);
-  memcpy(v.domain_name1, "domain4", strlen("domain4"));
-
-  
-  memset(v.logical_port_id1, '\0', 320);
-  memcpy(v.logical_port_id1, "{0x9a,0xa}", strlen("{0x9a,0xa}"));
-
-
-  memset(v.controller_name2, '\0', 32);
-  memcpy(v.controller_name2, "Controller7", strlen("Controller7"));
-
-  memset(v.domain_name2, '\0', 32);
-  memcpy(v.domain_name2, "domain5", strlen("domain5"));
-
-  memset(v.logical_port_id2, '\0', 320);
-  memcpy(v.logical_port_id2, "{0xef,0xf}", strlen("{0xef,0xf}"));
-
-  memset(v.valid, 1, 7);  // uint8_t valid[7];
-  v.cs_row_status = 0;  // uint8_t cs_row_status;
-  memset(v.cs_attr, 1, 7);  // uint8_t cs_attr[7]
-  v.cs_attr[6] =  '\0';
-}
-
-void getValForKtBoundary3(val_boundary_t& v) {
-  memset(v.description, '\0', 128);
-  memcpy(v.description, "", strlen(""));  // uint8_t description[128];
-
-  memset(v.controller_name1, '\0', 32);
-  memcpy(v.controller_name1, "", strlen(""));  // uint8_t controller_name1[32];
-
-  memset(v.domain_name1, '\0', 32);
-  memcpy(v.domain_name1, "", strlen(""));  // uint8_t domain_name1[32];
-
-  memset(v.logical_port_id1, '\0', 320);
-  memcpy(v.logical_port_id1, "", strlen(""));  // uint8_t logical_port_id1[320];
-
-  memset(v.controller_name2, '\0', 32);
-  memcpy(v.controller_name2, "", strlen(""));  // uint8_t controller_name1[32];
-
-  memset(v.domain_name2, '\0', 32);
-  memcpy(v.domain_name2, "", strlen(""));  // uint8_t domain_name2[32];
-
-  memset(v.logical_port_id2, '\0', 320);
-  memcpy(v.logical_port_id2, "", strlen(""));  // uint8_t logical_port_id2[320];
-
-  memset(v.valid, '\0', 7);  // uint8_t valid[7];
-  v.cs_row_status = 0;  // uint8_t cs_row_status;
-  memset(v.cs_attr, '\0', 7);  // uint8_t cs_attr[7];
-}
-
-void getValForKtBoundary5(val_boundary_t& v) {
+static void getValForKtBoundary5(val_boundary_t& v) {
   memset(v.description, '\0', 128);
   memcpy(v.description, "boundary description", strlen("boundary description"));
-
   
   memset(v.controller_name1, '\0', 32);
   memcpy(v.controller_name1, "Controller5", strlen("Controller5"));
-
  
   memset(v.domain_name1, '\0', 32);
   memcpy(v.domain_name1, "domain1", strlen("domain1"));
 
   memset(v.logical_port_id1, '\0', 320);
   memcpy(v.logical_port_id1, "{0xab,0xc}", strlen("{0xab,0xc}"));
 
-
   memset(v.controller_name2, '\0', 32);
   memcpy(v.controller_name2, "Controller5", strlen("Controller5"));
-
   
   memset(v.domain_name2, '\0', 32);
   memcpy(v.domain_name2, "domain1", strlen("domain1"));
@@ -246,24 +130,24 @@ void getValForKtBoundary5(val_boundary_t& v) {
   memset(v.cs_attr, 1, 7);  // uint8_t cs_attr[7]
   v.cs_attr[6] =  '\0';
 }
+
 // Create for unsupported datatype
-TEST_F(KtClassTest, Create_01) {
+TEST_F(BoundaryTest, Create_01) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
-  PhysicalLayerStub::loadphysicallayer();
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // Boundary  Create success 
-TEST_F(KtClassTest, Create_02) {
+TEST_F(BoundaryTest, Create_02) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t session_id = 1;
@@ -284,12 +168,11 @@ TEST_F(KtClassTest, Create_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // Boundary  Create Server session addOutput failed 
-TEST_F(KtClassTest, Create_03) {
+TEST_F(BoundaryTest, Create_03) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t session_id = 1;
@@ -298,7 +181,6 @@ TEST_F(KtClassTest, Create_03) {
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_CREATE);
@@ -310,12 +192,11 @@ TEST_F(KtClassTest, Create_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // CreateOneRow returns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, CreateKeyInstance_01) {
+TEST_F(BoundaryTest, CreateKeyInstance_01) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t key_type = 1;
@@ -325,12 +206,11 @@ TEST_F(KtClassTest, CreateKeyInstance_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // CreateOneRow returns ODBCM_RC_PKEY_VIOLATION
-TEST_F(KtClassTest, CreateKeyInstance_02) {
+TEST_F(BoundaryTest, CreateKeyInstance_02) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t key_type = 1;
@@ -340,12 +220,11 @@ TEST_F(KtClassTest, CreateKeyInstance_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_PKEY_VIOLATION);
   int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_INSTANCE_EXISTS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 // CreateOneRow returns ODBCM_RC_QUERY_FAILED
-TEST_F(KtClassTest, CreateKeyInstance_03) {
+TEST_F(BoundaryTest, CreateKeyInstance_03) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t key_type = 1;
@@ -355,12 +234,11 @@ TEST_F(KtClassTest, CreateKeyInstance_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_QUERY_FAILED);
   int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
 
 // CreateOneRow returns ODBCM_RC_QUERY_FAILED
-TEST_F(KtClassTest, CreateKeyInstance_04) {
+TEST_F(BoundaryTest, CreateKeyInstance_04) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t key_type = 1;
@@ -370,12 +248,11 @@ TEST_F(KtClassTest, CreateKeyInstance_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // Update for unsupported datatype
-TEST_F(KtClassTest, Update_01) {
+TEST_F(BoundaryTest, Update_01) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t session_id = 1;
@@ -386,11 +263,11 @@ TEST_F(KtClassTest, Update_01) {
   ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // Boundary  Update success 
-TEST_F(KtClassTest, Update_02) {
+TEST_F(BoundaryTest, Update_02) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t session_id = 1;
@@ -399,7 +276,6 @@ TEST_F(KtClassTest, Update_02) {
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
@@ -412,12 +288,11 @@ TEST_F(KtClassTest, Update_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // Boundary  Update Server session addOutput failed 
-TEST_F(KtClassTest, Update_03) {
+TEST_F(BoundaryTest, Update_03) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t session_id = 1;
@@ -426,7 +301,6 @@ TEST_F(KtClassTest, Update_03) {
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
@@ -438,15 +312,13 @@ TEST_F(KtClassTest, Update_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // UpdateOneRow returns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, Update_04) {
+TEST_F(BoundaryTest, Update_04) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t key_type = 1;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
@@ -454,7 +326,6 @@ TEST_F(KtClassTest, Update_04) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
@@ -467,15 +338,13 @@ TEST_F(KtClassTest, Update_04) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // UpdateOneRow returns ODBCM_RC_PKEY_VIOLATION
-TEST_F(KtClassTest, Update_05) {
+TEST_F(BoundaryTest, Update_05) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t key_type = 1;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
@@ -483,7 +352,6 @@ TEST_F(KtClassTest, Update_05) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
@@ -496,11 +364,11 @@ TEST_F(KtClassTest, Update_05) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_PKEY_VIOLATION);
   int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // ReadBulkInternal GetBulkRows returns ODBCM_RC_RECORD_NOT_FOUND 
-TEST_F(KtClassTest, ReadBulkInternal_01) {
+TEST_F(BoundaryTest, ReadBulkInternal_01) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -515,12 +383,11 @@ TEST_F(KtClassTest, ReadBulkInternal_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ReadBulkInternal GetBulkRows returns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, ReadBulkInternal_02) {
+TEST_F(BoundaryTest, ReadBulkInternal_02) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -535,12 +402,11 @@ TEST_F(KtClassTest, ReadBulkInternal_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ReadBulkInternal GetBulkRows returns ODBCM_RC_QUERY_FAILED 
-TEST_F(KtClassTest, ReadBulkInternal_03) {
+TEST_F(BoundaryTest, ReadBulkInternal_03) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -555,11 +421,11 @@ TEST_F(KtClassTest, ReadBulkInternal_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_QUERY_FAILED);
   int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 // ReadBulkInternal GetBulkRows returns ODBCM_RC_SUCCESS
-TEST_F(KtClassTest, ReadBulkInternal_04) {
+TEST_F(BoundaryTest, ReadBulkInternal_04) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -570,26 +436,20 @@ TEST_F(KtClassTest, ReadBulkInternal_04) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // Boundary  Delete on unsupported data type server sessio failed
-TEST_F(KtClassTest, Delete_01) {
+TEST_F(BoundaryTest, Delete_01) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -601,19 +461,17 @@ TEST_F(KtClassTest, Delete_01) {
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_RUNNING,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // Boundary  Delete on unsupported data type server session pass
-TEST_F(KtClassTest, Delete_02) {
+TEST_F(BoundaryTest, Delete_02) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -625,22 +483,18 @@ TEST_F(KtClassTest, Delete_02) {
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_RUNNING,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 #if 0
 // DeleteOneRow returns ODBCM_RC_SUCCESS
-TEST_F(KtClassTest, Delete_03) {
+TEST_F(BoundaryTest, Delete_03) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -654,19 +508,17 @@ TEST_F(KtClassTest, Delete_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // DeleteOneRow returns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, Delete_04) {
+TEST_F(BoundaryTest, Delete_04) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -680,19 +532,17 @@ TEST_F(KtClassTest, Delete_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // DeleteOneRow returns ODBCM_RC_ROW_NOT_EXISTS
-TEST_F(KtClassTest, Delete_05) {
+TEST_F(BoundaryTest, Delete_05) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -705,19 +555,17 @@ TEST_F(KtClassTest, Delete_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // DeleteOneRow returns ODBCM_RC_FAILED
-TEST_F(KtClassTest, Delete_06) {
+TEST_F(BoundaryTest, Delete_06) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -730,19 +578,19 @@ TEST_F(KtClassTest, Delete_06) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 #endif
+
 // DeleteOneRow returns ODBCM_RC_FAILED
-TEST_F(KtClassTest, Delete_07) {
+TEST_F(BoundaryTest, Delete_07) {
   key_boundary_t k;
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -755,31 +603,29 @@ TEST_F(KtClassTest, Delete_07) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 // ReadInternal success
-TEST_F(KtClassTest, ReadInternal_01) {
+TEST_F(BoundaryTest, ReadInternal_01) {
   key_boundary_t k;
-  val_boundary_t v;
+  val_boundary_st_t v;
   getKeyForKtBoundary1(k);
-  getValForKtBoundary1(v);
+  getValForKtBoundary1(v.boundary);
   vector<void *> boundary_key;
   vector<void *> boundary_val;
   boundary_key.push_back(&k);
   boundary_val.push_back(&v);
   uint32_t operation_type = UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.ReadInternal(db_conn,boundary_key,boundary_val,UNC_DT_STATE,operation_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadInternal operation_type != UNC_OP_READ
-TEST_F(KtClassTest, ReadInternal_02) {
+TEST_F(BoundaryTest, ReadInternal_02) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -793,11 +639,11 @@ TEST_F(KtClassTest, ReadInternal_02) {
   ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ReadInternal(db_conn,boundary_key,boundary_val,UNC_DT_STATE,operation_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadBoundaryValFromDB returns failure
-TEST_F(KtClassTest, ReadInternal_03) {
+TEST_F(BoundaryTest, ReadInternal_03) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -808,114 +654,96 @@ TEST_F(KtClassTest, ReadInternal_03) {
   boundary_val.push_back(&v);
   uint32_t operation_type = UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.ReadInternal(db_conn,boundary_key,boundary_val,UNC_DT_STATE,operation_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ReadBulk 
-TEST_F(KtClassTest, ReadBulk_01) {
+TEST_F(BoundaryTest, ReadBulk_01) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct = 2;
   int child_index = 1;
   ReadRequest *read_req  = NULL;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_IMPORT,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 // ReadBulk 
-TEST_F(KtClassTest, ReadBulk_02) {
+TEST_F(BoundaryTest, ReadBulk_02) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct = 0;
   int child_index = 1;
   ReadRequest *read_req  = NULL;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_CANDIDATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadBulk 
-TEST_F(KtClassTest, ReadBulk_03) {
+TEST_F(BoundaryTest, ReadBulk_03) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
-  ReadRequest *read_req  = new ReadRequest;
+  ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_CANDIDATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_CANDIDATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadBulk 
-TEST_F(KtClassTest, ReadBulk_04) {
+TEST_F(BoundaryTest, ReadBulk_04) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct = 2;
   int child_index = 1;
-  ReadRequest *read_req  = new ReadRequest;
+  ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadBulk 
-TEST_F(KtClassTest, ReadBulk_05) {
+TEST_F(BoundaryTest, ReadBulk_05) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
-  ReadRequest *read_req  = new ReadRequest;
+  ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ReadBulk 
-TEST_F(KtClassTest, ReadBulk_06) {
+TEST_F(BoundaryTest, ReadBulk_06) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
-  ReadRequest *read_req  = new ReadRequest;
+  ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  ServerSession ses;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSyntaxValidation returns success
-TEST_F(KtClassTest, PerformSyntaxValidation_01) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_01) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -924,11 +752,11 @@ TEST_F(KtClassTest, PerformSyntaxValidation_01) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSyntaxValidation without boundary name
-TEST_F(KtClassTest, PerformSyntaxValidation_02) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_02) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary0(k);
@@ -936,11 +764,11 @@ TEST_F(KtClassTest, PerformSyntaxValidation_02) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // PerformSyntaxValidation without controller name1
-TEST_F(KtClassTest, PerformSyntaxValidation_03) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_03) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -950,10 +778,10 @@ TEST_F(KtClassTest, PerformSyntaxValidation_03) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 // PerformSyntaxValidation without controller name2
-TEST_F(KtClassTest, PerformSyntaxValidation_04) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_04) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -963,11 +791,11 @@ TEST_F(KtClassTest, PerformSyntaxValidation_04) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // PerformSyntaxValidation without domain name1
-TEST_F(KtClassTest, PerformSyntaxValidation_05) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_05) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -977,10 +805,10 @@ TEST_F(KtClassTest, PerformSyntaxValidation_05) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 // PerformSyntaxValidation without domain name2
-TEST_F(KtClassTest, PerformSyntaxValidation_06) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_06) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -990,10 +818,10 @@ TEST_F(KtClassTest, PerformSyntaxValidation_06) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 // PerformSyntaxValidation returns success
-TEST_F(KtClassTest, PerformSyntaxValidation_07) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_07) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1002,11 +830,11 @@ TEST_F(KtClassTest, PerformSyntaxValidation_07) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // PerformSyntaxValidation returns success
-TEST_F(KtClassTest, PerformSyntaxValidation_08) {
+TEST_F(BoundaryTest, PerformSyntaxValidation_08) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1015,11 +843,11 @@ TEST_F(KtClassTest, PerformSyntaxValidation_08) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GETONEROW returns ODBCM_RC_RECORD_NOT_FOUND 
-TEST_F(KtClassTest, ReadBoundaryValFromDB_01) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_01) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1033,12 +861,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // GETONEROW returns ODBCM_RC_CONNECTION_ERROR 
-TEST_F(KtClassTest, ReadBoundaryValFromDB_02) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_02) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1052,12 +879,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // GETONEROW returns ODBCM_RC_FAILED 
-TEST_F(KtClassTest, ReadBoundaryValFromDB_03) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_03) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1071,12 +897,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // GETBULKROWS returns ODBCM_RC_RECORD_NOT_FOUND 
-TEST_F(KtClassTest, ReadBoundaryValFromDB_04) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_04) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1090,12 +915,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ_NEXT,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // GETBULKROWS returns ODBCM_RC_CONNECTION_ERROR 
-TEST_F(KtClassTest, ReadBoundaryValFromDB_05) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_05) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1109,12 +933,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ_NEXT,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // GETBULKROWS returns ODBCM_RC_FAILED 
-TEST_F(KtClassTest, ReadBoundaryValFromDB_06) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_06) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1128,12 +951,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_06) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ_NEXT,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 //  operation_type < UNC_OP_READ
-TEST_F(KtClassTest, ReadBoundaryValFromDB_07) {
+TEST_F(BoundaryTest, ReadBoundaryValFromDB_07) {
   key_boundary_t k;
   val_boundary_t v;
   uint32_t max_rep_ct = 2;
@@ -1146,11 +968,11 @@ TEST_F(KtClassTest, ReadBoundaryValFromDB_07) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_CREATE,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GetModifiedRows returns ODBCM_RC_RECORD_NOT_FOUND 
-TEST_F(KtClassTest, GetModifiedRows_01) {
+TEST_F(BoundaryTest, GetModifiedRows_01) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
   CsRowStatus row_status = UPDATED; 
@@ -1158,12 +980,11 @@ TEST_F(KtClassTest, GetModifiedRows_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // GetModifiedRows returns ODBCM_RC_CONNECTION_ERROR 
-TEST_F(KtClassTest, GetModifiedRows_02) {
+TEST_F(BoundaryTest, GetModifiedRows_02) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
   CsRowStatus row_status = UPDATED; 
@@ -1171,12 +992,11 @@ TEST_F(KtClassTest, GetModifiedRows_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // GetModifiedRows returns ODBCM_RC_SUCCESS 
-TEST_F(KtClassTest, GetModifiedRows_03) {
+TEST_F(BoundaryTest, GetModifiedRows_03) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
   CsRowStatus row_status = UPDATED; 
@@ -1184,12 +1004,11 @@ TEST_F(KtClassTest, GetModifiedRows_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GetModifiedRows returns ODBCM_RC_FAILED 
-TEST_F(KtClassTest, GetModifiedRows_04) {
+TEST_F(BoundaryTest, GetModifiedRows_04) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
   CsRowStatus row_status = UPDATED; 
@@ -1197,22 +1016,21 @@ TEST_F(KtClassTest, GetModifiedRows_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
   int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // IsKeyExists with empty vector 
-TEST_F(KtClassTest, IsKeyExists_01) {
+TEST_F(BoundaryTest, IsKeyExists_01) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 // IsRowExists returns  ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, IsKeyExists_02) {
+TEST_F(BoundaryTest, IsKeyExists_02) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
   string BD1 = "boundary1";
@@ -1221,12 +1039,11 @@ TEST_F(KtClassTest, IsKeyExists_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // IsRowExists returns  ODBCM_RC_ROW_EXISTS
-TEST_F(KtClassTest, IsKeyExists_03) {
+TEST_F(BoundaryTest, IsKeyExists_03) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
   string BD1 = "boundary1";
@@ -1235,12 +1052,11 @@ TEST_F(KtClassTest, IsKeyExists_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // IsRowExists returns  ODBCM_RC_FAILED
-TEST_F(KtClassTest, IsKeyExists_04) {
+TEST_F(BoundaryTest, IsKeyExists_04) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
   string BD1 = "boundary1";
@@ -1249,12 +1065,11 @@ TEST_F(KtClassTest, IsKeyExists_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
   int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_CREATE
-TEST_F(KtClassTest, PerformSemanticValidation_01) {
+TEST_F(BoundaryTest, PerformSemanticValidation_01) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1263,12 +1078,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_CREATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_INSTANCE_EXISTS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 // IsKeyExists returns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, PerformSemanticValidation_02) {
+TEST_F(BoundaryTest, PerformSemanticValidation_02) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1277,12 +1091,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_CREATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_UPDATE
-TEST_F(KtClassTest, PerformSemanticValidation_03) {
+TEST_F(BoundaryTest, PerformSemanticValidation_03) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1291,12 +1104,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_DELETE
-TEST_F(KtClassTest, PerformSemanticValidation_04) {
+TEST_F(BoundaryTest, PerformSemanticValidation_04) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1305,10 +1117,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_DELETE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
-}// PerformSemanticValidation with UNC_OP_READ
-TEST_F(KtClassTest, PerformSemanticValidation_05) {
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+// PerformSemanticValidation with UNC_OP_READ
+TEST_F(BoundaryTest, PerformSemanticValidation_05) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1317,12 +1130,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_READ,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_UPDATE and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
-TEST_F(KtClassTest, PerformSemanticValidation_06) {
+TEST_F(BoundaryTest, PerformSemanticValidation_06) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1331,12 +1143,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_06) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_DELETE and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
-TEST_F(KtClassTest, PerformSemanticValidation_07) {
+TEST_F(BoundaryTest, PerformSemanticValidation_07) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1345,10 +1156,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_07) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_DELETE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
-}// PerformSemanticValidation with UNC_OP_READ and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
-TEST_F(KtClassTest, PerformSemanticValidation_08) {
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+// PerformSemanticValidation with UNC_OP_READ and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
+TEST_F(BoundaryTest, PerformSemanticValidation_08) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1357,12 +1169,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_08) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_READ,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_UPDATE and IsKeyExists returns ODBCM_RC_ROW_EXISTS
-TEST_F(KtClassTest, PerformSemanticValidation_09) {
+TEST_F(BoundaryTest, PerformSemanticValidation_09) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1373,12 +1184,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_09) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // controller1 == controller2 && domain1 == domain2
-TEST_F(KtClassTest, PerformSemanticValidation_10) {
+TEST_F(BoundaryTest, PerformSemanticValidation_10) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1389,12 +1199,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_10) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SEMANTIC);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
 // Val struct NULL
-TEST_F(KtClassTest, PerformSemanticValidation_11) {
+TEST_F(BoundaryTest, PerformSemanticValidation_11) {
   key_boundary_t k;
   val_boundary_t *v = NULL;
   getKeyForKtBoundary1(k);
@@ -1404,12 +1213,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_11) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSemanticValidation with UNC_OP_DELETE and IsKeyExists returns ODBCM_RC_ROW_EXISTS
-TEST_F(KtClassTest, PerformSemanticValidation_12) {
+TEST_F(BoundaryTest, PerformSemanticValidation_12) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1420,11 +1228,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_12) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_DELETE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // Getctr type failure
-TEST_F(KtClassTest, PerformSemanticValidation_13) {
+TEST_F(BoundaryTest, PerformSemanticValidation_13) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1434,12 +1242,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_13) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SEMANTIC);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
 // Domain1 name Default
-TEST_F(KtClassTest, PerformSemanticValidation_14) {
+TEST_F(BoundaryTest, PerformSemanticValidation_14) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1451,12 +1258,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_14) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SEMANTIC);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
 // Domain2 name Default
-TEST_F(KtClassTest, PerformSemanticValidation_15) {
+TEST_F(BoundaryTest, PerformSemanticValidation_15) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1468,68 +1274,60 @@ TEST_F(KtClassTest, PerformSemanticValidation_15) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SEMANTIC);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
 // ValidateSiblingFiltering
-TEST_F(KtClassTest, ValidateSiblingFiltering_01) {
+TEST_F(BoundaryTest, ValidateSiblingFiltering_01) {
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ValidateSiblingFiltering(0,0,1,1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // ValidateSiblingFiltering
-TEST_F(KtClassTest, ValidateSiblingFiltering_02) {
+TEST_F(BoundaryTest, ValidateSiblingFiltering_02) {
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ValidateSiblingFiltering(1,0,0,1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // ValidateSiblingFiltering
-TEST_F(KtClassTest, ValidateSiblingFiltering_03) {
+TEST_F(BoundaryTest, ValidateSiblingFiltering_03) {
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.ValidateSiblingFiltering(1,1,1,1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 // SendOperStatusNotification Success
-TEST_F(KtClassTest, SendOperStatusNotification_01) {
+TEST_F(BoundaryTest, SendOperStatusNotification_01) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
   uint8_t old_oper_st = 1;
   uint8_t new_oper_st = 0;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   ses.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(ret,UPPL_RC_FAILURE);
+  EXPECT_EQ(UPPL_RC_FAILURE, ret);
 }
 
 // SendOperStatusNotification Failure
-TEST_F(KtClassTest, SendOperStatusNotification_02) {
+TEST_F(BoundaryTest, SendOperStatusNotification_02) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
   uint8_t old_oper_st = 1;
   uint8_t new_oper_st = 0;
   ServerSession ses;
-  ServerSession::clearStubData();
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // GetAllBoundaryOperStatus success
-TEST_F(KtClassTest, GetAllBoundaryOperStatus_01) {
+TEST_F(BoundaryTest, GetAllBoundaryOperStatus_01) {
   string ctr_name = "controller1";
   string domain = "domain1";
   string lp_name = "logical_port1";
@@ -1538,12 +1336,11 @@ TEST_F(KtClassTest, GetAllBoundaryOperStatus_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.GetAllBoundaryOperStatus(db_conn,ctr_name,domain,lp_name,bdry_notfn,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GetAllBoundaryOperStatus Failure
-TEST_F(KtClassTest, GetAllBoundaryOperStatus_02) {
+TEST_F(BoundaryTest, GetAllBoundaryOperStatus_02) {
   string ctr_name = "controller1";
   string domain = "domain1";
   string lp_name = "logical_port1";
@@ -1552,12 +1349,11 @@ TEST_F(KtClassTest, GetAllBoundaryOperStatus_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret =  KtboundaryObj.GetAllBoundaryOperStatus(db_conn,ctr_name,domain,lp_name,bdry_notfn,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // CheckBoundaryExistence 
-TEST_F(KtClassTest, CheckBoundaryExistence_01) {
+TEST_F(BoundaryTest, CheckBoundaryExistence_01) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
@@ -1566,12 +1362,11 @@ TEST_F(KtClassTest, CheckBoundaryExistence_01) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.CheckBoundaryExistence(db_conn,&k,&v,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SEMANTIC);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
 // GetOperStatus success 
-TEST_F(KtClassTest, GetOperStatus_01) {
+TEST_F(BoundaryTest, GetOperStatus_01) {
   key_boundary_t k;
   uint8_t oper_status = 0;
   getKeyForKtBoundary1(k);
@@ -1579,12 +1374,11 @@ TEST_F(KtClassTest, GetOperStatus_01) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GetOperStatus Failure 
-TEST_F(KtClassTest, GetOperStatus_02) {
+TEST_F(BoundaryTest, GetOperStatus_02) {
   key_boundary_t k;
   uint8_t oper_status = 0;
   getKeyForKtBoundary1(k);
@@ -1592,12 +1386,11 @@ TEST_F(KtClassTest, GetOperStatus_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,oper_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // GetBoundaryValidFlag 
-TEST_F(KtClassTest, GetBoundaryValidFlag_01) {
+TEST_F(BoundaryTest, GetBoundaryValidFlag_01) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1606,81 +1399,82 @@ TEST_F(KtClassTest, GetBoundaryValidFlag_01) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.GetBoundaryValidFlag(db_conn,&k,v,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // IsBoundaryReferred with key type UNC_KT_CONTROLLER
-TEST_F(KtClassTest, IsBoundaryReferred_01) {
-  key_boundary_t k;
+TEST_F(BoundaryTest, IsBoundaryReferred_01) {
+  key_ctr_t k;
+  pfc_strlcpy(reinterpret_cast<char *>(k.controller_name), "Controller1",
+              sizeof(k.controller_name));
   unc_key_type_t keytype = UNC_KT_CONTROLLER;
-  uint8_t oper_status = 0;
-  getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.IsBoundaryReferred(db_conn,keytype,&k,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_FAILURE);
-  unc::uppl::ODBCManager::clearStubData();
+  ASSERT_EQ(PFC_TRUE,
+            KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
+                                             UNC_DT_STATE));
 }
 
 // IsBoundaryReferred with key type UNC_KT_CONTROLLER and row not exists
-TEST_F(KtClassTest, IsBoundaryReferred_02) {
-  key_boundary_t k;
+TEST_F(BoundaryTest, IsBoundaryReferred_02) {
+  key_ctr_t k;
+  pfc_strlcpy(reinterpret_cast<char *>(k.controller_name), "Controller1",
+              sizeof(k.controller_name));
   unc_key_type_t keytype = UNC_KT_CONTROLLER;
-  uint8_t oper_status = 0;
-  getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.IsBoundaryReferred(db_conn,keytype,&k,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ASSERT_EQ(PFC_FALSE,
+            KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
+                                             UNC_DT_STATE));
 }
 
 // IsBoundaryReferred with key type UNC_KT_CTR_DOMAIN
-TEST_F(KtClassTest, IsBoundaryReferred_03) {
-  key_boundary_t k;
+TEST_F(BoundaryTest, IsBoundaryReferred_03) {
+  key_ctr_domain_t k;
+  pfc_strlcpy(reinterpret_cast<char *>(k.ctr_key.controller_name),
+              "Controller1", sizeof(k.ctr_key.controller_name));
+  pfc_strlcpy(reinterpret_cast<char *>(k.domain_name), "Domain1",
+              sizeof(k.domain_name));
   unc_key_type_t keytype = UNC_KT_CTR_DOMAIN;
-  uint8_t oper_status = 0;
-  getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.IsBoundaryReferred(db_conn,keytype,&k,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_FAILURE);
-  unc::uppl::ODBCManager::clearStubData();
+  ASSERT_EQ(PFC_TRUE,
+            KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
+                                             UNC_DT_STATE));
 }
 
 // IsBoundaryReferred with key type UNC_KT_CTR_DOMAIN and row not exists
-TEST_F(KtClassTest, IsBoundaryReferred_04) {
-  key_boundary_t k;
+TEST_F(BoundaryTest, IsBoundaryReferred_04) {
+  key_ctr_domain_t k;
+  pfc_strlcpy(reinterpret_cast<char *>(k.ctr_key.controller_name),
+              "Controller1", sizeof(k.ctr_key.controller_name));
+  pfc_strlcpy(reinterpret_cast<char *>(k.domain_name), "Domain1",
+              sizeof(k.domain_name));
   unc_key_type_t keytype = UNC_KT_CTR_DOMAIN;
-  uint8_t oper_status = 0;
-  getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.IsBoundaryReferred(db_conn,keytype,&k,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ASSERT_EQ(PFC_FALSE,
+            KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
+                                             UNC_DT_STATE));
 }
 
 // IsBoundaryReferred with unknown key type
-TEST_F(KtClassTest, IsBoundaryReferred_05) {
-  key_boundary_t k;
+TEST_F(BoundaryTest, IsBoundaryReferred_05) {
   unc_key_type_t keytype = UNC_KT_LINK;
-  uint8_t oper_status = 0;
-  getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.IsBoundaryReferred(db_conn,keytype,&k,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ASSERT_EQ(PFC_FALSE,
+            KtboundaryObj.IsBoundaryReferred(db_conn, keytype, NULL,
+                                             UNC_DT_STATE));
 }
+
 //PerformRead with negative option1
-TEST_F(KtClassTest, PerformRead_Neg_option1_01) {
+TEST_F(BoundaryTest, PerformRead_Neg_option1_01) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1688,7 +1482,6 @@ TEST_F(KtClassTest, PerformRead_Neg_option1_01) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1700,11 +1493,11 @@ TEST_F(KtClassTest, PerformRead_Neg_option1_01) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with negative option1
-TEST_F(KtClassTest, PerformRead_Neg_option1_02) {
+TEST_F(BoundaryTest, PerformRead_Neg_option1_02) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1712,7 +1505,6 @@ TEST_F(KtClassTest, PerformRead_Neg_option1_02) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1724,12 +1516,11 @@ TEST_F(KtClassTest, PerformRead_Neg_option1_02) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformRead with unsupported datatype
-TEST_F(KtClassTest, PerformRead_Neg_datatype_03) {
+TEST_F(BoundaryTest, PerformRead_Neg_datatype_03) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1737,7 +1528,6 @@ TEST_F(KtClassTest, PerformRead_Neg_datatype_03) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1749,11 +1539,11 @@ TEST_F(KtClassTest, PerformRead_Neg_datatype_03) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with unsupported datatype
-TEST_F(KtClassTest, PerformRead_Neg_datatype_04) {
+TEST_F(BoundaryTest, PerformRead_Neg_datatype_04) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1761,7 +1551,6 @@ TEST_F(KtClassTest, PerformRead_Neg_datatype_04) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1773,11 +1562,11 @@ TEST_F(KtClassTest, PerformRead_Neg_datatype_04) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //PerformRead with negative dB
-TEST_F(KtClassTest, PerformRead_Neg_DB_05) {
+TEST_F(BoundaryTest, PerformRead_Neg_DB_05) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1786,7 +1575,6 @@ TEST_F(KtClassTest, PerformRead_Neg_DB_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1798,11 +1586,11 @@ TEST_F(KtClassTest, PerformRead_Neg_DB_05) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with positive dB
-TEST_F(KtClassTest, PerformRead_pos_DB_06) {
+TEST_F(BoundaryTest, PerformRead_pos_DB_06) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1811,7 +1599,6 @@ TEST_F(KtClassTest, PerformRead_pos_DB_06) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1823,12 +1610,11 @@ TEST_F(KtClassTest, PerformRead_pos_DB_06) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformRead with max_rep_cnt NULL 
-TEST_F(KtClassTest, PerformRead_max_rep_count_07) {
+TEST_F(BoundaryTest, PerformRead_max_rep_count_07) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1837,7 +1623,6 @@ TEST_F(KtClassTest, PerformRead_max_rep_count_07) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1849,11 +1634,11 @@ TEST_F(KtClassTest, PerformRead_max_rep_count_07) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with Datatype UNC_DT_STATE
-TEST_F(KtClassTest, PerformRead_STATE_08) {
+TEST_F(BoundaryTest, PerformRead_STATE_08) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1862,7 +1647,6 @@ TEST_F(KtClassTest, PerformRead_STATE_08) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1872,11 +1656,11 @@ TEST_F(KtClassTest, PerformRead_STATE_08) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //PerformRead with max_rep_cnt NULL 
-TEST_F(KtClassTest, PerformRead_max_rep_count_09) {
+TEST_F(BoundaryTest, PerformRead_max_rep_count_09) {
   key_boundary_t k;
   val_boundary_st_t v;
   memset(&v,0,sizeof(val_boundary_st_t));
@@ -1885,7 +1669,6 @@ TEST_F(KtClassTest, PerformRead_max_rep_count_09) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1897,11 +1680,11 @@ TEST_F(KtClassTest, PerformRead_max_rep_count_09) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
   int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //HandleOperStatus with Val_Struct NULL 
-TEST_F(KtClassTest, HandleOperStatus_Val_Struct_NULL_01) {
+TEST_F(BoundaryTest, HandleOperStatus_Val_Struct_NULL_01) {
   key_boundary_t k;
   val_boundary_t *v=NULL;
   vector<OperStatusHolder> ref_oper_status;
@@ -1909,125 +1692,139 @@ TEST_F(KtClassTest, HandleOperStatus_Val_Struct_NULL_01) {
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,v,ref_oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //HandleOperStatus 
-TEST_F(KtClassTest, HandleOperStatus_02) {
+TEST_F(BoundaryTest, HandleOperStatus_02) {
   key_boundary_t k;
-  val_boundary_t *v = new val_boundary_t;
+  val_boundary_t v;
+  memset(&v, 0, sizeof(v));
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxBoundaryControllerName1]=0;
-  v->valid[kIdxBoundaryControllerName2]=0;
+  v.valid[kIdxBoundaryControllerName1]=0;
+  v.valid[kIdxBoundaryControllerName2]=0;
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,v,ref_oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,&v,ref_oper_status);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleOperStatus 
-TEST_F(KtClassTest, HandleOperStatus_03) {
+TEST_F(BoundaryTest, HandleOperStatus_03) {
   key_boundary_t k;
-  val_boundary_t *v = new val_boundary_t;
+  val_boundary_t v;
+  memset(&v, 0, sizeof(v));
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxBoundaryControllerName1]=1;
-  v->valid[kIdxBoundaryControllerName2]=0;
+  v.valid[kIdxBoundaryControllerName1]=1;
+  v.valid[kIdxBoundaryControllerName2]=0;
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,v,ref_oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,&v,ref_oper_status);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleOperStatus 
-TEST_F(KtClassTest, HandleOperStatus_04) {
+TEST_F(BoundaryTest, HandleOperStatus_04) {
   key_boundary_t k;
-  val_boundary_t *v = new val_boundary_t;
+  val_boundary_t v;
+  memset(&v, 0, sizeof(v));
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxBoundaryControllerName2]=1;
-  v->valid[kIdxBoundaryControllerName1]=0;
+  v.valid[kIdxBoundaryControllerName2]=1;
+  v.valid[kIdxBoundaryControllerName1]=0;
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,v,ref_oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,&v,ref_oper_status);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleOperStatus 
-TEST_F(KtClassTest, HandleOperStatus_05) {
+TEST_F(BoundaryTest, HandleOperStatus_05) {
   key_boundary_t k;
-  val_boundary_t *v = new val_boundary_t;
+  val_boundary_t v;
+  memset(&v, 0, sizeof(v));
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxBoundaryControllerName2]=1;
-  v->valid[kIdxBoundaryControllerName1]=1;
+  v.valid[kIdxBoundaryControllerName2]=1;
+  v.valid[kIdxBoundaryControllerName1]=1;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,v,ref_oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,&v,ref_oper_status);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleOperStatus 
-TEST_F(KtClassTest, HandleOperStatus_06) {
+TEST_F(BoundaryTest, HandleOperStatus_06) {
   key_boundary_t k;
-  val_boundary_t *v = new val_boundary_t;
+  val_boundary_t v;
+  memset(&v, 0, sizeof(v));
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxBoundaryControllerName2]=1;
-  v->valid[kIdxBoundaryControllerName1]=1;
+  v.valid[kIdxBoundaryControllerName2]=1;
+  v.valid[kIdxBoundaryControllerName1]=1;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,v,ref_oper_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,&v,ref_oper_status);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 // FrameValidValue
-TEST_F(KtClassTest, FrameValidValue_01) {
+TEST_F(BoundaryTest, FrameValidValue_01) {
   val_boundary_st v_st;
   val_boundary_t v;
-  string at_value = "boundary";
+  memset(&v, 0xff, sizeof(v));
+  memset(&v_st, 0xff, sizeof(v_st));
+
+  string at_value("01234567");
   Kt_Boundary  KtboundaryObj;
-  int ret =  UPPL_RC_SUCCESS;
   KtboundaryObj.FrameValidValue(at_value,v_st,v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+
+  const uint32_t vsize(PFC_ARRAY_CAPACITY(v.valid));
+  for (uint32_t i(0); i < vsize; i++) {
+    ASSERT_EQ(i, v.valid[i]);
+  }
+
+  ASSERT_EQ(UNC_VF_VALID, v_st.valid[0]);
+  for (uint8_t i(1); i < PFC_ARRAY_CAPACITY(v_st.valid); i++) {
+    uint8_t required(static_cast<uint8_t>(vsize + i - 1));
+    ASSERT_EQ(required, v_st.valid[i]);
+  }
 }
 // FrameCsAttrValue
-TEST_F(KtClassTest, FrameCsAttrValue_01) {
+TEST_F(BoundaryTest, FrameCsAttrValue_01) {
   val_boundary_t v;
   string at_value = "boundary";
   Kt_Boundary  KtboundaryObj;
   int ret =  UPPL_RC_SUCCESS;
   KtboundaryObj.FrameCsAttrValue(at_value,v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /********TAMIL TC's*********/
 /*****getBoundaryInputOperStatus*****/
 //Send controller name as empty
-TEST_F(KtClassTest, getBoundaryInputOperStatus_BadRequest) {
+TEST_F(BoundaryTest, getBoundaryInputOperStatus_BadRequest) {
   OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   string controller_name;
   string domain_name;
   string logical_port_id;
   vector<OperStatusHolder> ref_oper_status;
   Kt_Boundary  KtboundaryObj;
   int ret =  KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type, controller_name, domain_name, logical_port_id,ref_oper_status);
-  EXPECT_EQ(ret, UPPL_BOUNDARY_OPER_UNKNOWN);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_BOUNDARY_OPER_UNKNOWN, ret);
 }
 
 //Fill the controler name and send
-TEST_F(KtClassTest, getBoundaryInputOperStatus_ctrlName_fill) {
+TEST_F(BoundaryTest, getBoundaryInputOperStatus_ctrlName_fill) {
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t data_type = UNC_DT_STATE;
   string controller_name = "ctr1";
@@ -2037,11 +1834,10 @@ TEST_F(KtClassTest, getBoundaryInputOperStatus_ctrlName_fill) {
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type, controller_name, domain_name, logical_port_id,ref_oper_status);
-  EXPECT_EQ(ret, UPPL_RC_ERR_BAD_REQUEST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-TEST_F(KtClassTest, getBoundaryInputOperStatus) {
+TEST_F(BoundaryTest, getBoundaryInputOperStatus) {
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t data_type = UNC_DT_IMPORT;
   string controller_name = "ctr1";
@@ -2049,68 +1845,67 @@ TEST_F(KtClassTest, getBoundaryInputOperStatus) {
   string logical_port_id = "";
 
   unc_key_type_t key_type = UNC_KT_CONTROLLER;
-  key_ctr_t *key_struct;
+  key_ctr_t key_struct;
+  pfc_strlcpy(reinterpret_cast<char *>(key_struct.controller_name),
+              "controller1", sizeof(key_struct.controller_name));
   uint8_t oper_status = 1;
-  OperStatusHolder obj(key_type,key_struct,oper_status);
+  OperStatusHolder obj(key_type, &key_struct, oper_status);
   vector<OperStatusHolder> ref_oper_status;
   ref_oper_status.push_back(obj);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type, controller_name, domain_name, logical_port_id,ref_oper_status);
-  EXPECT_EQ(ret, UPPL_BOUNDARY_OPER_UNKNOWN);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_BOUNDARY_OPER_UNKNOWN, ret);
 }
 
 /********SetOperStatus********/
 //key_struct and val_struct are NULL
 //return success
-TEST_F(KtClassTest, SetOperStatus_NULL_check) {
+TEST_F(BoundaryTest, SetOperStatus_NULL_check) {
   OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   key_boundary_t *k = NULL;
   val_boundary_st_t *v = NULL;
-  UpplBoundaryOperStatus oper_status;
+  UpplBoundaryOperStatus oper_status(UPPL_BOUNDARY_OPER_UP);
   Kt_Boundary  KtboundaryObj;
   int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,v,oper_status);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //controller_name1/2 flag is not valid
-TEST_F(KtClassTest, SetOperStatus_InValid_CtrName) {
+TEST_F(BoundaryTest, SetOperStatus_InValid_CtrName) {
   OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   key_boundary_t *k = NULL;
-  val_boundary_st_t *v = new val_boundary_st_t;
-  UpplBoundaryOperStatus oper_status;
+  val_boundary_st_t v;
+  memset(&v, 0, sizeof(v));
+  UpplBoundaryOperStatus oper_status(UPPL_BOUNDARY_OPER_UP);
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,v,oper_status);
-  EXPECT_EQ(ret, UPPL_RC_ERR_BAD_REQUEST);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,&v,oper_status);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 //SetOperStatus Success_check
-TEST_F(KtClassTest, SetOperStatus_Success_check) {
+TEST_F(BoundaryTest, SetOperStatus_Success_check) {
   OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);  
   getValForKtBoundary1(v);
   v.valid[kIdxBoundaryControllerName1] = UNC_VF_VALID;
-  UpplBoundaryOperStatus oper_status;
+  UpplBoundaryOperStatus oper_status(UPPL_BOUNDARY_OPER_UP);
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,&k,&v,oper_status);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //oper_status update operation not success
-TEST_F(KtClassTest, SetOperStatus_UPD_NotSucc_Ctr1_Valid) {
+TEST_F(BoundaryTest, SetOperStatus_UPD_NotSucc_Ctr1_Valid) {
   OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   key_boundary_t *k = NULL;
   val_boundary_t v;
   //getKeyForKtBoundary1(k);  
@@ -2120,15 +1915,14 @@ TEST_F(KtClassTest, SetOperStatus_UPD_NotSucc_Ctr1_Valid) {
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,&v,oper_status);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //oper_status update operation not success
 //ctr2 name is set as Invaild
-TEST_F(KtClassTest, SetOperStatus_Ctr2_Valid) {
+TEST_F(BoundaryTest, SetOperStatus_Ctr2_Valid) {
   OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   key_boundary_t *k = NULL;
   val_boundary_t v;
   //getKeyForKtBoundary1(k);  
@@ -2138,7 +1932,6 @@ TEST_F(KtClassTest, SetOperStatus_Ctr2_Valid) {
   Kt_Boundary  KtboundaryObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,&v,oper_status);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
index 4367f5dcf9294cb5661c226b2070bb2278558c5a..8ce340744a6c08f0f6d19a60321a5ba800c4c2b8 100644 (file)
@@ -1,13 +1,11 @@
-
- /*
-  * Copyright (c) 2012-2013 NEC Corporation
-  * All rights reserved.
-  *
-  * This program and the accompanying materials are made available under the
-  * terms of the Eclipse Public License v1.0 which accompanies this
-  * distribution, and is available at  http://www.eclipse.org/legal/epl-v10.html
-  */
-
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at  http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #include <limits.h>
 #include <gtest/gtest.h>
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include "stub/ODBC/include/odbcm_mgr.hh"
-#include "physical_common_def.hh"
-#include "unc/uppl_common.h"
-#include "unc/keytype.h"
-#include "itc_kt_base.hh"
-#include "itc_kt_root.hh"
-#include "itc_kt_controller.hh"
-#include "itc_kt_ctr_domain.hh"
-#include "itc_kt_switch.hh"
-#include "itc_kt_port.hh"
-#include "itc_kt_link.hh"
-#include "itc_kt_boundary.hh"
-#include "itc_read_request.hh"
-#include "itc_kt_logicalport.hh"
-#include "ipct_util.hh"
+#include <odbcm_mgr.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <itc_read_request.hh>
+#include <itc_kt_logicalport.hh>
+#include <ipct_util.hh>
 #include "PhysicalLayerStub.hh"
-#include "tclib_module.hh"
+#include <tclib_module.hh>
+#include "ut_util.hh"
 
 using unc::uppl::PhysicalLayer;
 using namespace pfc;
@@ -61,90 +60,59 @@ using namespace pfc::core;
 using namespace pfc::core::ipc;
 using namespace std;
 using namespace unc::tclib;
-ClientSession *cli_sess = NULL;
-pfc_ipcid_t service = UPPL_SVC_CONFIGREQ;
-class KtCtrlrTest : public testing::Test {
-protected:
-  virtual void SetUp() {
-    if (cli_sess == NULL) {
-      pfc_ipcconn_t connp = 0;
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);
-      ASSERT_EQ(0, err);
-      //ASSERT_TRUE(connp != 0);
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-      //ASSERT_EQ(0, err);
-      PhysicalLayerStub::loadphysicallayer();
-      unc::tclib::TcLibModule::stub_loadtcLibModule();
-    } else {
-      cli_sess->reset(UPPL_IPC_SVC_NAME, service);
-    }
-  }
-  virtual void TearDown() {
-  }
-};
-
-// Can be changed based on testing need
-#if 0
-char pkName1[] = "Controller1_domain_name";
-char pkName2[] = "Domain7";
-char pkName3[] = "Domain15";
-char pkName4[] = "";
-char pkName5[] = "NotExisting";
-char pkName11[] = "Domain20";
-
-char pkName6[] = "Controller1";
-char pkName7[] = "Controller7";
-char pkName8[] = "Controller15";
-char pkName9[] = "";
-char pkName10[] = "NotExisting";
-char pkName12[] = "Controller20";
-
+using namespace unc::uppl::test;
 
+class ControllerTest
+  : public UpplTestEnv
+{
+};
 
-#endif
-char pkctrName1[] = "Controller1";
-char pkDomainName2[] = "Domain1";
-char pkDomainName3[] = "(DEFAULT)";
-char valDescription[] = "description1";
+static char pkctrName1[] = "Controller1";
+static char pkDomainName2[] = "Domain1";
+static char valDescription[] = "description1";
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Domainname_notFound_01) {
+TEST_F(ControllerTest, PerformSyntxCheck_Domainname_notFound_01) {
   key_ctr_t k;
   val_ctr_t v;
-  PhysicalLayerStub::loadphysicallayer();
+  memset(&v, 0, sizeof(v));
   Kt_Controller  ktCtrlrObj;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Controllername_notFound_02) {
+
+TEST_F(ControllerTest, PerformSyntxCheck_Controllername_notFound_02) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   Kt_Controller  ktCtrlrObj;
   memset(k.controller_name, '\0', 32);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_without_type_03) {
+TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_without_type_03) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   Kt_Controller  ktCtrlrObj;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_04) {
+TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_04) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   Kt_Controller  ktCtrlrObj;
@@ -153,12 +121,13 @@ TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_04) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_05) {
+TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_05) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   Kt_Controller  ktCtrlrObj;
@@ -167,12 +136,13 @@ TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_05) {
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_06) {
+TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_06) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   v.type = 0;
   v.valid[kIdxType] = 1;
   Kt_Controller  ktCtrlrObj;
@@ -181,12 +151,13 @@ TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_06) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_07) {
+TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_07) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   Kt_Controller  ktCtrlrObj;
@@ -195,12 +166,13 @@ TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_07) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_08) {
+TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_08) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -211,13 +183,14 @@ TEST_F(KtCtrlrTest, PerformSyntxCheck_Valstrct_08) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // Create for unsupported datatype
-TEST_F(KtCtrlrTest, Create_01) {
+TEST_F(ControllerTest, Create_01) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -230,12 +203,14 @@ TEST_F(KtCtrlrTest, Create_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 // Domain Create success 
-TEST_F(KtCtrlrTest, Create_02) {
+TEST_F(ControllerTest, Create_02) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -260,13 +235,14 @@ TEST_F(KtCtrlrTest, Create_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // get_controller_type returns failure 
-TEST_F(KtCtrlrTest, Create_03) {
+TEST_F(ControllerTest, Create_03) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -290,14 +266,14 @@ TEST_F(KtCtrlrTest, Create_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 //Create on unsupported datatype 
-TEST_F(KtCtrlrTest, Create) {
+TEST_F(ControllerTest, Create) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -310,12 +286,13 @@ TEST_F(KtCtrlrTest, Create) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
  
-TEST_F(KtCtrlrTest, PerformSemanticValidation_01) {
+TEST_F(ControllerTest, PerformSemanticValidation_01) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -326,11 +303,11 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_01) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 // IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, IsKeyExists_01) {
+TEST_F(ControllerTest, IsKeyExists_01) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
@@ -338,12 +315,11 @@ TEST_F(KtCtrlrTest, IsKeyExists_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_ROW_EXISTS
-TEST_F(KtCtrlrTest, IsKeyExists_02) {
+TEST_F(ControllerTest, IsKeyExists_02) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
@@ -351,12 +327,11 @@ TEST_F(KtCtrlrTest, IsKeyExists_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_QUERY_TIMEOUT
-TEST_F(KtCtrlrTest, IsKeyExists_03) {
+TEST_F(ControllerTest, IsKeyExists_03) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
@@ -364,25 +339,24 @@ TEST_F(KtCtrlrTest, IsKeyExists_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
   int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // IsKeyExists  with key structure empty
-TEST_F(KtCtrlrTest, IsKeyExists_04) {
+TEST_F(ControllerTest, IsKeyExists_04) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.clear();
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 // CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, CreateKeyInstance_01) {
+TEST_F(ControllerTest, CreateKeyInstance_01) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -394,15 +368,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 // CreateKeyInstance with UNC_DT_RUNNING datatype ODBC 
-TEST_F(KtCtrlrTest, CreateKeyInstance_02) {
+TEST_F(ControllerTest, CreateKeyInstance_02) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -414,15 +388,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_02) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 // CreateKeyInstance with UNC_DT_STATE  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, CreateKeyInstance_03) {
+TEST_F(ControllerTest, CreateKeyInstance_03) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -434,16 +408,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_03) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, CreateKeyInstance_04) {
+TEST_F(ControllerTest, CreateKeyInstance_04) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -455,16 +428,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_04) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return Failure
-TEST_F(KtCtrlrTest, CreateKeyInstance_05) {
+TEST_F(ControllerTest, CreateKeyInstance_05) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -476,15 +448,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_05) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
+
 // CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC ODBCM_RC_SUCCESS
-TEST_F(KtCtrlrTest, CreateKeyInstance_06) {
+TEST_F(ControllerTest, CreateKeyInstance_06) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -496,15 +468,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_06) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // CreateKeyInstance with UNC_DT_STATE  datatype ODBC return Failure
-TEST_F(KtCtrlrTest, CreateKeyInstance_07) {
+TEST_F(ControllerTest, CreateKeyInstance_07) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -516,16 +488,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_07) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
 
 // CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return Failure
-TEST_F(KtCtrlrTest, CreateKeyInstance_08) {
+TEST_F(ControllerTest, CreateKeyInstance_08) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -537,16 +508,15 @@ TEST_F(KtCtrlrTest, CreateKeyInstance_08) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
 
 // Update for unsupported datatype
-TEST_F(KtCtrlrTest, Update_01) {
+TEST_F(ControllerTest, Update_01) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -559,12 +529,13 @@ TEST_F(KtCtrlrTest, Update_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 // Domain Update success 
-TEST_F(KtCtrlrTest, Update_02) {
+TEST_F(ControllerTest, Update_02) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -589,13 +560,14 @@ TEST_F(KtCtrlrTest, Update_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // get_controller_type returns failure 
-TEST_F(KtCtrlrTest, Update_03) {
+TEST_F(ControllerTest, Update_03) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -619,14 +591,14 @@ TEST_F(KtCtrlrTest, Update_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // UpdateKeyInstance with UNC_DT_CANDIDATE ODBC retuns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, UpdateKeyInstance_01) {
+TEST_F(ControllerTest, UpdateKeyInstance_01) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -638,16 +610,15 @@ TEST_F(KtCtrlrTest, UpdateKeyInstance_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // UpdateKeyInstance on unsupported datatype
-TEST_F(KtCtrlrTest, UpdateKeyInstance_02) {
+TEST_F(ControllerTest, UpdateKeyInstance_02) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -658,14 +629,14 @@ TEST_F(KtCtrlrTest, UpdateKeyInstance_02) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 // UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, UpdateKeyInstance_03) {
+TEST_F(ControllerTest, UpdateKeyInstance_03) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -677,15 +648,15 @@ TEST_F(KtCtrlrTest, UpdateKeyInstance_03) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 // UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_SUCCESS
-TEST_F(KtCtrlrTest, UpdateKeyInstance_04) {
+TEST_F(ControllerTest, UpdateKeyInstance_04) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -697,16 +668,15 @@ TEST_F(KtCtrlrTest, UpdateKeyInstance_04) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns 
-TEST_F(KtCtrlrTest, UpdateKeyInstance_05) {
+TEST_F(ControllerTest, UpdateKeyInstance_05) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
@@ -719,18 +689,14 @@ TEST_F(KtCtrlrTest, UpdateKeyInstance_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 // Delete for unsupported datatype
-TEST_F(KtCtrlrTest, Delete_01) {
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
-
+TEST_F(ControllerTest, Delete_01) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -739,19 +705,18 @@ TEST_F(KtCtrlrTest, Delete_01) {
   v.valid[kIdxDescription] = 0;
   Kt_Controller  ktCtrlrObj;
   ServerSession ses;
-  ServerSession ::clearStubData();
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // Domain Delete success 
-TEST_F(KtCtrlrTest, Delete_02) {
+TEST_F(ControllerTest, Delete_02) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -760,7 +725,6 @@ TEST_F(KtCtrlrTest, Delete_02) {
   v.valid[kIdxDescription] = 0;
   Kt_Controller  ktCtrlrObj;
   ServerSession ses;
-  ServerSession ::clearStubData();
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_DELETE);
@@ -776,14 +740,14 @@ TEST_F(KtCtrlrTest, Delete_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // get_controller_type returns failure 
-TEST_F(KtCtrlrTest, Delete_03) {
+TEST_F(ControllerTest, Delete_03) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -791,7 +755,6 @@ TEST_F(KtCtrlrTest, Delete_03) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDescription] = 0;
   Kt_Controller  ktCtrlrObj;
-  ServerSession ::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -807,13 +770,14 @@ TEST_F(KtCtrlrTest, Delete_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 // Domain Delete With boundary referred
-TEST_F(KtCtrlrTest, Delete_04) {
+TEST_F(ControllerTest, Delete_04) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
   v.type = 1;
@@ -821,7 +785,6 @@ TEST_F(KtCtrlrTest, Delete_04) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDescription] = 0;
   Kt_Controller  ktCtrlrObj;
-  ServerSession ::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -838,15 +801,15 @@ TEST_F(KtCtrlrTest, Delete_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 // UpdateKeyInstance with ODBC retuns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, GetModifiedRows_01) {
+TEST_F(ControllerTest, GetModifiedRows_01) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -858,16 +821,15 @@ TEST_F(KtCtrlrTest, GetModifiedRows_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ODBC retuns ODBCM_RC_RECORD_NOT_FOUND 
-TEST_F(KtCtrlrTest, GetModifiedRows_02) {
+TEST_F(ControllerTest, GetModifiedRows_02) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -879,16 +841,15 @@ TEST_F(KtCtrlrTest, GetModifiedRows_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ODBC retuns ODBCM_RC_SUCCESS 
-TEST_F(KtCtrlrTest, GetModifiedRows_03) {
+TEST_F(ControllerTest, GetModifiedRows_03) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -900,16 +861,15 @@ TEST_F(KtCtrlrTest, GetModifiedRows_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
 // ODBC retuns ODBCM_RC_FAILED
-TEST_F(KtCtrlrTest, GetModifiedRows_04) {
+TEST_F(ControllerTest, GetModifiedRows_04) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -921,10 +881,10 @@ TEST_F(KtCtrlrTest, GetModifiedRows_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
-TEST_F(KtCtrlrTest, SetOperStatus_001) {
+
+TEST_F(ControllerTest, SetOperStatus_001) {
 
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -934,12 +894,10 @@ TEST_F(KtCtrlrTest, SetOperStatus_001) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(KtCtrlrTest, SetOperStatus_002) {
-
+TEST_F(ControllerTest, SetOperStatus_002) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -947,10 +905,10 @@ TEST_F(KtCtrlrTest, SetOperStatus_002) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
-TEST_F(KtCtrlrTest, SetOperStatus_003) {
+
+TEST_F(ControllerTest, SetOperStatus_003) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -960,31 +918,27 @@ TEST_F(KtCtrlrTest, SetOperStatus_003) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, SetOperStatus_004) {
+TEST_F(ControllerTest, SetOperStatus_004) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession ser_evt;
-  ServerSession::clearStubData();
-  int err;
   ser_evt.addOutput((uint32_t)UNC_OP_CREATE);
   ser_evt.addOutput((uint32_t)UNC_DT_STATE);
   ser_evt.addOutput((uint32_t)UNC_KT_PORT);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GetOperStatus ODBC returns failure
-TEST_F(KtCtrlrTest, GetOperStatus_001) {
+TEST_F(ControllerTest, GetOperStatus_001) {
 
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -994,11 +948,11 @@ TEST_F(KtCtrlrTest, GetOperStatus_001) {
   uint8_t op_status;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 // GetOperStatus ODBC returns SUCCESS
-TEST_F(KtCtrlrTest, GetOperStatus_002) {
+TEST_F(ControllerTest, GetOperStatus_002) {
 
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -1008,10 +962,10 @@ TEST_F(KtCtrlrTest, GetOperStatus_002) {
   uint8_t op_status;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-TEST_F(KtCtrlrTest, GetOperStatus_003) {
+
+TEST_F(ControllerTest, GetOperStatus_003) {
 
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -1021,15 +975,15 @@ TEST_F(KtCtrlrTest, GetOperStatus_003) {
   uint8_t op_status;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS_WITH_INFO);
   int ret =  ktCtrlrObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // NotifyOperStatus with NULL keystruct
-TEST_F(KtCtrlrTest, NotifyOperStatus_01) {
+TEST_F(ControllerTest, NotifyOperStatus_01) {
 
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -1040,17 +994,17 @@ TEST_F(KtCtrlrTest, NotifyOperStatus_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
   Kt_Controller  ktCtrlrObj;
-//  PhysicalLayer *physical_layer = new PhysicalLayer(pfc_modattr_t *mattr);
   OdbcmConnectionHandler *db_conn =NULL;
-  uint8_t op_status;
   int ret =  ktCtrlrObj.NotifyOperStatus(db_conn,UNC_DT_STATE, &k, &v, oper_stat_hldr);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 /*
 // NotifyOperStatus 
-TEST_F(KtCtrlrTest, NotifyOperStatus_02) {
+TEST_F(ControllerTest, NotifyOperStatus_02) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -1063,14 +1017,14 @@ TEST_F(KtCtrlrTest, NotifyOperStatus_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,oper_stat_hldr );
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 // NotifyOperStatus Controller oper_status  retunrs failure 
-TEST_F(KtCtrlrTest, NotifyOperStatus_03) {
+TEST_F(ControllerTest, NotifyOperStatus_03) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -1083,15 +1037,15 @@ TEST_F(KtCtrlrTest, NotifyOperStatus_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,oper_stat_hldr);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 */
 
 // HandleOperStatus Controller oper_status returns success
-TEST_F(KtCtrlrTest, HandleOperStatus_01) {
+TEST_F(ControllerTest, HandleOperStatus_01) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -1104,14 +1058,14 @@ TEST_F(KtCtrlrTest, HandleOperStatus_01) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // HandleOperStatus Controller oper_status  retunrs failure 
-TEST_F(KtCtrlrTest, HandleOperStatus_02) {
+TEST_F(ControllerTest, HandleOperStatus_02) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -1123,14 +1077,14 @@ TEST_F(KtCtrlrTest, HandleOperStatus_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 // HandleOperStatus with bIsInternal false 
-TEST_F(KtCtrlrTest, HandleOperStatus_03) {
+TEST_F(ControllerTest, HandleOperStatus_03) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxType] = 1;
   memset(v.description, '\0', 128);
@@ -1143,11 +1097,11 @@ TEST_F(KtCtrlrTest, HandleOperStatus_03) {
   bool bIsInternal = false;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,bIsInternal);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
+
 // HandleOperStatus with bIsInternal false and oper_status is UPPL_CONTROLLER_OPER_UP 
-TEST_F(KtCtrlrTest, HandleOperStatus_04) {
+TEST_F(ControllerTest, HandleOperStatus_04) {
   key_ctr_t k;
   val_ctr_st_t v;
   v.controller.type = 1;
@@ -1164,11 +1118,11 @@ TEST_F(KtCtrlrTest, HandleOperStatus_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,bIsInternal);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // HandleOperStatus with bIsInternal true and oper_status is UPPL_CONTROLLER_OPER_UP 
-TEST_F(KtCtrlrTest, HandleOperStatus_05) {
+TEST_F(ControllerTest, HandleOperStatus_05) {
   key_ctr_t k;
   val_ctr_st_t v;
   v.controller.type = 1;
@@ -1185,11 +1139,11 @@ TEST_F(KtCtrlrTest, HandleOperStatus_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,bIsInternal);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // HandleOperStatus with bIsInternal true and oper_status is UPPL_CONTROLLER_OPER_DOWN 
-TEST_F(KtCtrlrTest, HandleOperStatus_06) {
+TEST_F(ControllerTest, HandleOperStatus_06) {
   key_ctr_t k;
   val_ctr_st_t v;
   v.controller.type = 1;
@@ -1206,13 +1160,14 @@ TEST_F(KtCtrlrTest, HandleOperStatus_06) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,&v,bIsInternal);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // HandleDriverAlarms with unsupported alarm type
-TEST_F(KtCtrlrTest, HandleDriverAlarms_01) {
+TEST_F(ControllerTest, HandleDriverAlarms_01) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
   uint32_t oper_type = UNC_OP_CREATE;
   vector<void *> obj_key_struct;
@@ -1220,14 +1175,14 @@ TEST_F(KtCtrlrTest, HandleDriverAlarms_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // HandleDriverAlarms with UNC_COREDOMAIN_SPLIT alarm type
-TEST_F(KtCtrlrTest, HandleDriverAlarms_02) {
+TEST_F(ControllerTest, HandleDriverAlarms_02) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
@@ -1237,14 +1192,14 @@ TEST_F(KtCtrlrTest, HandleDriverAlarms_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // HandleDriverAlarms with oper_type UNC_OP_CREATE 
-TEST_F(KtCtrlrTest, HandleDriverAlarms_03) {
+TEST_F(ControllerTest, HandleDriverAlarms_03) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
@@ -1254,14 +1209,14 @@ TEST_F(KtCtrlrTest, HandleDriverAlarms_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // HandleDriverAlarms with oper_type UNC_OP_DELETE 
-TEST_F(KtCtrlrTest, HandleDriverAlarms_04) {
+TEST_F(ControllerTest, HandleDriverAlarms_04) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
@@ -1272,14 +1227,14 @@ TEST_F(KtCtrlrTest, HandleDriverAlarms_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_CREATE 
-TEST_F(KtCtrlrTest, PerformSemanticValidation_11) {
+TEST_F(ControllerTest, PerformSemanticValidation_11) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t oper_type = UNC_OP_CREATE;
@@ -1288,14 +1243,14 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_11) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_INSTANCE_EXISTS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_CREATE 
-TEST_F(KtCtrlrTest, PerformSemanticValidation_02) {
+TEST_F(ControllerTest, PerformSemanticValidation_02) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t oper_type = UNC_OP_CREATE;
@@ -1304,14 +1259,14 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_CREATE 
-TEST_F(KtCtrlrTest, PerformSemanticValidation_03) {
+TEST_F(ControllerTest, PerformSemanticValidation_03) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t oper_type = UNC_OP_CREATE;
@@ -1320,14 +1275,14 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_IMPORT);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_READ 
-TEST_F(KtCtrlrTest, PerformSemanticValidation_04) {
+TEST_F(ControllerTest, PerformSemanticValidation_04) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t oper_type = UNC_OP_READ;
@@ -1336,14 +1291,14 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_UPDATE 
-TEST_F(KtCtrlrTest, PerformSemanticValidation_05) {
+TEST_F(ControllerTest, PerformSemanticValidation_05) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t oper_type = UNC_OP_UPDATE;
@@ -1352,13 +1307,14 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 // PerformSemanticValidation with oper_type UNC_OP_DELETE 
-TEST_F(KtCtrlrTest, PerformSemanticValidation_06) {
+TEST_F(ControllerTest, PerformSemanticValidation_06) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t oper_type = UNC_OP_DELETE;
@@ -1367,15 +1323,15 @@ TEST_F(KtCtrlrTest, PerformSemanticValidation_06) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
   int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*
 // ReadBulkInternal with max_count zero
-TEST_F(KtCtrlrTest, ReadBulkInternal_01) {
+TEST_F(ControllerTest, ReadBulkInternal_01) {
   key_ctr_t k;
   val_ctr v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st> vect_val_ctr_st;
   vector<key_ctr> vect_ctr_id;
   uint32_t max_rep_ct = 0;
@@ -1394,11 +1350,11 @@ UpplReturnCode Kt_Boundary::ReadBulkInternal(
     vector<val_boundary_st_t> &vect_val_boundary) 
 
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,  vect_ctr_id, vect_val_ctr_st);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // ReadBulkInternal with read_db_status ODBCM_RC_RECORD_NOT_FOUND
-TEST_F(KtCtrlrTest, ReadBulkInternal_02) {
+TEST_F(ControllerTest, ReadBulkInternal_02) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1410,12 +1366,11 @@ TEST_F(KtCtrlrTest, ReadBulkInternal_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, ReadBulkInternal_03) {
+TEST_F(ControllerTest, ReadBulkInternal_03) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1427,12 +1382,11 @@ TEST_F(KtCtrlrTest, ReadBulkInternal_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
-TEST_F(KtCtrlrTest, ReadBulkInternal_04) {
+TEST_F(ControllerTest, ReadBulkInternal_04) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1445,12 +1399,11 @@ TEST_F(KtCtrlrTest, ReadBulkInternal_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, 
                                               vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
-TEST_F(KtCtrlrTest, ReadBulkInternal_05) {
+TEST_F(ControllerTest, ReadBulkInternal_05) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1463,18 +1416,18 @@ TEST_F(KtCtrlrTest, ReadBulkInternal_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct,
                                              vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 */
+
 //  ReadBulk with get_controller_type returns failure
 //  MEM
-TEST_F(KtCtrlrTest, ReadBulk_02) {
+TEST_F(ControllerTest, ReadBulk_02) {
   key_ctr_t k;
   int child_index = 2;
-  pfc_bool_t parent_call = true;
-  pfc_bool_t is_read_next = false;
-  ReadRequest *read_req;
+  pfc_bool_t parent_call(PFC_TRUE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req(NULL);
   uint32_t max_rep_ct = 4;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1486,17 +1439,16 @@ TEST_F(KtCtrlrTest, ReadBulk_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //  ReadBulk with data type UNC_DT_IMPORT
-TEST_F(KtCtrlrTest, ReadBulk_01) {
+TEST_F(ControllerTest, ReadBulk_01) {
   key_ctr_t k;
   int child_index = 0;
-  pfc_bool_t parent_call = true;
-  pfc_bool_t is_read_next = false;
-  ReadRequest *read_req;
+  pfc_bool_t parent_call(PFC_TRUE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req(NULL);
   uint32_t max_rep_ct = 4;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1505,17 +1457,16 @@ TEST_F(KtCtrlrTest, ReadBulk_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 //  ReadBulk with data type UNC_DT_IMPORT
-TEST_F(KtCtrlrTest, ReadBulk_05) {
+TEST_F(ControllerTest, ReadBulk_05) {
   key_ctr_t k;
   int child_index = -1;
-  pfc_bool_t parent_call = true;
-  pfc_bool_t is_read_next = false;
-  ReadRequest *read_req;
+  pfc_bool_t parent_call(PFC_TRUE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req(NULL);
   uint32_t max_rep_ct = 4;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1524,18 +1475,17 @@ TEST_F(KtCtrlrTest, ReadBulk_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 
 //  ReadBulk with data type UNC_DT_IMPORT
-TEST_F(KtCtrlrTest, ReadBulk_06) {
+TEST_F(ControllerTest, ReadBulk_06) {
   key_ctr_t k;
   int child_index = 2;
-  pfc_bool_t parent_call = true;
-  pfc_bool_t is_read_next = false;
-  ReadRequest *read_req;
+  pfc_bool_t parent_call(PFC_TRUE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req(NULL);
   uint32_t max_rep_ct = 0;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1544,13 +1494,11 @@ TEST_F(KtCtrlrTest, ReadBulk_06) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-
 // DeleteKeyInstance with data type UNC_DT_RUNNING
-TEST_F(KtCtrlrTest, DeleteKeyInstance_01) {
+TEST_F(ControllerTest, DeleteKeyInstance_01) {
   key_ctr_t k;
   uint32_t key_type = 0;
   memset(k.controller_name, '\0', 32);
@@ -1559,12 +1507,11 @@ TEST_F(KtCtrlrTest, DeleteKeyInstance_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_DELETE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 // DeleteKeyInstance with out child
-TEST_F(KtCtrlrTest, DeleteKeyInstance_02) {
+TEST_F(ControllerTest, DeleteKeyInstance_02) {
   key_ctr_t k;
   uint32_t key_type = 0;
   memset(k.controller_name, '\0', 32);
@@ -1573,12 +1520,11 @@ TEST_F(KtCtrlrTest, DeleteKeyInstance_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // DeleteKeyInstance with out child
-TEST_F(KtCtrlrTest, DeleteKeyInstance_03) {
+TEST_F(ControllerTest, DeleteKeyInstance_03) {
   key_ctr_t k;
   uint32_t key_type = 0;
   memset(k.controller_name, '\0', 32);
@@ -1587,12 +1533,11 @@ TEST_F(KtCtrlrTest, DeleteKeyInstance_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_AUDIT, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // DeleteKeyInstance with out child
-TEST_F(KtCtrlrTest, DeleteKeyInstance_04) {
+TEST_F(ControllerTest, DeleteKeyInstance_04) {
   key_ctr_t k;
   uint32_t key_type = 0;
   memset(k.controller_name, '\0', 32);
@@ -1601,12 +1546,11 @@ TEST_F(KtCtrlrTest, DeleteKeyInstance_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_DELETE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 // DeleteKeyInstance suceess
-TEST_F(KtCtrlrTest, DeleteKeyInstance_05) {
+TEST_F(ControllerTest, DeleteKeyInstance_05) {
   key_ctr_t k;
   uint32_t key_type = 0;
   memset(k.controller_name, '\0', 32);
@@ -1615,104 +1559,89 @@ TEST_F(KtCtrlrTest, DeleteKeyInstance_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 // FreeChildKeyStruct success
-TEST_F(KtCtrlrTest, FreeChildKeyStruct_01) {
+TEST_F(ControllerTest, FreeChildKeyStruct_01) {
   void *k = new key_ctr_domain_t;
   int child_class = 0;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  UPPL_RC_SUCCESS;
-  pfc_log_info("Test FreeChildKeyStruct_01");
   KtctrObj.FreeChildKeyStruct(k, child_class);
 }
 
 // FreeChildKeyStruct suceess
-TEST_F(KtCtrlrTest, FreeChildKeyStruct_02) {
+TEST_F(ControllerTest, FreeChildKeyStruct_02) {
   void *key = new key_logical_port_t;
   int child_class = 1;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtctrObj.FreeChildKeyStruct(key, child_class);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // FreeChildKeyStruct suceess
-TEST_F(KtCtrlrTest, FreeChildKeyStruct_03) {
+TEST_F(ControllerTest, FreeChildKeyStruct_03) {
   void *key = new key_link_t;
   int child_class = 2;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtctrObj.FreeChildKeyStruct(key, child_class);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 // FreeChildKeyStruct invalid index
-TEST_F(KtCtrlrTest, FreeChildKeyStruct_04) {
+TEST_F(ControllerTest, FreeChildKeyStruct_04) {
   void *key = new key_logical_port_t;
   int child_class = 3;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtctrObj.FreeChildKeyStruct(key, child_class);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // getChildKeyStruct success
-TEST_F(KtCtrlrTest, getChildKeyStruct_01) {
-  void *k = new key_ctr_domain_t;
+TEST_F(ControllerTest, getChildKeyStruct_01) {
   int child_class = 0;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  UPPL_RC_SUCCESS;
-  pfc_log_info("Test FreeChildKeyStruct_01");
   KtctrObj.getChildKeyStruct(child_class, "controller1");
 }
+
 // getChildKeyStruct suceess
-TEST_F(KtCtrlrTest, getChildKeyStruct_02) {
-  void *key = new key_logical_port_t;
+TEST_F(ControllerTest, getChildKeyStruct_02) {
   int child_class = 1;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtctrObj.getChildKeyStruct(child_class, "controller1");
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // getChildKeyStruct suceess
-TEST_F(KtCtrlrTest, getChildKeyStruct_03) {
-  void *key = new key_link_t;
+TEST_F(ControllerTest, getChildKeyStruct_03) {
   int child_class = 2;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtctrObj.getChildKeyStruct(child_class, "controller1");
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // getChildKeyStruct invalid index
-TEST_F(KtCtrlrTest, getChildKeyStruct_04) {
-  void *key = new key_logical_port_t;
+TEST_F(ControllerTest, getChildKeyStruct_04) {
   int child_class = 3;
   Kt_Controller  KtctrObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtctrObj.getChildKeyStruct(child_class, "controller1");
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //PerformRead with negative option1 
-TEST_F(KtCtrlrTest, PerformRead_Neg_option1_01) {
+TEST_F(ControllerTest, PerformRead_Neg_option1_01) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1724,20 +1653,19 @@ TEST_F(KtCtrlrTest, PerformRead_Neg_option1_01) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with negative option1 
-TEST_F(KtCtrlrTest, PerformRead_Neg_option1_02) {
+TEST_F(ControllerTest, PerformRead_Neg_option1_02) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1749,21 +1677,19 @@ TEST_F(KtCtrlrTest, PerformRead_Neg_option1_02) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformRead with negative option2 
-TEST_F(KtCtrlrTest, PerformRead_Neg_option2_03) {
+TEST_F(ControllerTest, PerformRead_Neg_option2_03) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1775,20 +1701,19 @@ TEST_F(KtCtrlrTest, PerformRead_Neg_option2_03) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with negative option1 
-TEST_F(KtCtrlrTest, PerformRead_Neg_option2_04) {
+TEST_F(ControllerTest, PerformRead_Neg_option2_04) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1800,21 +1725,19 @@ TEST_F(KtCtrlrTest, PerformRead_Neg_option2_04) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformRead with unsupported datatype 
-TEST_F(KtCtrlrTest, PerformRead_Neg_datatype_05) {
+TEST_F(ControllerTest, PerformRead_Neg_datatype_05) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1826,20 +1749,19 @@ TEST_F(KtCtrlrTest, PerformRead_Neg_datatype_05) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with negative dataype
-TEST_F(KtCtrlrTest, PerformRead_Neg_datatype_06) {
+TEST_F(ControllerTest, PerformRead_Neg_datatype_06) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1851,22 +1773,20 @@ TEST_F(KtCtrlrTest, PerformRead_Neg_datatype_06) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformRead with valid option1 and valid option2
-TEST_F(KtCtrlrTest, PerformRead_pos_07) {
+TEST_F(ControllerTest, PerformRead_pos_07) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1878,24 +1798,25 @@ TEST_F(KtCtrlrTest, PerformRead_pos_07) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //PerformRead with valid option1 and valid option2
-TEST_F(KtCtrlrTest, PerformRead_pos_db_Success_08) {
+TEST_F(ControllerTest, PerformRead_pos_db_Success_08) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st_t> vect_val_ctr_st;
-  int index;
-  vect_val_ctr_st[index].controller.cs_row_status == DELETED;
-  uint32_t key_type = 0;
+  val_ctr_st_t vst;
+  memset(&vst, 0, sizeof(vst));
+  vst.controller.cs_row_status = DELETED;
+  vect_val_ctr_st.push_back(vst);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1907,20 +1828,19 @@ TEST_F(KtCtrlrTest, PerformRead_pos_db_Success_08) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
-TEST_F(KtCtrlrTest, PerformRead_pos_db_fail_09) {
+
+TEST_F(ControllerTest, PerformRead_pos_db_fail_09) {
   key_ctr_t k;
   val_ctr v;
-  uint32_t key_type = 0;
+  memset(&v, 0, sizeof(v));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1931,24 +1851,25 @@ TEST_F(KtCtrlrTest, PerformRead_pos_db_fail_09) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 //PerformRead with valid option1 and valid option2
-TEST_F(KtCtrlrTest, PerformRead_pos_db_Success_10) {
+TEST_F(ControllerTest, PerformRead_pos_db_Success_10) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st_t> vect_val_ctr_st;
-  int index;
-  vect_val_ctr_st[index].controller.cs_row_status == DELETED;
-  uint32_t key_type = 0;
+  val_ctr_st_t vst;
+  memset(&vst, 0, sizeof(vst));
+  vst.controller.cs_row_status = DELETED;
+  vect_val_ctr_st.push_back(vst);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1960,16 +1881,15 @@ TEST_F(KtCtrlrTest, PerformRead_pos_db_Success_10) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
   int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 //HandleDriverEvents with other than Update operation
-TEST_F(KtCtrlrTest, HandleDriverEvents_No_Update_01) {
+TEST_F(ControllerTest, HandleDriverEvents_No_Update_01) {
   key_ctr_t k;
   val_ctr_st_t v_old;
   val_ctr_st_t v_new;
-  pfc_bool_t is_events_done;
+  pfc_bool_t is_events_done(PFC_FALSE);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
@@ -1979,12 +1899,11 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_No_Update_01) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //HandleDriverEvents with CANDIDATE operation
-TEST_F(KtCtrlrTest, HandleDriverEvents_CANDIDATE_NegDB_02) {
+TEST_F(ControllerTest, HandleDriverEvents_CANDIDATE_NegDB_02) {
   key_ctr_t k;
   val_ctr_st_t v_old;
   val_ctr_st_t v_new;
@@ -1992,7 +1911,7 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_CANDIDATE_NegDB_02) {
   memset(v_new.valid, '\0', sizeof(v_new.valid));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  pfc_bool_t is_events_done;
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
@@ -2000,12 +1919,11 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_CANDIDATE_NegDB_02) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_NegDB_03) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_NegDB_03) {
   key_ctr_t k;
   val_ctr_st_t v_old;
   val_ctr_st_t v_new;
@@ -2013,7 +1931,7 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_NegDB_03) {
   memset(v_new.valid, '\0', sizeof(v_new.valid));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  pfc_bool_t is_events_done;
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
@@ -2021,11 +1939,11 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_NegDB_03) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_04) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_04) {
   key_ctr_t k;
   val_ctr_st_t v_old;
   val_ctr_st_t v_new;
@@ -2033,7 +1951,7 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_04) {
   memset(v_new.valid, '\0', sizeof(v_new.valid));
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  pfc_bool_t is_events_done;
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
@@ -2041,16 +1959,21 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_04) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_05) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_05) {
   key_ctr_t k;
-  val_ctr_st_t *v_old = new val_ctr_st_t;
-  val_ctr_st_t *v_new = new val_ctr_st_t;
-  v_new->oper_status = UPPL_CONTROLLER_OPER_UP;
-  pfc_bool_t is_events_done;
+  memset(&k, 0, sizeof(k));
+
+  val_ctr_st_t v_old;
+  val_ctr_st_t v_new;
+  memset(&v_old, 0, sizeof(v_old));
+  memset(&v_new, 0, sizeof(v_new));
+  v_new.oper_status = UPPL_CONTROLLER_OPER_UP;
+
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
@@ -2058,20 +1981,21 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_05) {
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,v_old,v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_06) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_06) {
   key_ctr_t k;
   val_ctr_st_t v_old;
   val_ctr_st_t v_new;
   memset(v_old.valid, '\0', sizeof(v_old.valid));
   memset(v_new.valid, '\0', sizeof(v_new.valid));
+
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  pfc_bool_t is_events_done;
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
@@ -2080,15 +2004,18 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_06) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_07) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_07) {
   key_ctr_t k;
-  val_ctr_st_t *v_old = new val_ctr_st_t;
-  val_ctr_st_t *v_new = new val_ctr_st_t;
-  v_new->oper_status = UPPL_CONTROLLER_OPER_UP;
+  val_ctr_st_t v_old;
+  val_ctr_st_t v_new;
+  memset(v_old.valid, '\0', sizeof(v_old.valid));
+  memset(v_new.valid, '\0', sizeof(v_new.valid));
+  v_new.oper_status = UPPL_CONTROLLER_OPER_UP;
+
   pfc_bool_t is_events_done=false;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
@@ -2097,17 +2024,20 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_07) {
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,v_old,v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_08) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_08) {
   key_ctr_t k;
-  val_ctr_st_t *v_old = new val_ctr_st_t;
-  val_ctr_st_t *v_new = new val_ctr_st_t;
-  v_new->oper_status = UPPL_CONTROLLER_OPER_DOWN;
-  pfc_bool_t is_events_done;
+  val_ctr_st_t v_old;
+  val_ctr_st_t v_new;
+  memset(v_old.valid, '\0', sizeof(v_old.valid));
+  memset(v_new.valid, '\0', sizeof(v_new.valid));
+  v_new.oper_status = UPPL_CONTROLLER_OPER_DOWN;
+
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
@@ -2115,19 +2045,22 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_08) {
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,v_old,v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //HandleDriverEvents with RUNNING datatype
-TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_09) {
+TEST_F(ControllerTest, HandleDriverEvents_RUNNING_09) {
   key_ctr_t k;
-  val_ctr_st_t *v_old = new val_ctr_st_t;
-  val_ctr_st_t *v_new = new val_ctr_st_t;
-  v_new->valid[kIdxActualVersion]=UNC_VF_VALID;
+  val_ctr_st_t v_old;
+  val_ctr_st_t v_new;
+  memset(&v_old, 0, sizeof(v_old));
+  memset(&v_new, 0, sizeof(v_new));
+  v_new.valid[kIdxActualVersion]=UNC_VF_VALID;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  pfc_bool_t is_events_done;
+
+  pfc_bool_t is_events_done(PFC_FALSE);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
@@ -2135,53 +2068,44 @@ TEST_F(KtCtrlrTest, HandleDriverEvents_RUNNING_09) {
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,v_old,v_new,is_events_done);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 //CheckIpAndClearStateDB with DB success
-TEST_F(KtCtrlrTest, CheckIpAndClearStateDB_Db_Success_01) {
+TEST_F(ControllerTest, CheckIpAndClearStateDB_Db_Success_01) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
-  uint32_t oper_type = UNC_OP_READ;
-  uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.CheckIpAndClearStateDB(db_conn,&k);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //CheckIpAndClearStateDB with DB failure
-TEST_F(KtCtrlrTest, CheckIpAndClearStateDB_Db_failure_02) {
+TEST_F(ControllerTest, CheckIpAndClearStateDB_Db_failure_02) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
-  uint32_t oper_type = UNC_OP_READ;
-  uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  KtctrObj.CheckIpAndClearStateDB(db_conn,&k);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
-//SendOperStatusNotification with add output error
-TEST_F(KtCtrlrTest, SendOperStatusNotification_01) {
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
 
+//SendOperStatusNotification with add output error
+TEST_F(ControllerTest, SendOperStatusNotification_01) {
   key_ctr_t k;
-  uint8_t old_oper_st;
-  uint8_t new_oper_st;
+  uint8_t old_oper_st(0);
+  uint8_t new_oper_st(1);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
   sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
@@ -2189,24 +2113,17 @@ TEST_F(KtCtrlrTest, SendOperStatusNotification_01) {
   Kt_Controller  KtctrObj;
 
   int ret =  KtctrObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 //SendOperStatusNotification with success in add output
-TEST_F(KtCtrlrTest, SendOperStatusNotification_02) {
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
-
+TEST_F(ControllerTest, SendOperStatusNotification_02) {
   key_ctr_t k;
-  uint8_t old_oper_st;
-  uint8_t new_oper_st;
-  val_ctr_st_t old_val_ctr, new_val_ctr;
+  uint8_t old_oper_st(0);
+  uint8_t new_oper_st(1);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
@@ -2214,172 +2131,178 @@ TEST_F(KtCtrlrTest, SendOperStatusNotification_02) {
   Kt_Controller  KtctrObj;
 
   int ret =  KtctrObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(ret,UPPL_RC_FAILURE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_FAILURE, ret);
 }
 
 //ValidateControllerIpAddress
-TEST_F(KtCtrlrTest, ValidateControllerIpAddress_01) {
+TEST_F(ControllerTest, ValidateControllerIpAddress_01) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
+  val_ctr_t v;
+  memset(&v, 0, sizeof(v));
+
   Kt_Controller  KtctrObj;
   uint32_t operation = UNC_OP_UPDATE;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=1;
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)0,(UpplReturnCode)0,&k,v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
-  unc::uppl::ODBCManager::clearStubData();
+  v.valid[kIdxIpAddress]=1;
+  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)0,(UpplReturnCode)0,&k,&v);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //ValidateControllerIpAddress
-TEST_F(KtCtrlrTest, ValidateControllerIpAddress_02) {
+TEST_F(ControllerTest, ValidateControllerIpAddress_02) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
+  val_ctr_t v;
+  memset(&v, 0, sizeof(v));
+
   Kt_Controller  KtctrObj;
   uint32_t operation = UNC_OP_UPDATE;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=2;
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  v.valid[kIdxIpAddress]=2;
+  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,&v);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //ValidateControllerIpAddress
-TEST_F(KtCtrlrTest, ValidateControllerIpAddress_03) {
+TEST_F(ControllerTest, ValidateControllerIpAddress_03) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
+  val_ctr_t v;
+  memset(&v, 0, sizeof(v));
+
   Kt_Controller  KtctrObj;
   uint32_t operation = UNC_OP_UPDATE;
-  uint32_t data_type;
+  uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=1;
+  v.valid[kIdxIpAddress]=1;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,&v);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //ValidateControllerIpAddress
-TEST_F(KtCtrlrTest, ValidateControllerIpAddress_04) {
+TEST_F(ControllerTest, ValidateControllerIpAddress_04) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
+  val_ctr_t v;
+  memset(&v, 0, sizeof(v));
+
   Kt_Controller  KtctrObj;
   uint32_t operation = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=1;
+  v.valid[kIdxIpAddress]=1;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,&v);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 //ValidateUnknownCtrlrScalability
-TEST_F(KtCtrlrTest, ValidateUnknownCtrlrScalability_Neg_DB_01) {
+TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_01) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
   Kt_Controller  KtctrObj;
-  uint8_t type;
-  uint32_t data_type;
+  uint8_t type(UNC_CT_PFC);
+  uint32_t data_type(UNC_DT_RUNNING);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=2;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_FAILED);
   int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 //ValidateUnknownCtrlrScalability
-TEST_F(KtCtrlrTest, ValidateUnknownCtrlrScalability_Neg_DB_02) {
+TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_02) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
   Kt_Controller  KtctrObj;
-  uint8_t type;
-  uint32_t data_type;
+  uint8_t type(UNC_CT_PFC);
+  uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=2;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 //ValidateUnknownCtrlrScalability
-TEST_F(KtCtrlrTest, ValidateUnknownCtrlrScalability_Neg_DB_03) {
+TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_03) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
   Kt_Controller  KtctrObj;
-  uint8_t type;
-  uint32_t data_type;
+  uint8_t type(UNC_CT_PFC);
+  uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=2;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setSiblingCount(1);
   int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT, ret);
 }
+
 //ValidateUnknownCtrlrScalability
-TEST_F(KtCtrlrTest, ValidateUnknownCtrlrScalability_Neg_DB_04) {
+TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_04) {
   key_ctr_t k;
-  val_ctr_t *v = new val_ctr_t;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
   Kt_Controller  KtctrObj;
-  uint8_t type;
-  uint32_t data_type;
+  uint8_t type(UNC_CT_PFC);
+  uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  v->valid[kIdxIpAddress]=2;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_RECORD_NOT_FOUND);
+  unc::uppl::ODBCManager::stub_setSiblingCount(1);
   int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT, ret);
 }
+
 //FrameValidValue
-TEST_F(KtCtrlrTest, FrameValidValue_01) {
-  key_ctr_t k;
+TEST_F(ControllerTest, FrameValidValue_01) {
   val_ctr_t v;
   val_ctr_st_t v_st;
-  memset(k.controller_name, '\0', 32);
-  memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
+  memset(&v, 0xff, sizeof(v));
+  memset(&v_st, 0xff, sizeof(v_st));
 
   Kt_Controller  KtctrObj;
-  string abd="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
-  KtctrObj.FrameValidValue(abd,v_st,v);
-  int ret = UPPL_RC_SUCCESS;
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  string abd("012345678");
+  KtctrObj.FrameValidValue(abd, v_st, v);
+
+  const uint32_t vsize(PFC_ARRAY_CAPACITY(v.valid));
+  for (uint32_t i(0); i < vsize; i++) {
+    ASSERT_EQ(i, v.valid[i]);
+  }
+
+  ASSERT_EQ(UNC_VF_VALID, v_st.valid[0]);
+  for (uint8_t i(1); i < PFC_ARRAY_CAPACITY(v_st.valid); i++) {
+    uint8_t required(static_cast<uint8_t>(vsize + i - 1));
+    ASSERT_EQ(required, v_st.valid[i]);
+  }
 }
+
 /*******TAMIL TEST CASES*******/
 /********ReadBulk*******/
 
 //ReadBulk opr returns Success for max_ct is zero
-TEST_F(KtCtrlrTest, ReadBulk_Max_Ct_Zero) {
+TEST_F(ControllerTest, ReadBulk_Max_Ct_Zero) {
   key_ctr_t k;
-  int child_index;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
-  ReadRequest *read_req;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req(NULL);
   uint32_t max_rep_ct = 0;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -2388,16 +2311,15 @@ TEST_F(KtCtrlrTest, ReadBulk_Max_Ct_Zero) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Check for controller key existence
-TEST_F(KtCtrlrTest, ReadBulk_childIndex) {
+TEST_F(ControllerTest, ReadBulk_childIndex) {
   key_ctr_t k;
   int child_index = -1;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest *read_req = NULL;
   uint32_t max_rep_ct = 0;
   memset(k.controller_name, '\0', 32);
@@ -2409,54 +2331,52 @@ TEST_F(KtCtrlrTest, ReadBulk_childIndex) {
   //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-
 /*************ReadBulkInternal**********/
 // ReadBulkInternal: No record to read
-TEST_F(KtCtrlrTest, ReadBulkInternal_NoRecordFound) {
+TEST_F(ControllerTest, ReadBulkInternal_NoRecordFound) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st> vect_val_ctr_st;
   vector<string> vect_ctr_id;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-
 // ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtCtrlrTest, ReadBulkInternal_Db_Connxn_Error) {
+TEST_F(ControllerTest, ReadBulkInternal_Db_Connxn_Error) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st> vect_val_ctr_st;
-   vector<string> vect_ctr_id;
-  uint32_t max_rep_ct;
+  vector<string> vect_ctr_id;
+  uint32_t max_rep_ct(1);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
-TEST_F(KtCtrlrTest, ReadBulkInternal_Err_DB_Get) {
+TEST_F(ControllerTest, ReadBulkInternal_Err_DB_Get) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st> vect_val_ctr_st;
   vector<string> vect_ctr_id;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
@@ -2464,17 +2384,17 @@ TEST_F(KtCtrlrTest, ReadBulkInternal_Err_DB_Get) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct, 
                                               vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
-TEST_F(KtCtrlrTest, ReadBulkInternal_Success) {
+TEST_F(ControllerTest, ReadBulkInternal_Success) {
   key_ctr_t k;
   val_ctr_t v;
+  memset(&v, 0, sizeof(v));
   vector<val_ctr_st> vect_val_ctr_st;
   vector<string> vect_ctr_id;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
@@ -2482,26 +2402,22 @@ TEST_F(KtCtrlrTest, ReadBulkInternal_Success) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct,
                                              vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*********ValidateCtrlrValueCapability*******/
 //returns config syntax error
-TEST_F(KtCtrlrTest, ValidateCtrlrValueCapability_Err_CFG_SYNTAX) {
-  key_ctr_t k;
-  val_ctr_st_t v;  
+TEST_F(ControllerTest, ValidateCtrlrValueCapability_Err_CFG_SYNTAX) {
   string version;
-  uint32_t key_type;
+  uint32_t key_type(UNC_KT_CONTROLLER);
   Kt_Controller  KtctrObj;
   int ret =  KtctrObj.ValidateCtrlrValueCapability(version, key_type);
-  EXPECT_EQ(ret, UPPL_RC_ERR_CFG_SYNTAX);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /*******ValidateCtrlrScalability****/
 //Returns Connxn Error
-TEST_F(KtCtrlrTest, ValidateCtrlrScalability_Err_DB_Access) {
+TEST_F(ControllerTest, ValidateCtrlrScalability_Err_DB_Access) {
   OdbcmConnectionHandler *db_conn =NULL;
   string version;
   uint32_t key_type = UNC_KT_CONTROLLER;
@@ -2509,12 +2425,11 @@ TEST_F(KtCtrlrTest, ValidateCtrlrScalability_Err_DB_Access) {
   Kt_Controller  KtctrObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtctrObj.ValidateCtrlrScalability(db_conn, version, key_type, data_type);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 //Unable to get scalability number from system
-TEST_F(KtCtrlrTest, ValidateCtrlrScalability_System_Error) {
+TEST_F(ControllerTest, ValidateCtrlrScalability_System_Error) {
   OdbcmConnectionHandler *db_conn =NULL;
   string version;
   uint32_t key_type = UNC_KT_CONTROLLER;
@@ -2522,12 +2437,11 @@ TEST_F(KtCtrlrTest, ValidateCtrlrScalability_System_Error) {
   Kt_Controller  KtctrObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ValidateCtrlrScalability(db_conn, version, key_type, data_type);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 //Unable to get scalability number from DB
-TEST_F(KtCtrlrTest, ValidateCtrlrScalability_DB_Err) {
+TEST_F(ControllerTest, ValidateCtrlrScalability_DB_Err) {
   OdbcmConnectionHandler *db_conn =NULL;
   string version;
   uint32_t key_type = UNC_KT_CONTROLLER;
@@ -2535,107 +2449,104 @@ TEST_F(KtCtrlrTest, ValidateCtrlrScalability_DB_Err) {
   Kt_Controller  KtctrObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_FAILED);
   int ret =  KtctrObj.ValidateCtrlrScalability(db_conn, version, key_type, data_type);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /******ValidateTypeIpAddress*******/
 
 //Not required to validate type and ip
-TEST_F(KtCtrlrTest, ValidateTypeIpAddress_NoValidation) {
+TEST_F(ControllerTest, ValidateTypeIpAddress_NoValidation) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
   val_ctr_st_t *v = NULL; 
   uint32_t data_type = UNC_DT_STATE;
-  uint32_t ctrl_type;
+  uint32_t ctrl_type(UNC_CT_PFC);
   Kt_Controller  KtctrObj;
   int ret =  KtctrObj.ValidateTypeIpAddress(db_conn,&k,v,data_type,ctrl_type);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, ValidateTypeIpAddress) {
+TEST_F(ControllerTest, ValidateTypeIpAddress) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
-  val_ctr_st_t *v = new val_ctr_st_t; 
+  pfc_strlcpy(reinterpret_cast<char *>(k.controller_name), pkctrName1,
+              sizeof(k.controller_name));
+
+  val_ctr_st_t v;
+  memset(&v, 0, sizeof(v));
   //v->valid[kIdxIpAddress] = UNC_VF_INVALID;
+
   uint32_t data_type = UNC_DT_STATE;
-  uint32_t ctrl_type;
+  uint32_t ctrl_type(UNC_CT_PFC);
   Kt_Controller  KtctrObj;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtctrObj.ValidateTypeIpAddress(db_conn,&k,v,data_type,ctrl_type);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  KtctrObj.ValidateTypeIpAddress(db_conn,&k,&v,data_type,ctrl_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*******HandleDriverAlarms*********/
-TEST_F(KtCtrlrTest, HandleDriverAlarms) {
+TEST_F(ControllerTest, HandleDriverAlarms) {
   OdbcmConnectionHandler *db_conn =NULL;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t alarm_type = UNC_PHYS_PATH_FAULT;
-  uint32_t oper_type;
+  uint32_t oper_type(UNC_OP_UPDATE);
   key_ctr_t k;
-  val_ctr_st_t v;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
+
+  val_phys_path_fault_alarm_t v;
+  memset(&v, 0, sizeof(v));
+  pfc_strlcpy(reinterpret_cast<char *>(v.ingress_ofs_dpid),
+              "00:11:22:33:44:55:66:77", sizeof(v.ingress_ofs_dpid));
+  pfc_strlcpy(reinterpret_cast<char *>(v.egress_ofs_dpid),
+              "aa:bb:cc:dd:ee:ff:00:11", sizeof(v.egress_ofs_dpid));
+
   Kt_Controller  KtctrObj;
   int ret =  KtctrObj.HandleDriverAlarms(db_conn,data_type,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 
 /******SendSemanticRequestToUPLL*******/
 
-TEST_F(KtCtrlrTest, SendSemanticRequestToUPLL) {
-  unc::tclib::TcLibModule::stub_loadtcLibModule();
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
+TEST_F(ControllerTest, SendSemanticRequestToUPLL) {
   key_ctr_t k;
   uint32_t data_type = UNC_DT_STATE;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   int ret =  KtctrObj.SendSemanticRequestToUPLL(&k, data_type);
-  EXPECT_EQ(ret, UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE, ret);
 }
 
 //GetChildClassPointer
-TEST_F(KtCtrlrTest, GetChildClassPointer_01) {
+TEST_F(ControllerTest, GetChildClassPointer_01) {
   int kIndex = 0;
-  Kt_Base *child[KT_CONTROLLER_CHILD_COUNT];
   Kt_Controller  KtctrObj;
-  child[kIndex] = KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex);
-  int ret = UPPL_RC_SUCCESS;
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  Kt_Base *child(KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
+  ASSERT_TRUE(child != NULL);
 }
 
-TEST_F(KtCtrlrTest, GetChildClassPointer_02) {
+TEST_F(ControllerTest, GetChildClassPointer_02) {
   int kIndex = 1;
-  Kt_Base *child[KT_CONTROLLER_CHILD_COUNT];
   Kt_Controller  KtctrObj;
-  child[kIndex] = KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex);
-  int ret = UPPL_RC_SUCCESS;
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  Kt_Base *child(KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
+  ASSERT_TRUE(child != NULL);
 }
 
-TEST_F(KtCtrlrTest, GetChildClassPointer_03) {
+TEST_F(ControllerTest, GetChildClassPointer_03) {
   int kIndex = 2;
-  Kt_Base *child[KT_CONTROLLER_CHILD_COUNT];
   Kt_Controller  KtctrObj;
-  child[kIndex] = KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex);
-  int ret = UPPL_RC_SUCCESS;
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  Kt_Base *child(KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
+  ASSERT_TRUE(child != NULL);
 }
 
 /****ReadBulk Continuation******/
-TEST_F(KtCtrlrTest, ReadBulk) {
+TEST_F(ControllerTest, ReadBulk) {
   key_ctr_t k;
   int child_index = 0;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest *read_req = NULL;
   uint32_t max_rep_ct = 1;
   memset(k.controller_name, '\0', 32);
@@ -2646,16 +2557,15 @@ TEST_F(KtCtrlrTest, ReadBulk) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
                               child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, ReadBulk_ReadBuffer) {
+TEST_F(ControllerTest, ReadBulk_ReadBuffer) {
   key_ctr_t k;
   int child_index = 0;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
-  ReadRequest *read_req = new ReadRequest;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
   uint32_t max_rep_ct = 1;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -2664,17 +2574,16 @@ TEST_F(KtCtrlrTest, ReadBulk_ReadBuffer) {
   //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+                              child_index, parent_call,is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, ReadBulk_child_ind) {
+TEST_F(ControllerTest, ReadBulk_child_ind) {
   key_ctr_t k;
   int child_index = -1;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
-  ReadRequest *read_req = new ReadRequest;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
   uint32_t max_rep_ct = 1;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -2683,18 +2592,18 @@ TEST_F(KtCtrlrTest, ReadBulk_child_ind) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtCtrlrTest, ReadBulk_ctr_exists_FALSE) {
+TEST_F(ControllerTest, ReadBulk_ctr_exists_FALSE) {
   key_ctr_t k;
   memset(&k,0,sizeof(key_ctr_t));
-  int child_index;
-  pfc_bool_t parent_call = false;
-  pfc_bool_t is_read_next;
-  ReadRequest *read_req = new ReadRequest;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
   uint32_t max_rep_ct = 1;
   //memset(k.controller_name, '\0', 32);
   //memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
@@ -2704,28 +2613,26 @@ TEST_F(KtCtrlrTest, ReadBulk_ctr_exists_FALSE) {
   //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+                               child_index, parent_call,is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-
 // DeleteKeyInstance:returns DB error
-TEST_F(KtCtrlrTest, DeleteKeyInstan_Err_DB_ACCESS) {
+TEST_F(ControllerTest, DeleteKeyInstan_Err_DB_ACCESS) {
   key_ctr_t k;
-  uint32_t key_type ;
+  uint32_t key_type(UNC_KT_CONTROLLER);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 //ReadBulkInternal:Reaturns success for max_ct zero
-TEST_F(KtCtrlrTest,ReadBulkInternal_MaxCt_LessThan_Zero) {
+TEST_F(ControllerTest,ReadBulkInternal_MaxCt_LessThan_Zero) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
   val_ctr_st_t v;
@@ -2735,28 +2642,29 @@ TEST_F(KtCtrlrTest,ReadBulkInternal_MaxCt_LessThan_Zero) {
   vector<string> vect_ctr_id;
   Kt_Controller  KtctrObj;
   int ret = KtctrObj.ReadBulkInternal(db_conn,&k,&v,data_type,max_rep_ct,vect_val_ctr,vect_ctr_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }  
 
 //HandleDriverEvents
-TEST_F(KtCtrlrTest, HandleDriverEvents) {
+TEST_F(ControllerTest, HandleDriverEvents) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
+  pfc_strlcpy(reinterpret_cast<char *>(k.controller_name), pkctrName1,
+              sizeof(k.controller_name));
+
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_STATE;
-  val_ctr_st_t *old_val_struct = NULL;
-  val_ctr_st_t *new_val_struct;
-  pfc_bool_t is_events_done;
+  val_ctr_st_t *old_val_struct(NULL);
+  val_ctr_st_t *new_val_struct(NULL);
+  pfc_bool_t is_events_done(PFC_FALSE);
   Kt_Controller  KtctrObj;
   int ret = KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,old_val_struct,new_val_struct,is_events_done);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /***8*ReadCtrValFromDb****/
 //Unsuported opr type....Returns Success
-TEST_F(KtCtrlrTest, ReadCtrValFromDB) {
+TEST_F(ControllerTest, ReadCtrValFromDB) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
   val_ctr_st_t v;
@@ -2767,8 +2675,5 @@ TEST_F(KtCtrlrTest, ReadCtrValFromDB) {
   vector<string> controller_id;
   Kt_Controller  KtctrObj;
   int ret = KtctrObj.ReadCtrValFromDB(db_conn,&k,&v,data_type,operation_type,max_rep_ct,vect_val_ctr_st,controller_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-
-
index 48f4490f678412aec6c30639ebb3b7ce42943d1a..b02774862131539f99528cac30985cb216e0967c 100644 (file)
@@ -1,13 +1,11 @@
- /*
-  * Copyright (c) 2012-2013 NEC Corporation
-  * All rights reserved
-  *
-  * This program and the accompanying materials are made available under the
-  * terms of the Eclipse Public License v1.0 which accompanies this
-  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-  */
-
-
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #include <limits.h>
 #include <gtest/gtest.h>
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include "stub/ODBC/include/odbcm_mgr.hh"
-#include "physical_common_def.hh"
-#include "unc/uppl_common.h"
-#include "unc/keytype.h"
-#include "itc_kt_base.hh"
-#include "itc_kt_root.hh"
-#include "itc_kt_controller.hh"
-#include "itc_kt_ctr_domain.hh"
-#include "itc_kt_switch.hh"
-#include "itc_kt_port.hh"
-#include "itc_kt_link.hh"
-#include "itc_kt_boundary.hh"
-#include "itc_kt_logicalport.hh"
-#include "ipct_util.hh"
+#include <odbcm_mgr.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <itc_kt_logicalport.hh>
+#include <ipct_util.hh>
+#include <itc_read_request.hh>
+#include <tclib_module.hh>
 #include "PhysicalLayerStub.hh"
-#include "itc_read_request.hh"
-#include "tclib_module.hh"
+#include "ut_util.hh"
 
 using namespace pfc;
 using namespace pfc::core;
 using namespace pfc::core::ipc;
 using namespace std;
 using namespace unc::tclib;
+using namespace unc::uppl::test;
 
-ClientSession *cli_sess = NULL;
-pfc_ipcid_t service = UPPL_SVC_CONFIGREQ;
-class KtClassTest : public testing::Test {
-protected:
-  virtual void SetUp() {
-    unc::tclib::TcLibModule::stub_loadtcLibModule();
-    if (cli_sess == NULL) {
-      pfc_ipcconn_t connp = 0;
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);
-      ASSERT_EQ(0, err);
-      //ASSERT_TRUE(connp != 0);
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-      //ASSERT_EQ(0, err);
-    } else {
-      cli_sess->reset(UPPL_IPC_SVC_NAME, service);
-    }
-  }
-  virtual void TearDown() {
-  }
+class DomainTest
+  : public UpplTestEnv
+{
 };
 
-// Can be changed based on testing need
-#if 0
-char pkName1[] = "Controller1_domain_name";
-char pkName2[] = "Domain7";
-char pkName3[] = "Domain15";
-char pkName4[] = "";
-char pkName5[] = "NotExisting";
-char pkName11[] = "Domain20";
-
-char pkName6[] = "Controller1";
-char pkName7[] = "Controller7";
-char pkName8[] = "Controller15";
-char pkName9[] = "";
-char pkName10[] = "NotExisting";
-char pkName12[] = "Controller20";
-
-
-
-#endif
-char pkctrName1[] = "Controller1";
-char pkDomainName2[] = "Domain1";
-char pkDomainName3[] = "(DEFAULT)";
-char valDescription[] = "description1";
+static char pkctrName1[] = "Controller1";
+static char pkDomainName2[] = "Domain1";
+static char pkDomainName3[] = "(DEFAULT)";
+static char valDescription[] = "description1";
 
-TEST_F(KtClassTest, PerformSyntxCheck_Domainname_notFound_01) {
+TEST_F(DomainTest, PerformSyntxCheck_Domainname_notFound_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  PhysicalLayerStub::loadphysicallayer();
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -117,10 +81,10 @@ TEST_F(KtClassTest, PerformSyntxCheck_Domainname_notFound_01) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Controllername_notFound_02) {
+TEST_F(DomainTest, PerformSyntxCheck_Controllername_notFound_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   Kt_Ctr_Domain  KtdomianObj;
@@ -130,12 +94,14 @@ TEST_F(KtClassTest, PerformSyntxCheck_Controllername_notFound_02) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_without_type_03) {
+TEST_F(DomainTest, PerformSyntxCheck_Valstrct_without_type_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
+
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -144,14 +110,16 @@ TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_without_type_03) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_04) {
+TEST_F(DomainTest, PerformSyntxCheck_Valstrct_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -160,14 +128,16 @@ TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_04) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_05) {
+TEST_F(DomainTest, PerformSyntxCheck_Valstrct_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -176,14 +146,16 @@ TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_05) {
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_06) {
+TEST_F(DomainTest, PerformSyntxCheck_Valstrct_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 0;
   v.valid[kIdxDomainType] = 1;
+
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -192,14 +164,16 @@ TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_06) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_07) {
+TEST_F(DomainTest, PerformSyntxCheck_Valstrct_07) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -208,16 +182,17 @@ TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_07) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_08) {
+TEST_F(DomainTest, PerformSyntxCheck_Valstrct_08) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -226,10 +201,10 @@ TEST_F(KtClassTest, PerformSyntxCheck_Valstrct_08) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformSyntxCheck_val_struct_empty_09) {
+TEST_F(DomainTest, PerformSyntxCheck_val_struct_empty_09) {
   key_ctr_domain_t k;
   val_ctr_domain *v;
   v = NULL;
@@ -241,18 +216,19 @@ TEST_F(KtClassTest, PerformSyntxCheck_val_struct_empty_09) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 // Create for unsupported datatype
-TEST_F(KtClassTest, Create_01) {
+TEST_F(DomainTest, Create_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -261,18 +237,19 @@ TEST_F(KtClassTest, Create_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 // Domain Create success 
-TEST_F(KtClassTest, Create_02) {
+TEST_F(DomainTest, Create_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -293,19 +270,20 @@ TEST_F(KtClassTest, Create_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // get_controller_type returns failure 
-TEST_F(KtClassTest, Create_03) {
+TEST_F(DomainTest, Create_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -325,12 +303,12 @@ TEST_F(KtClassTest, Create_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 /*
 //Create on unsupported datatype 
-TEST_F(KtClassTest, Create) {
+TEST_F(DomainTest, Create) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -347,10 +325,10 @@ TEST_F(KtClassTest, Create) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
  
-TEST_F(KtClassTest, PerformSemanticValidation_01) {
+TEST_F(DomainTest, PerformSemanticValidation_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   v.type = 1;
@@ -365,11 +343,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_01) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }*/
 
 // IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, IsKeyExists_01) {
+TEST_F(DomainTest, IsKeyExists_01) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
@@ -377,12 +355,11 @@ TEST_F(KtClassTest, IsKeyExists_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_ROW_EXISTS
-TEST_F(KtClassTest, IsKeyExists_02) {
+TEST_F(DomainTest, IsKeyExists_02) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
@@ -390,12 +367,11 @@ TEST_F(KtClassTest, IsKeyExists_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_QUERY_TIMEOUT
-TEST_F(KtClassTest, IsKeyExists_03) {
+TEST_F(DomainTest, IsKeyExists_03) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
@@ -403,23 +379,21 @@ TEST_F(KtClassTest, IsKeyExists_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
   int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // IsKeyExists  with key structure empty
-TEST_F(KtClassTest, IsKeyExists_04) {
+TEST_F(DomainTest, IsKeyExists_04) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.clear();
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 // CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, CreateKeyInstance_01) {
+TEST_F(DomainTest, CreateKeyInstance_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t key_type = 1;
@@ -435,21 +409,21 @@ TEST_F(KtClassTest, CreateKeyInstance_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 // CreateKeyInstance with UNC_DT_RUNNING datatype ODBC 
-TEST_F(KtClassTest, CreateKeyInstance_02) {
+TEST_F(DomainTest, CreateKeyInstance_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
+
+  uint32_t key_type = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -457,21 +431,21 @@ TEST_F(KtClassTest, CreateKeyInstance_02) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
+
 // CreateKeyInstance with UNC_DT_STATE  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, CreateKeyInstance_03) {
+TEST_F(DomainTest, CreateKeyInstance_03) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -479,22 +453,21 @@ TEST_F(KtClassTest, CreateKeyInstance_03) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, CreateKeyInstance_04) {
+TEST_F(DomainTest, CreateKeyInstance_04) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -502,22 +475,21 @@ TEST_F(KtClassTest, CreateKeyInstance_04) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return Failure
-TEST_F(KtClassTest, CreateKeyInstance_05) {
+TEST_F(DomainTest, CreateKeyInstance_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
+
+  uint32_t key_type = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -525,21 +497,21 @@ TEST_F(KtClassTest, CreateKeyInstance_05) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
+
 // CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC ODBCM_RC_SUCCESS
-TEST_F(KtClassTest, CreateKeyInstance_06) {
+TEST_F(DomainTest, CreateKeyInstance_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
+
+  uint32_t key_type = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -547,21 +519,21 @@ TEST_F(KtClassTest, CreateKeyInstance_06) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // CreateKeyInstance with UNC_DT_STATE  datatype ODBC return Failure
-TEST_F(KtClassTest, CreateKeyInstance_07) {
+TEST_F(DomainTest, CreateKeyInstance_07) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -569,22 +541,21 @@ TEST_F(KtClassTest, CreateKeyInstance_07) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
 
 // CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return Failure
-TEST_F(KtClassTest, CreateKeyInstance_08) {
+TEST_F(DomainTest, CreateKeyInstance_08) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -592,22 +563,21 @@ TEST_F(KtClassTest, CreateKeyInstance_08) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_CREATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
 }
 
 // Update for unsupported datatype
-TEST_F(KtClassTest, Update_01) {
+TEST_F(DomainTest, Update_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -616,18 +586,19 @@ TEST_F(KtClassTest, Update_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 // Domain Update success 
-TEST_F(KtClassTest, Update_02) {
+TEST_F(DomainTest, Update_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -648,19 +619,20 @@ TEST_F(KtClassTest, Update_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // get_controller_type returns failure 
-TEST_F(KtClassTest, Update_03) {
+TEST_F(DomainTest, Update_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -680,20 +652,20 @@ TEST_F(KtClassTest, Update_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // UpdateKeyInstance with UNC_DT_CANDIDATE ODBC retuns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, UpdateKeyInstance_01) {
+TEST_F(DomainTest, UpdateKeyInstance_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
+
+  uint32_t key_type = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -701,42 +673,42 @@ TEST_F(KtClassTest, UpdateKeyInstance_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // UpdateKeyInstance on unsupported datatype
-TEST_F(KtClassTest, UpdateKeyInstance_02) {
+TEST_F(DomainTest, UpdateKeyInstance_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
+
+  uint32_t key_type = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
+
 // UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, UpdateKeyInstance_03) {
+TEST_F(DomainTest, UpdateKeyInstance_03) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -744,21 +716,21 @@ TEST_F(KtClassTest, UpdateKeyInstance_03) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 // UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_SUCCESS
-TEST_F(KtClassTest, UpdateKeyInstance_04) {
+TEST_F(DomainTest, UpdateKeyInstance_04) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -766,21 +738,21 @@ TEST_F(KtClassTest, UpdateKeyInstance_04) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  //PhysicalLayer *physical_layer = new PhysicalLayer();
   int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns 
-TEST_F(KtClassTest, UpdateKeyInstance_05) {
+TEST_F(DomainTest, UpdateKeyInstance_05) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  memcpy(v.domain.description, valDescription, strlen(valDescription));
+  v.domain.valid[kIdxDomainDescription] = 1;
+
   uint32_t key_type = 1;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  memcpy(v.description, valDescription, strlen(valDescription));
-  v.valid[kIdxDomainDescription] = 1;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -789,19 +761,20 @@ TEST_F(KtClassTest, UpdateKeyInstance_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
+
 // Delete for unsupported datatype
-TEST_F(KtClassTest, Delete_01) {
+TEST_F(DomainTest, Delete_01) {
   key_ctr_domain_t k;
-  val_ctr_domain v;
+  val_ctr_domain_st v;
+  memset(&v, 0, sizeof(v));
+  v.domain.type = 1;
+  v.domain.valid[kIdxDomainType] = 1;
+  v.domain.valid[kIdxDomainDescription] = 0;
+
   uint32_t session_id = 1;
   uint32_t configuration_id = 2;
-  v.type = 1;
-  v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
-  v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -810,18 +783,19 @@ TEST_F(KtClassTest, Delete_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_STATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 // Domain Delete success 
-TEST_F(KtClassTest, Delete_02) {
+TEST_F(DomainTest, Delete_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -841,19 +815,20 @@ TEST_F(KtClassTest, Delete_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // get_controller_type returns failure 
-TEST_F(KtClassTest, Delete_03) {
+TEST_F(DomainTest, Delete_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -872,19 +847,20 @@ TEST_F(KtClassTest, Delete_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 // Domain Delete With boundary referred
-TEST_F(KtClassTest, Delete_04) {
+TEST_F(DomainTest, Delete_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
+
+  uint32_t session_id = 1;
+  uint32_t configuration_id = 2;
   Kt_Ctr_Domain  KtdomianObj;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
@@ -904,21 +880,20 @@ TEST_F(KtClassTest, Delete_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 // UpdateKeyInstance with ODBC retuns ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, GetModifiedRows_01) {
+TEST_F(DomainTest, GetModifiedRows_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
-  PhysicalLayerStub::loadphysicallayer();
+
+  vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -927,22 +902,20 @@ TEST_F(KtClassTest, GetModifiedRows_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ODBC retuns ODBCM_RC_RECORD_NOT_FOUND 
-TEST_F(KtClassTest, GetModifiedRows_02) {
+TEST_F(DomainTest, GetModifiedRows_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
-  PhysicalLayerStub::loadphysicallayer();
+
+  vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -951,22 +924,20 @@ TEST_F(KtClassTest, GetModifiedRows_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ODBC retuns ODBCM_RC_SUCCESS 
-TEST_F(KtClassTest, GetModifiedRows_03) {
+TEST_F(DomainTest, GetModifiedRows_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
-  PhysicalLayerStub::loadphysicallayer();
+
+  vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -975,22 +946,20 @@ TEST_F(KtClassTest, GetModifiedRows_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
 // ODBC retuns ODBCM_RC_FAILED
-TEST_F(KtClassTest, GetModifiedRows_04) {
+TEST_F(DomainTest, GetModifiedRows_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
-  vector<void *> obj_key_struct;
-  uint32_t key_type = 1;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
-  memset(v.description, '\0', 128);
   memcpy(v.description, valDescription, strlen(valDescription));
   v.valid[kIdxDomainDescription] = 1;
-  PhysicalLayerStub::loadphysicallayer();
+
+  vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -999,12 +968,10 @@ TEST_F(KtClassTest, GetModifiedRows_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(KtClassTest, SetOperStatus_001) {
-
+TEST_F(DomainTest, SetOperStatus_001) {
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1015,12 +982,10 @@ TEST_F(KtClassTest, SetOperStatus_001) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(KtClassTest, SetOperStatus_002) {
-
+TEST_F(DomainTest, SetOperStatus_002) {
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1030,10 +995,10 @@ TEST_F(KtClassTest, SetOperStatus_002) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-TEST_F(KtClassTest, SetOperStatus_003) {
+
+TEST_F(DomainTest, SetOperStatus_003) {
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1045,11 +1010,10 @@ TEST_F(KtClassTest, SetOperStatus_003) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, SetOperStatus_004) {
+TEST_F(DomainTest, SetOperStatus_004) {
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1058,42 +1022,35 @@ TEST_F(KtClassTest, SetOperStatus_004) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession ser_evt;
-  ServerSession::clearStubData();
-  int err;
   ser_evt.addOutput((uint32_t)UNC_OP_CREATE);
   ser_evt.addOutput((uint32_t)UNC_DT_STATE);
   ser_evt.addOutput((uint32_t)UNC_KT_PORT);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-TEST_F(KtClassTest, SetOperStatus_005) {
+
+TEST_F(DomainTest, SetOperStatus_005) {
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession ser_evt;
-  ServerSession::clearStubData();
-  int err;
   ser_evt.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   ser_evt.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   ser_evt.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // GetOperStatus ODBC returns failure
-TEST_F(KtClassTest, GetOperStatus_001) {
+TEST_F(DomainTest, GetOperStatus_001) {
 
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1105,11 +1062,11 @@ TEST_F(KtClassTest, GetOperStatus_001) {
   uint8_t op_status;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 // GetOperStatus ODBC returns SUCCESS
-TEST_F(KtClassTest, GetOperStatus_002) {
+TEST_F(DomainTest, GetOperStatus_002) {
 
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1121,24 +1078,23 @@ TEST_F(KtClassTest, GetOperStatus_002) {
   uint8_t op_status;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 // HandleOperStatus with NULL keystruct
-TEST_F(KtClassTest, HandleOperStatus_01) {
+TEST_F(DomainTest, HandleOperStatus_01) {
 
   key_ctr_domain_t *k;
   val_ctr_domain v;
   k = NULL;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  uint8_t op_status;
   int ret =  KtdomianObj.HandleOperStatus(db_conn,UNC_DT_STATE,k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 // HandleOperStatus 
-TEST_F(KtClassTest, HandleOperStatus_02) {
+TEST_F(DomainTest, HandleOperStatus_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   v.type = 1;
@@ -1154,12 +1110,11 @@ TEST_F(KtClassTest, HandleOperStatus_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 // HandleOperStatus Controller oper_status  retunrs failure 
-TEST_F(KtClassTest, HandleOperStatus_03) {
+TEST_F(DomainTest, HandleOperStatus_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   v.type = 1;
@@ -1175,12 +1130,11 @@ TEST_F(KtClassTest, HandleOperStatus_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 // HandleDriverAlarms with unsupported alarm type
-TEST_F(KtClassTest, HandleDriverAlarms_01) {
+TEST_F(DomainTest, HandleDriverAlarms_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
@@ -1190,12 +1144,11 @@ TEST_F(KtClassTest, HandleDriverAlarms_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // HandleDriverAlarms with UNC_COREDOMAIN_SPLIT alarm type
-TEST_F(KtClassTest, HandleDriverAlarms_02) {
+TEST_F(DomainTest, HandleDriverAlarms_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1209,12 +1162,11 @@ TEST_F(KtClassTest, HandleDriverAlarms_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // HandleDriverAlarms with oper_type UNC_OP_CREATE 
-TEST_F(KtClassTest, HandleDriverAlarms_03) {
+TEST_F(DomainTest, HandleDriverAlarms_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1228,12 +1180,11 @@ TEST_F(KtClassTest, HandleDriverAlarms_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // HandleDriverAlarms with oper_type UNC_OP_DELETE 
-TEST_F(KtClassTest, HandleDriverAlarms_04) {
+TEST_F(DomainTest, HandleDriverAlarms_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1248,12 +1199,11 @@ TEST_F(KtClassTest, HandleDriverAlarms_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_CREATE 
-TEST_F(KtClassTest, PerformSemanticValidation_01) {
+TEST_F(DomainTest, PerformSemanticValidation_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1266,12 +1216,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_INSTANCE_EXISTS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_CREATE 
-TEST_F(KtClassTest, PerformSemanticValidation_02) {
+TEST_F(DomainTest, PerformSemanticValidation_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1284,12 +1233,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_CREATE 
-TEST_F(KtClassTest, PerformSemanticValidation_03) {
+TEST_F(DomainTest, PerformSemanticValidation_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1302,12 +1250,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_IMPORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_READ 
-TEST_F(KtClassTest, PerformSemanticValidation_04) {
+TEST_F(DomainTest, PerformSemanticValidation_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1320,12 +1267,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_UPDATE 
-TEST_F(KtClassTest, PerformSemanticValidation_05) {
+TEST_F(DomainTest, PerformSemanticValidation_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1338,12 +1284,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // PerformSemanticValidation with oper_type UNC_OP_DELETE 
-TEST_F(KtClassTest, PerformSemanticValidation_06) {
+TEST_F(DomainTest, PerformSemanticValidation_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1356,12 +1301,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_06) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
   int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ReadBulkInternal with max_count zero
-TEST_F(KtClassTest, ReadBulkInternal_01) {
+TEST_F(DomainTest, ReadBulkInternal_01) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1374,12 +1318,11 @@ TEST_F(KtClassTest, ReadBulkInternal_01) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_RECORD_NOT_FOUND
-TEST_F(KtClassTest, ReadBulkInternal_02) {
+TEST_F(DomainTest, ReadBulkInternal_02) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1393,12 +1336,11 @@ TEST_F(KtClassTest, ReadBulkInternal_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
-TEST_F(KtClassTest, ReadBulkInternal_03) {
+TEST_F(DomainTest, ReadBulkInternal_03) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1412,12 +1354,11 @@ TEST_F(KtClassTest, ReadBulkInternal_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
-TEST_F(KtClassTest, ReadBulkInternal_04) {
+TEST_F(DomainTest, ReadBulkInternal_04) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1432,12 +1373,11 @@ TEST_F(KtClassTest, ReadBulkInternal_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
   int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, 
                                               vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 // ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
-TEST_F(KtClassTest, ReadBulkInternal_05) {
+TEST_F(DomainTest, ReadBulkInternal_05) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> vect_domain_id;
@@ -1452,18 +1392,17 @@ TEST_F(KtClassTest, ReadBulkInternal_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct,
                                              vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //  ReadBulk with get_controller_type returns failure
 //  MEM
-TEST_F(KtClassTest, ReadBulk_02) {
+TEST_F(DomainTest, ReadBulk_02) {
   key_ctr_domain_t k;
   int child_index = 2;
   pfc_bool_t parent_call = true;
   pfc_bool_t is_read_next = false;
-  ReadRequest *read_req = new ReadRequest;
+  ReadRequest read_req;
   uint32_t max_rep_ct = 4;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1476,18 +1415,18 @@ TEST_F(KtClassTest, ReadBulk_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+                                  child_index, parent_call,is_read_next,
+                                  &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //  ReadBulk with data type UNC_DT_IMPORT
-TEST_F(KtClassTest, ReadBulk_01) {
+TEST_F(DomainTest, ReadBulk_01) {
   key_ctr_domain_t k;
   int child_index = 0;
   pfc_bool_t parent_call = true;
   pfc_bool_t is_read_next = false;
-  ReadRequest *read_req;
+  ReadRequest read_req;
   uint32_t max_rep_ct = 4;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1497,13 +1436,12 @@ TEST_F(KtClassTest, ReadBulk_01) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+                              child_index, parent_call,is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 // DeleteKeyInstance with data type UNC_DT_RUNNING
-TEST_F(KtClassTest, DeleteKeyInstance_01) {
+TEST_F(DomainTest, DeleteKeyInstance_01) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1514,12 +1452,11 @@ TEST_F(KtClassTest, DeleteKeyInstance_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 // DeleteKeyInstance with out child
-TEST_F(KtClassTest, DeleteKeyInstance_02) {
+TEST_F(DomainTest, DeleteKeyInstance_02) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1530,12 +1467,11 @@ TEST_F(KtClassTest, DeleteKeyInstance_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // DeleteKeyInstance with out child
-TEST_F(KtClassTest, DeleteKeyInstance_03) {
+TEST_F(DomainTest, DeleteKeyInstance_03) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1546,12 +1482,11 @@ TEST_F(KtClassTest, DeleteKeyInstance_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // DeleteKeyInstance with out child
-TEST_F(KtClassTest, DeleteKeyInstance_04) {
+TEST_F(DomainTest, DeleteKeyInstance_04) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1562,12 +1497,11 @@ TEST_F(KtClassTest, DeleteKeyInstance_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SEMANTIC);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
 // DeleteKeyInstance suceess
-TEST_F(KtClassTest, DeleteKeyInstance_05) {
+TEST_F(DomainTest, DeleteKeyInstance_05) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1578,36 +1512,32 @@ TEST_F(KtClassTest, DeleteKeyInstance_05) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // FreeChildKeyStruct invalid index
-TEST_F(KtClassTest, FreeChildKeyStruct_01) {
-  key_ctr_domain_t k;
+TEST_F(DomainTest, FreeChildKeyStruct_01) {
+  key_ctr_domain_t *k(new key_ctr_domain_t);
   int child_class = 1;
   Kt_Ctr_Domain  KtdomianObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
-  KtdomianObj.FreeChildKeyStruct(child_class, &k);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  KtdomianObj.FreeChildKeyStruct(child_class, k);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // FreeChildKeyStruct suceess
-TEST_F(KtClassTest, FreeChildKeyStruct_02) {
+TEST_F(DomainTest, FreeChildKeyStruct_02) {
   void *key = new key_logical_port_t;
   int child_class = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  UPPL_RC_SUCCESS;
   KtdomianObj.FreeChildKeyStruct(child_class, key);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // InvokeBoundaryNotifyOperStatus  suceess
-TEST_F(KtClassTest, InvokeBoundaryNotifyOperStatus_01) {
+TEST_F(DomainTest, InvokeBoundaryNotifyOperStatus_01) {
   key_ctr_domain_t k;
-  uint32_t key_type = 0;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
@@ -1617,12 +1547,11 @@ TEST_F(KtClassTest, InvokeBoundaryNotifyOperStatus_01) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.InvokeBoundaryNotifyOperStatus(db_conn, UNC_DT_IMPORT, &k);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformRead invalid option and session failure
-TEST_F(KtClassTest, PerformRead_01) {
+TEST_F(DomainTest, PerformRead_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1636,7 +1565,6 @@ TEST_F(KtClassTest, PerformRead_01) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1649,12 +1577,11 @@ TEST_F(KtClassTest, PerformRead_01) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // PerformRead invalid option 
-TEST_F(KtClassTest, PerformRead_02) {
+TEST_F(DomainTest, PerformRead_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1668,7 +1595,6 @@ TEST_F(KtClassTest, PerformRead_02) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1687,12 +1613,11 @@ TEST_F(KtClassTest, PerformRead_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformRead invalid data type and session failure
-TEST_F(KtClassTest, PerformRead_03) {
+TEST_F(DomainTest, PerformRead_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1706,7 +1631,6 @@ TEST_F(KtClassTest, PerformRead_03) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1719,12 +1643,11 @@ TEST_F(KtClassTest, PerformRead_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_AUDIT,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // PerformRead invalid data type 
-TEST_F(KtClassTest, PerformRead_04) {
+TEST_F(DomainTest, PerformRead_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1738,7 +1661,6 @@ TEST_F(KtClassTest, PerformRead_04) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1757,12 +1679,11 @@ TEST_F(KtClassTest, PerformRead_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_AUDIT,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // PerformRead invalid data type 
-TEST_F(KtClassTest, PerformRead_05) {
+TEST_F(DomainTest, PerformRead_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1776,7 +1697,6 @@ TEST_F(KtClassTest, PerformRead_05) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1793,12 +1713,11 @@ TEST_F(KtClassTest, PerformRead_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // PerformRead invalid data type 
-TEST_F(KtClassTest, PerformRead_06) {
+TEST_F(DomainTest, PerformRead_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1812,7 +1731,6 @@ TEST_F(KtClassTest, PerformRead_06) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1832,12 +1750,11 @@ TEST_F(KtClassTest, PerformRead_06) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 // PerformRead invalid data type 
-TEST_F(KtClassTest, PerformRead_07) {
+TEST_F(DomainTest, PerformRead_07) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   uint32_t session_id = 1;
@@ -1851,7 +1768,6 @@ TEST_F(KtClassTest, PerformRead_07) {
   memset(v.description, '\0', 128);
   v.valid[kIdxDomainDescription] = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  ServerSession::clearStubData();
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -1871,12 +1787,11 @@ TEST_F(KtClassTest, PerformRead_07) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
                                       ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadDomainValFromDB with operation type UNC_OP_INVALID
-TEST_F(KtClassTest, ReadDomainValFromDB_01) {
+TEST_F(DomainTest, ReadDomainValFromDB_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
   v.type = 1;
@@ -1888,22 +1803,23 @@ TEST_F(KtClassTest, ReadDomainValFromDB_01) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
   uint32_t oper_type = UNC_OP_INVALID;
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
                                           max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // ReadDomainValFromDB with operation type UNC_OP_READ
-TEST_F(KtClassTest, ReadDomainValFromDB_02) {
+TEST_F(DomainTest, ReadDomainValFromDB_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> domain_id; 
@@ -1911,7 +1827,6 @@ TEST_F(KtClassTest, ReadDomainValFromDB_02) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
   uint32_t oper_type = UNC_OP_READ;
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
@@ -1919,16 +1834,17 @@ TEST_F(KtClassTest, ReadDomainValFromDB_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
                                           max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 // ReadDomainValFromDB with operation type UNC_OP_READ_BULK
-TEST_F(KtClassTest, ReadDomainValFromDB_03) {
+TEST_F(DomainTest, ReadDomainValFromDB_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> domain_id; 
@@ -1936,7 +1852,6 @@ TEST_F(KtClassTest, ReadDomainValFromDB_03) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
   uint32_t oper_type = UNC_OP_READ_BULK;
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
@@ -1944,15 +1859,16 @@ TEST_F(KtClassTest, ReadDomainValFromDB_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
                                           max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadDomainValFromDB_04) {
+TEST_F(DomainTest, ReadDomainValFromDB_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> domain_id; 
@@ -1960,7 +1876,6 @@ TEST_F(KtClassTest, ReadDomainValFromDB_04) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
   uint32_t oper_type = UNC_OP_READ_BULK;
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
@@ -1968,15 +1883,16 @@ TEST_F(KtClassTest, ReadDomainValFromDB_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_QUERY_TIMEOUT);
   int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
                                           max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(KtClassTest, ReadDomainValFromDB_05) {
+TEST_F(DomainTest, ReadDomainValFromDB_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
+  memset(&v, 0, sizeof(v));
   v.type = 1;
   v.valid[kIdxDomainType] = 1;
+
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
   vector<key_ctr_domain> domain_id; 
@@ -1984,7 +1900,6 @@ TEST_F(KtClassTest, ReadDomainValFromDB_05) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  uint32_t alarm_type = UNC_COREDOMAIN_SPLIT;
   uint32_t oper_type = UNC_OP_READ_BULK;
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
@@ -1992,29 +1907,21 @@ TEST_F(KtClassTest, ReadDomainValFromDB_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
                                           max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 // GetChildClassPointer invalid index
-TEST_F(KtClassTest, GetChildClassPointer_01) {
+TEST_F(DomainTest, GetChildClassPointer_01) {
   int KIndex = 1;
   Kt_Ctr_Domain  KtdomianObj;
-  Kt_Base *child[KT_CTR_DOMAIN_CHILD_COUNT];
-  //Kt_Base *base_obj;
-  int ret =  UPPL_RC_SUCCESS;
-  child[KIndex]  = KtdomianObj.GetChildClassPointer((KtDomainChildClass)KIndex);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  Kt_Base *child(KtdomianObj.GetChildClassPointer((KtDomainChildClass)KIndex));
+  ASSERT_TRUE(child == NULL);
 }
 
 // GetChildClassPointer suceess
-TEST_F(KtClassTest, GetChildClassPointer_02) {
+TEST_F(DomainTest, GetChildClassPointer_02) {
   int KIndex = 0;
   Kt_Ctr_Domain  KtdomianObj;
- // Kt_Base *base_obj;
-  Kt_Base *child[KT_CTR_DOMAIN_CHILD_COUNT];
-  int ret =  UPPL_RC_SUCCESS;
-  child[KIndex] = KtdomianObj.GetChildClassPointer((KtDomainChildClass)KIndex);
-  //delete child[KIndex];
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  Kt_Base *child(KtdomianObj.GetChildClassPointer((KtDomainChildClass)KIndex));
+  ASSERT_TRUE(child != NULL);
 }
similarity index 67%
rename from coordinator/test/modules/uppl/utest/KtLink_ut.cc
rename to coordinator/test/modules/uppl/utest/Link_ut.cc
index 3ee6a059b79aa744a55ace3df38ededd4f349835..b327489455e3eda25432cfcc731807fbb0f9ce19 100644 (file)
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
 #include <pfc/ipc_struct.h>
-#include "stub/ODBC/include/odbcm_mgr.hh"
-#include "physical_common_def.hh"
-#include "unc/uppl_common.h"
-#include "unc/keytype.h"
-#include "itc_kt_base.hh"
-#include "itc_kt_root.hh"
-#include "itc_kt_controller.hh"
-#include "itc_kt_ctr_domain.hh"
-#include "itc_kt_switch.hh"
-#include "itc_kt_port.hh"
-#include "itc_kt_link.hh"
-#include "itc_kt_boundary.hh"
-#include "itc_kt_logical_member_port.hh"
-#include "itc_kt_logicalport.hh"
-#include "ipct_util.hh"
-#include "itc_kt_logical_member_port.hh"
-#include "physicallayer.hh"
+#include <odbcm_mgr.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <itc_kt_logical_member_port.hh>
+#include <itc_kt_logicalport.hh>
+#include <ipct_util.hh>
+#include <itc_kt_logical_member_port.hh>
+#include <physicallayer.hh>
 #include "PhysicalLayerStub.hh"
-#include "tclib_module.hh"
-#include "itc_read_request.hh"
+#include <tclib_module.hh>
+#include <itc_read_request.hh>
+#include "ut_util.hh"
 
 using namespace pfc;
 using namespace pfc::core;
 using namespace pfc::core::ipc;
 using namespace std;
+using namespace unc::uppl::test;
 
-ClientSession *cli_sess = NULL;
-ClientSession *cli_sess_notify = NULL;
-pfc_ipcid_t service = UPPL_SVC_CONFIGREQ;
-
-class KtClassTest : public testing::Test {
-  protected:
-
-   virtual void SetUp() {
-    if(cli_sess == NULL) {
-      pfc_ipcconn_t connp = 0;
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);
-      //ASSERT_EQ(0, err);
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-      //ASSERT_EQ(0, err);
-      connp = 0;
-      err = pfc_ipcclnt_altopen("phynwd", &connp);
-      ASSERT_EQ(0, err); cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-     // ASSERT_EQ(0, err);
-      connp = 0;
-      err = pfc_ipcclnt_altopen("phynwd", &connp);
-      //ASSERT_EQ(0, err);
-     cli_sess_notify = new ClientSession(connp, "sample2", 0, err);
-
-     PhysicalLayerStub::loadphysicallayer();
-   }
-  }
-  virtual void TearDown() {
-    if (cli_sess != NULL) {
-      cli_sess->cancel();
-      delete cli_sess;
-      cli_sess = NULL;
-    }
-    if (cli_sess_notify != NULL) {
-      cli_sess_notify->cancel();
-      delete cli_sess_notify;
-      cli_sess_notify = NULL;
-    }
-  }
-
-
+class LinkTest
+  : public UpplTestEnv
+{
 };
+
 // Can be changed based on testing need
-char pkName1_ctr[] = "controller1";
-char pkName1_switchid1[] = "{0x10,0xbc}";
-char pkName1_portid1[] = "controller1 port";
-char pkName1_switchid2[] = "{0x11,0xab}";
-char pkName1_portid2[] = "controller1 port 4";
-char pkName2_ctr[] = "controller2";
-char pkName2_switchid1[] = "{0x12,0xdb}";
-char pkName2_portid1[] = "controller2 port 3";
-char pkName2_switchid2[] = "{0x21,0xcb}";
-char pkName2_portid2[] = "controller2 port 5";
-char pkName3_ctr[] = "controller3";
-char pkName3_switchid1[] = "{0x23,0xab}";
-char pkName3_portid1[] = "controller3 port";
-char pkName3_switchid2[] = "{0x11,0xcb}";
-char pkName3_portid2[] = "controller3 port 5";
-char pkName4_ctr[] = "";
-char pkName4_switchid1[] = "";
-char pkName4_portid1[] = "";
-char pkName4_switchid2[] = "";
-char pkName4_portid2[] = "";
-char pkName5_ctr[] = "NotExisting";
-char pkName5_switchid1[] = "NotExisting";
-char pkName5_portid1[] = "NotExisting";
-char pkName5_switchid2[] = "NotExisting";
-char pkName5_portid2[] = "NotExisting";
-
-void getKeyForKtLink1(key_link_t& k,std::vector<string>& sw_vect_key_value) {
+static char pkName1_ctr[] = "controller1";
+static char pkName1_switchid1[] = "{0x10,0xbc}";
+static char pkName1_portid1[] = "controller1 port";
+static char pkName1_switchid2[] = "{0x11,0xab}";
+static char pkName1_portid2[] = "controller1 port 4";
+static char pkName4_ctr[] = "";
+static char pkName4_switchid1[] = "";
+static char pkName4_portid1[] = "";
+static char pkName4_switchid2[] = "";
+static char pkName4_portid2[] = "";
+
+static void getKeyForKtLink1(key_link_t& k,
+                             std::vector<string>& sw_vect_key_value) {
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName1_ctr, strlen(pkName1_ctr));
   memset(k.switch_id1, '\0', 256);
@@ -150,7 +102,7 @@ void getKeyForKtLink1(key_link_t& k,std::vector<string>& sw_vect_key_value) {
 
 }
 
-void getKeyForKtLink1(key_link_t& k) {
+static void getKeyForKtLink1(key_link_t& k) {
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName1_ctr, strlen(pkName1_ctr));
   memset(k.switch_id1, '\0', 256);
@@ -163,69 +115,19 @@ void getKeyForKtLink1(key_link_t& k) {
   memcpy(k.port_id2, pkName1_portid2, strlen(pkName1_portid2));
 }
 
+static void getValForKtLink1(val_link_st_t& v) {
+  // uint8_t description[128];
+  memset(v.link.description, '\0', 128);
+  memcpy(v.link.description, "linkdescription", strlen("linkdescription"));
 
-
-void getKeyForKtLink2(key_link_t& k) {
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName2_ctr, strlen(pkName2_ctr));
-  memset(k.switch_id1, '\0', 256);
-  memcpy(k.switch_id1, pkName2_switchid1, strlen(pkName2_switchid1));
-  memset(k.port_id1, '\0', 32);
-  memcpy(k.port_id1, pkName2_portid1, strlen(pkName2_portid1));
-  memset(k.switch_id2, '\0', 256);
-  memcpy(k.switch_id2, pkName2_switchid2, strlen(pkName2_switchid2));
-  memset(k.port_id2, '\0', 32);
-  memcpy(k.port_id2, pkName2_portid2, strlen(pkName2_portid2));
-}
-
-void getKeyForKtLink3(key_link_t& k) {
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName3_ctr, strlen(pkName3_ctr));
-  memset(k.switch_id1, '\0', 256);
-  memcpy(k.switch_id1, pkName3_switchid1, strlen(pkName3_switchid1));
-  memset(k.port_id1, '\0', 32);
-  memcpy(k.port_id1, pkName3_portid1, strlen(pkName3_portid1));
-  memset(k.switch_id2, '\0', 256);
-  memcpy(k.switch_id2, pkName3_switchid2, strlen(pkName3_switchid2));
-  memset(k.port_id2, '\0', 32);
-  memcpy(k.port_id2, pkName3_portid2, strlen(pkName3_portid2));
-}
-
-void getKeyForKtLink4(key_link_t& k) {
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName4_ctr, strlen(pkName4_ctr));
-  memset(k.switch_id1, '\0', 256);
-  memcpy(k.switch_id1, pkName4_switchid1, strlen(pkName4_switchid1));
-  memset(k.port_id1, '\0', 32);
-  memcpy(k.port_id1, pkName4_portid1, strlen(pkName4_portid1));
-  memset(k.switch_id2, '\0', 256);
-  memcpy(k.switch_id2, pkName4_switchid2, strlen(pkName4_switchid2));
-  memset(k.port_id2, '\0', 32);
-  memcpy(k.port_id2, pkName4_portid2, strlen(pkName4_portid2));
-}
-
-void getKeyForKtLink5(key_link_t& k) {
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName5_ctr, strlen(pkName5_ctr));
-  memset(k.switch_id1, '\0', 256);
-  memcpy(k.switch_id1, pkName5_switchid1, strlen(pkName5_switchid1));
-  memset(k.port_id1, '\0', 32);
-  memcpy(k.port_id1, pkName5_portid1, strlen(pkName5_portid1));
-  memset(k.switch_id2, '\0', 256);
-  memcpy(k.switch_id2, pkName5_switchid2, strlen(pkName5_switchid2));
-  memset(k.port_id2, '\0', 32);
-  memcpy(k.port_id2, pkName5_portid2, strlen(pkName5_portid2));
-}
-void getValForKtLink1(val_link_st_t& v) {
-    memset(v.link.description, '\0', 128);
-    memcpy(v.link.description, "linkdescription", strlen("linkdescription"));
-                      // uint8_t                 description[128];
   // uint8_t oper_status
   v.oper_status = 0;
-  memset(v.valid, 1, 2);  // uint8_t                 valid[2];
+
+  // uint8_t valid[2];
+  memset(v.valid, 1, 2);
 }
 
-void getKeyForLinkNoKeyNotify(key_link_t& k) {
+static void getKeyForLinkNoKeyNotify(key_link_t& k) {
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName4_ctr, strlen(pkName4_ctr));
   memset(k.switch_id1, '\0', 256);
@@ -238,72 +140,9 @@ void getKeyForLinkNoKeyNotify(key_link_t& k) {
   memcpy(k.port_id2, pkName4_portid2, strlen(pkName4_portid2));
 }
 
-void getKeyForLinkNotify(key_link_t& k) {
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName5_ctr, strlen(pkName5_ctr));
-  memset(k.switch_id1, '\0', 256);
-  memcpy(k.switch_id1, pkName5_switchid1, strlen(pkName5_switchid1));
-  memset(k.port_id1, '\0', 32);
-  memcpy(k.port_id1, pkName5_portid1, strlen(pkName5_portid1));
-  memset(k.switch_id2, '\0', 256);
-  memcpy(k.switch_id2, pkName5_switchid2, strlen(pkName5_switchid2));
-  memset(k.port_id2, '\0', 32);
-  memcpy(k.port_id2, pkName5_portid2, strlen(pkName5_portid2));
-}
-
-void getNewValForLinkNotify(val_link_st_t& v) {
-  uint32_t VALID = 1;
-  memcpy(v.link.description, "link description", 13);
-                                 // uint8_t description[128];
-  v.link.description[13] = '\0';
-  v.oper_status = 1;
-  memset(v.valid, VALID, 7);  // uint8_t valid[7];
-  memset(v.link.valid, VALID, 5);
-}
-
-void getOldValForLinkNotify(val_link_st_t& v) {
-  uint32_t VALID = 1;
-  memcpy(v.link.description, "link description", 13);
-                               // uint8_t description[128];
-  v.link.description[13] = '\0';
-  v.oper_status = 1;
-  memset(v.valid, VALID, 7);  // uint8_t valid[7];
-  memset(v.link.valid, VALID, 5);
-}
-
-void getInvalidValForKtLink1(val_link_st_t& v) {
-  memset(v.link.description, '\0', 128);
-  memcpy(v.link.description, "link description", strlen("link description"));
-                             // uint8_t description[128];
-  v.oper_status = 1;
-  memset(v.valid, '1', 12);  // uint8_t valid[12];
-}
-
-void getNewValForLink(val_link_st& v) {
-  memcpy(v.link.description, "link descr", 10);
-  v.link.description[10] = '\0';
-  v.oper_status = 1;
-  memset(v.link.valid, VALID, 8);
-}
-
-void getOldValForLink(val_link_st_t& v) {
-  memcpy(v.link.description, "link descr", 10);
-  v.link.description[10] = '\0';
-  v.oper_status = 2;
-  memset(v.link.valid, VALID, 8);
-}
-
-int compare(val_link_st_t v1, val_link_st_t v2) {
-  if (strcmp(reinterpret_cast<char *>(v1.link.description),
-            reinterpret_cast<char *>(v2.link.description)))
-  // return 1;
-  if (v1.valid!= v2.valid)
-    return 1;
-  return 0;
-}
-
-void getReqHeader(physical_request_header& rh, unc_keytype_operation_t opern,
-                  unc_keytype_datatype_t dtype) {
+static void getReqHeader(physical_request_header& rh,
+                         unc_keytype_operation_t opern,
+                         unc_keytype_datatype_t dtype) {
   rh.client_sess_id = 1;
   rh.config_id = 1;
   rh.operation = opern;
@@ -314,38 +153,12 @@ void getReqHeader(physical_request_header& rh, unc_keytype_operation_t opern,
   rh.key_type = UNC_KT_LINK;
 }
 
-int sessOutReqHeader(ClientSession *cli_sess, physical_request_header rh) {
-  int err = cli_sess->addOutput(rh.client_sess_id);
-  err |= cli_sess->addOutput(rh.config_id);
-  err |= cli_sess->addOutput(rh.operation);
-  err |= cli_sess->addOutput(rh.max_rep_count);
-  err |= cli_sess->addOutput(rh.option1);
-  err |= cli_sess->addOutput(rh.option2);
-  err |= cli_sess->addOutput(rh.data_type);
-  err |= cli_sess->addOutput(rh.key_type);
-  return err;
-}
-
-
-int sessGetRespHeader(ClientSession *cli_sess, physical_response_header& rsh) {
-  int err = cli_sess->getResponse(0, rsh.client_sess_id);
-  err |= cli_sess->getResponse(1, rsh.config_id);
-  err |= cli_sess->getResponse(2, rsh.operation);
-  err |= cli_sess->getResponse(3, rsh.max_rep_count);
-  err |= cli_sess->getResponse(4, rsh.option1);
-  err |= cli_sess->getResponse(5, rsh.option2);
-  err |= cli_sess->getResponse(6, rsh.data_type);
-  err |= cli_sess->getResponse(7, rsh.result_code);
-  return err;
-}
-
-TEST_F(KtClassTest, PerformSyntxCheck_01) {
+TEST_F(LinkTest, PerformSyntxCheck_01) {
 
   key_link_t k;
   val_link_st v;
+  memset(&v, 0, sizeof(v));
   Kt_Link ktlinkobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.link.valid, '\0', sizeof(v.link.valid));
   physical_request_header rh;
   getKeyForKtLink1(k);
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
@@ -353,29 +166,30 @@ TEST_F(KtClassTest, PerformSyntxCheck_01) {
   uint32_t operation = UNC_OP_CREATE;
    
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 
 }
+
 //Key Empty
-TEST_F(KtClassTest, PerformSyntxCheck_02) {
+TEST_F(LinkTest, PerformSyntxCheck_02) {
 
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.link.valid, '\0', sizeof(v.link.valid));
+  memset(&v, 0, sizeof(v));
+  getKeyForKtLink1(k);
+
   physical_request_header rh;
-  //getKeyForKtLink1(k);
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
    
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //indfividual Attributes havin mepty values
-TEST_F(KtClassTest, PerformSyntxCheck_03) {
+TEST_F(LinkTest, PerformSyntxCheck_03) {
 
   key_link_t k;
   val_link_st v;
@@ -389,10 +203,10 @@ TEST_F(KtClassTest, PerformSyntxCheck_03) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 //Setting controller name as empty
-TEST_F(KtClassTest, PerformSyntxCheck_04) {
+TEST_F(LinkTest, PerformSyntxCheck_04) {
 
   key_link_t k;
   val_link_st v;
@@ -408,11 +222,11 @@ TEST_F(KtClassTest, PerformSyntxCheck_04) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Setting switchID1 name as empty
-TEST_F(KtClassTest, PerformSyntxCheck_05) {
+TEST_F(LinkTest, PerformSyntxCheck_05) {
 
   key_link_t k;
   val_link_st v;
@@ -430,11 +244,11 @@ TEST_F(KtClassTest, PerformSyntxCheck_05) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Setting switchID2 name as empty
-TEST_F(KtClassTest, PerformSyntxCheck_06) {
+TEST_F(LinkTest, PerformSyntxCheck_06) {
 
   key_link_t k;
   val_link_st v;
@@ -452,11 +266,11 @@ TEST_F(KtClassTest, PerformSyntxCheck_06) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Setting portID1 name as empty
-TEST_F(KtClassTest, PerformSyntxCheck_07) {
+TEST_F(LinkTest, PerformSyntxCheck_07) {
 
   key_link_t k;
   val_link_st v;
@@ -474,11 +288,11 @@ TEST_F(KtClassTest, PerformSyntxCheck_07) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Setting portID2 name as empty
-TEST_F(KtClassTest, PerformSyntxCheck_08) {
+TEST_F(LinkTest, PerformSyntxCheck_08) {
 
   key_link_t k;
   val_link_st v;
@@ -496,10 +310,10 @@ TEST_F(KtClassTest, PerformSyntxCheck_08) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 //Setting description as empty
-TEST_F(KtClassTest, PerformSyntxCheck_09) {
+TEST_F(LinkTest, PerformSyntxCheck_09) {
 
   key_link_t k;
   val_link_st v;
@@ -521,12 +335,12 @@ TEST_F(KtClassTest, PerformSyntxCheck_09) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  //EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  //EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Setting description length more than 128
-TEST_F(KtClassTest, PerformSyntxCheck_10) {
+TEST_F(LinkTest, PerformSyntxCheck_10) {
 
   key_link_t k;
   val_link_st v;
@@ -551,11 +365,11 @@ TEST_F(KtClassTest, PerformSyntxCheck_10) {
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
   
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Setting oper status as invalid
-TEST_F(KtClassTest, PerformSyntxCheck_11) {
+TEST_F(LinkTest, PerformSyntxCheck_11) {
 
   key_link_t k;
   val_link_st v;
@@ -579,13 +393,12 @@ TEST_F(KtClassTest, PerformSyntxCheck_11) {
 
   int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
   
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //key as Empty
-TEST_F(KtClassTest, Link_IsKeyExists_01) {
+TEST_F(LinkTest, Link_IsKeyExists_01) {
   key_link_t k;
-  val_link_st v;
   Kt_Link ktlinkobj;
 
   getKeyForKtLink1(k);
@@ -594,13 +407,12 @@ TEST_F(KtClassTest, Link_IsKeyExists_01) {
   vector<string> sw_vect_key_value;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
-TEST_F(KtClassTest, Link_IsKeyExists_FailureIsrowexist02) {
+
+TEST_F(LinkTest, Link_IsKeyExists_FailureIsrowexist02) {
 
   key_link_t k;
-  val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
 
@@ -611,13 +423,11 @@ TEST_F(KtClassTest, Link_IsKeyExists_FailureIsrowexist02) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, Link_IsKeyExists_SuccessIsrowexist03) {
+TEST_F(LinkTest, Link_IsKeyExists_SuccessIsrowexist03) {
   key_link_t k;
-  val_link_st v;
   Kt_Link ktlinkobj;
 
   physical_request_header rh;
@@ -629,13 +439,11 @@ TEST_F(KtClassTest, Link_IsKeyExists_SuccessIsrowexist03) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, Link_IsKeyExists_FailConnectionErr04) {
+TEST_F(LinkTest, Link_IsKeyExists_FailConnectionErr04) {
   key_link_t k;
-  val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
 
@@ -649,11 +457,10 @@ TEST_F(KtClassTest, Link_IsKeyExists_FailConnectionErr04) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceExist_create05) {
+TEST_F(LinkTest, PerformSemanticValidation_InstanceExist_create05) {
   
   key_link_t k;
   val_link_st v;
@@ -669,11 +476,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_InstanceExist_create05) {
   uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_INSTANCE_EXISTS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_create06) {
+TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_create06) {
 
   key_link_t k;
   val_link_st v;
@@ -689,12 +495,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_create06) {
   uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_update07) {
+TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_update07) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -707,11 +511,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_update07) {
   uint32_t operation = UNC_OP_UPDATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_update08) {
+TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_update08) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -724,11 +527,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_update08) {
   uint32_t operation = UNC_OP_UPDATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_delete09) {
+TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_delete09) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -741,11 +543,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_delete09) {
   uint32_t operation = UNC_OP_DELETE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_delete10) {
+TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_delete10) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -758,11 +559,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_delete10) {
   uint32_t operation = UNC_OP_DELETE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_read11) {
+TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_read11) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -775,11 +575,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_read11) {
   uint32_t operation = UNC_OP_READ;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_Read12) {
+TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_Read12) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -792,11 +591,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_ConnectionErr_Read12) {
   uint32_t operation = UNC_OP_READ;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_create13) {
+TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_create13) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -810,11 +608,10 @@ TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_create13) {
   uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
-TEST_F(KtClassTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_14) {
+TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_14) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -822,10 +619,10 @@ TEST_F(KtClassTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_14) {
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(KtClassTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_15) {
+TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_15) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -833,10 +630,10 @@ TEST_F(KtClassTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_15) {
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(KtClassTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_16) {
+TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_16) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -844,10 +641,10 @@ TEST_F(KtClassTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_16) {
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(KtClassTest, LinkDeleteKeyInstance_Support_17) { 
+TEST_F(LinkTest, LinkDeleteKeyInstance_Support_17) { 
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -855,10 +652,10 @@ TEST_F(KtClassTest, LinkDeleteKeyInstance_Support_17) {
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_DELETE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-TEST_F(KtClassTest, DeleteKeyInstance_Support_18) { 
+TEST_F(LinkTest, DeleteKeyInstance_Support_18) { 
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -867,10 +664,10 @@ TEST_F(KtClassTest, DeleteKeyInstance_Support_18) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
-TEST_F(KtClassTest, DeleteKeyInstance_Support_19) {
+
+TEST_F(LinkTest, DeleteKeyInstance_Support_19) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -879,10 +676,10 @@ TEST_F(KtClassTest, DeleteKeyInstance_Support_19) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
-TEST_F(KtClassTest, LinkDeleteKeyInstance_Support_20) { 
+
+TEST_F(LinkTest, LinkDeleteKeyInstance_Support_20) { 
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
@@ -891,11 +688,10 @@ TEST_F(KtClassTest, LinkDeleteKeyInstance_Support_20) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkPerformRead_incorrectoption1_21) {
+TEST_F(LinkTest, LinkPerformRead_incorrectoption1_21) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -917,10 +713,10 @@ TEST_F(KtClassTest, LinkPerformRead_incorrectoption1_21) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
 
   int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, LinkPerformRead_incorrectDT_22) {
+TEST_F(LinkTest, LinkPerformRead_incorrectDT_22) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -941,9 +737,9 @@ TEST_F(KtClassTest, LinkPerformRead_incorrectDT_22) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
 int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
-TEST_F(KtClassTest, LinkPerformRead_incorrectoption2_23) {
+TEST_F(LinkTest, LinkPerformRead_incorrectoption2_23) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -964,10 +760,10 @@ TEST_F(KtClassTest, LinkPerformRead_incorrectoption2_23) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
 int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, LinkSetOperStatus_24) {
+TEST_F(LinkTest, LinkSetOperStatus_24) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -980,10 +776,10 @@ TEST_F(KtClassTest, LinkSetOperStatus_24) {
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
-TEST_F(KtClassTest, LinkSetOperStatus_25) {
+
+TEST_F(LinkTest, LinkSetOperStatus_25) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -995,11 +791,10 @@ TEST_F(KtClassTest, LinkSetOperStatus_25) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, LinkSetOperStatus_26) {
+TEST_F(LinkTest, LinkSetOperStatus_26) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1012,11 +807,10 @@ TEST_F(KtClassTest, LinkSetOperStatus_26) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkSetOperStatus_27) {
+TEST_F(LinkTest, LinkSetOperStatus_27) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1030,11 +824,10 @@ TEST_F(KtClassTest, LinkSetOperStatus_27) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkSetOperStatus_28) {
+TEST_F(LinkTest, LinkSetOperStatus_28) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1048,18 +841,16 @@ TEST_F(KtClassTest, LinkSetOperStatus_28) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)2);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkReadBulk_Opnt_allow_29) {
+TEST_F(LinkTest, LinkReadBulk_Opnt_allow_29) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=1;
   int child_index=0;
   pfc_bool_t parent_call=true;
@@ -1067,17 +858,16 @@ TEST_F(KtClassTest, LinkReadBulk_Opnt_allow_29) {
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(KtClassTest, LinkReadBulk_Success_30) {
+TEST_F(LinkTest, LinkReadBulk_Success_30) {
  key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=0;
   int child_index=-1;
   pfc_bool_t parent_call=true;
@@ -1085,17 +875,16 @@ TEST_F(KtClassTest, LinkReadBulk_Success_30) {
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkReadBulk_MaxCntSuccess_31) {
+TEST_F(LinkTest, LinkReadBulk_MaxCntSuccess_31) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=0;
   int child_index=-1;
   pfc_bool_t parent_call=true;
@@ -1103,18 +892,17 @@ TEST_F(KtClassTest, LinkReadBulk_MaxCntSuccess_31) {
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 
-TEST_F(KtClassTest, LinkReadBulk_DBFail_32) {
+TEST_F(LinkTest, LinkReadBulk_DBFail_32) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=0;
   int child_index=-1;
   pfc_bool_t parent_call=true;
@@ -1123,17 +911,16 @@ TEST_F(KtClassTest, LinkReadBulk_DBFail_32) {
   ReadRequest *read_req = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkReadBulk_DBSuccess) {
+TEST_F(LinkTest, LinkReadBulk_DBSuccess) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=0;
   int child_index=-1;
   pfc_bool_t parent_call=true;
@@ -1142,45 +929,34 @@ TEST_F(KtClassTest, LinkReadBulk_DBSuccess) {
   ReadRequest *read_req = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  //EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkReadBulkInternal_Success_33) {
+TEST_F(LinkTest, LinkReadBulkInternal_Success_33) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=0;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
   vector<val_link_st_t> vec_val_link;
   vector<key_link_t> vec_key_link_t;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vec_val_link, vec_key_link_t);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkReadBulkInternal_Success_34) {
+TEST_F(LinkTest, LinkReadBulkInternal_Success_34) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=0;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
 
   getKeyForKtLink1(k);
  
@@ -1188,10 +964,10 @@ TEST_F(KtClassTest, LinkReadBulkInternal_Success_34) {
   vector<key_link_t> vec_key_link_t;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vec_val_link, vec_key_link_t);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
+TEST_F(LinkTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1203,11 +979,11 @@ TEST_F(KtClassTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
   OdbcmConnectionHandler *db_conn =NULL;
 //  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 
-TEST_F(KtClassTest, GetLinkValidFlag_ConnError) {
+TEST_F(LinkTest, GetLinkValidFlag_ConnError) {
   key_link_t k;
   val_link_st_t v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1219,11 +995,10 @@ TEST_F(KtClassTest, GetLinkValidFlag_ConnError) {
   OdbcmConnectionHandler *db_conn = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, GetLinkValidFlag_DBGetErr) {
+TEST_F(LinkTest, GetLinkValidFlag_DBGetErr) {
   key_link_t k;
   val_link_st_t v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1235,10 +1010,10 @@ TEST_F(KtClassTest, GetLinkValidFlag_DBGetErr) {
   OdbcmConnectionHandler *db_conn = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_DATA_ERROR);
   int ret = ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
-TEST_F(KtClassTest, GetLinkValidFlag_Success) {
+
+TEST_F(LinkTest, GetLinkValidFlag_Success) {
   key_link_t k;
   val_link_st_t v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1250,10 +1025,10 @@ TEST_F(KtClassTest, GetLinkValidFlag_Success) {
   OdbcmConnectionHandler *db_conn = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-TEST_F(KtClassTest, LinkGetOperStatus_DBErr) {
+
+TEST_F(LinkTest, LinkGetOperStatus_DBErr) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1261,14 +1036,13 @@ TEST_F(KtClassTest, LinkGetOperStatus_DBErr) {
   Kt_Link ktlinkobj;
   uint8_t operstat = 0;
 
-  UpplLinkOperStatus new_oper_status = UPPL_LINK_OPER_UNKNOWN;
   OdbcmConnectionHandler *db_conn = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret = ktlinkobj.GetOperStatus(db_conn,(uint32_t)UNC_DT_STATE,&k,operstat);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
-TEST_F(KtClassTest, LinkGetOperStatus_success) {
+
+TEST_F(LinkTest, LinkGetOperStatus_success) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1276,71 +1050,73 @@ TEST_F(KtClassTest, LinkGetOperStatus_success) {
   Kt_Link ktlinkobj;
   uint8_t operstat = 0;
 
-  UpplLinkOperStatus new_oper_status = UPPL_LINK_OPER_UNKNOWN;
   OdbcmConnectionHandler *db_conn = NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = ktlinkobj.GetOperStatus(db_conn,(uint32_t)UNC_DT_STATE,&k,operstat);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-TEST_F(KtClassTest, LinkReadInternal_Create) {
-  key_link_t *k = new key_link_t;
-  //getKeyForKtLink1(k);
+
+TEST_F(LinkTest, LinkReadInternal_Create) {
+  key_link_t k;
   vector<void *> vecVal_link;
   vector<void *> veckey_link;
-  veckey_link.push_back(k);
-  Kt_Link ktlinkobj;
-
+  memset(&k, 0, sizeof(k));
+  veckey_link.push_back(&k);
 
+  Kt_Link ktlinkobj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_CREATE);
   //int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, LinkReadInternal_Read) {
-  key_link_t *k = new key_link_t;
+TEST_F(LinkTest, LinkReadInternal_Read) {
+  key_link_t k;
   vector<void *> vecVal_link;
   vector<void *> veckey_link;
-  veckey_link.push_back(k);
-  Kt_Link ktlinkobj;
-
+  memset(&k, 0, sizeof(k));
+  veckey_link.push_back(&k);
 
+  Kt_Link ktlinkobj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(KtClassTest, LinkReadInternal_Val_empty) {
-  key_link_t *k = new key_link_t;
+TEST_F(LinkTest, LinkReadInternal_Val_empty) {
+  key_link_t k;
   vector<void *> vecVal_link;
   vector<void *> veckey_link;
-  veckey_link.push_back(k);
+  memset(&k, 0, sizeof(k));
+  veckey_link.push_back(&k);
+
   Kt_Link ktlinkobj;
-  
   vecVal_link.clear();
 
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
-TEST_F(KtClassTest, LinkReadInternal_Val_nonempty) {
-  key_link_t *k = new key_link_t;
+
+TEST_F(LinkTest, LinkReadInternal_Val_nonempty) {
+  key_link_t k;
   vector<void *> vecVal_link;
   vector<void *> veckey_link;
-  veckey_link.push_back(k);
+  memset(&k, 0, sizeof(k));
+  veckey_link.push_back(&k);
+
   Kt_Link ktlinkobj;
-  
   val_link_st_t v;
-  veckey_link[0] = &v;
+  memset(&v, 0, sizeof(v));
+  vecVal_link.push_back(&v);
   getValForKtLink1(v);
-  vecVal_link.clear();
 
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,veckey_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
-TEST_F(KtClassTest, PerformSemanticValidation_Import) {
+
+TEST_F(LinkTest, PerformSemanticValidation_Import) {
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -1354,18 +1130,15 @@ TEST_F(KtClassTest, PerformSemanticValidation_Import) {
   uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_IMPORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
-TEST_F(KtClassTest, ReadLinkValFromDB_Success) {
+
+TEST_F(LinkTest, ReadLinkValFromDB_Success) {
   key_link_t k;
-  val_link_st v;
 
-  void *key_struct;
+  void *key_struct(NULL);
   void *void_val_struct = NULL;
  
-  pfc_bool_t bflag =true;
-
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
   getKeyForKtLink1(k,sw_vect_key_value);
@@ -1391,21 +1164,16 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(read_status,UPPL_RC_SUCCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, read_status);
 }
-TEST_F(KtClassTest, ReadLinkValFromDB_Success_Read) {
-  key_link_t k;
-  val_link_st v;
 
-  void *key_struct;
+TEST_F(LinkTest, ReadLinkValFromDB_Success_Read) {
+  key_link_t k;
   void *void_val_struct = NULL;
  
-  pfc_bool_t bflag =true;
-
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_id;
 
@@ -1418,9 +1186,8 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_Read) {
   uint32_t option = 0;
 
   OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
+  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, &k,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1429,18 +1196,13 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_Read) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(read_status,UPPL_RC_ERR_DB_GET);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, read_status);
 }
-TEST_F(KtClassTest, ReadLinkValFromDB_Success_option1_sibling) {
-  key_link_t k;
-  val_link_st v;
 
-  void *key_struct;
+TEST_F(LinkTest, ReadLinkValFromDB_Success_option1_sibling) {
+  key_link_t k;
   void *void_val_struct = NULL;
  
-  pfc_bool_t bflag =true;
-
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
   getKeyForKtLink1(k,sw_vect_key_value);
@@ -1456,9 +1218,8 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_option1_sibling) {
   uint32_t option = 0;
 
   OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
+  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, &k,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1467,11 +1228,10 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_option1_sibling) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(read_status,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, read_status);
 }
 
-TEST_F(KtClassTest, HandleOperStatus_Success) {
+TEST_F(LinkTest, HandleOperStatus_Success) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1483,11 +1243,10 @@ TEST_F(KtClassTest, HandleOperStatus_Success) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulk_ADDTOBUFFER_maxrepCT0) {
+TEST_F(LinkTest, ReadBulk_ADDTOBUFFER_maxrepCT0) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1496,20 +1255,20 @@ TEST_F(KtClassTest, ReadBulk_ADDTOBUFFER_maxrepCT0) {
 
   getKeyForKtLink1(k);
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 0;
   int child_index = 1;
   pfc_bool_t parent_call=true;
   pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = new ReadRequest;
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
+TEST_F(LinkTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1518,21 +1277,20 @@ TEST_F(KtClassTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
 
   getKeyForKtLink1(k);
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
   pfc_bool_t parent_call=true;
   pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = new ReadRequest;
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-
-TEST_F(KtClassTest, ReadBulk_readreq) {
+TEST_F(LinkTest, ReadBulk_readreq) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1541,20 +1299,20 @@ TEST_F(KtClassTest, ReadBulk_readreq) {
 
   getKeyForKtLink1(k);
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
   pfc_bool_t parent_call=false;
   pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = new ReadRequest;
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulk_DBErr) {
+TEST_F(LinkTest, ReadBulk_DBErr) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1563,21 +1321,20 @@ TEST_F(KtClassTest, ReadBulk_DBErr) {
 
   getKeyForKtLink1(k);
 
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
   pfc_bool_t parent_call=false;
   pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = new ReadRequest;
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-
-TEST_F(KtClassTest, ReadBulkInternal_RecordNotFound) {
+TEST_F(LinkTest, ReadBulkInternal_RecordNotFound) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1585,23 +1342,18 @@ TEST_F(KtClassTest, ReadBulkInternal_RecordNotFound) {
   Kt_Link ktlinkobj;
 
   getKeyForKtLink1(k);
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct=1;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
 
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_key;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_link_st, vect_link_key);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
-TEST_F(KtClassTest, LinkPerformRead_DBErr) {
+
+TEST_F(LinkTest, LinkPerformRead_DBErr) {
   key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
@@ -1625,18 +1377,15 @@ TEST_F(KtClassTest, LinkPerformRead_DBErr) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
 
   int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, ReadLinkValFromDB_Success_Update) {
+TEST_F(LinkTest, ReadLinkValFromDB_Success_Update) {
   key_link_t k;
-  val_link_st v;
 
-  void *key_struct;
+  void *key_struct(NULL);
   void *void_val_struct = NULL;
  
-  pfc_bool_t bflag =true;
-
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
   getKeyForKtLink1(k,sw_vect_key_value);
@@ -1652,7 +1401,6 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_Update) {
   uint32_t option = 0;
 
   OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
   UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
                                                  void_val_struct,
@@ -1663,13 +1411,12 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_Update) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(read_status,UPPL_RC_SUCCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, read_status);
 }
 
 #if 0
 
-TEST_F(KtClassTest, ReadLinkValFromDB_Success_option1_sibling) {
+TEST_F(LinkTest, ReadLinkValFromDB_Success_option1_sibling) {
   key_link_t k;
   val_link_st v;
 
@@ -1705,8 +1452,7 @@ TEST_F(KtClassTest, ReadLinkValFromDB_Success_option1_sibling) {
                                                  vect_link_id, option,
                                                  option2);
 
-  EXPECT_EQ(read_status,UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, read_status);
 }
 
 #endif
similarity index 72%
rename from coordinator/test/modules/uppl/utest/KtLogicalMemberPort_ut.cc
rename to coordinator/test/modules/uppl/utest/LogicalMemberPort_ut.cc
index 0ef3f03faf0fc6db9321dfb58fa3948c7c07da44..e2c2532128bc7c14d9b14576113e7438b5d3f96f 100644 (file)
- /*\r
-  * Copyright (c) 2012-2013 NEC Corporation\r
-  *           * All rights reserved.\r
-  *\r
-  * This program and the accompanying materials are made available under the\r
-  * terms of the Eclipse Public License v1.0 which accompanies this\r
-  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-  */\r
-\r
-\r
-\r
-\r
-#include <limits.h>\r
-#include <gtest/gtest.h>\r
-\r
-#include <pfcxx/ipc_client.hh>\r
-#include <pfc/ipc_struct.h>\r
-\r
-#include <stdio.h>\r
-#include <sys/stat.h>\r
-#include <sys/mman.h>\r
-#include <arpa/inet.h>\r
-\r
-#include <time.h>\r
-#include <pfc/base.h>\r
-#include <pfc/ipc.h>\r
-#include <pfc/config.h>\r
-\r
-#include <pfc/conf.h>\r
-#include <pfc/log.h>\r
-#include <pfc/util.h>\r
-#include <pfc/event.h>\r
-#include <pfc/path.h>\r
-#include <pfc/hash.h>\r
-#include <pfc/thread.h>\r
-#include <pfc/refptr.h>\r
-#include <pfc/listmodel.h>\r
-#include <pfc/iostream.h>\r
-#include <pfc/ipc_client.h>\r
-#include <pfc/ipc_pfcd.h>\r
-#include <pfc/ipc_struct.h>\r
-#include "stub/ODBC/include/odbcm_mgr.hh"\r
-#include "physical_common_def.hh"\r
-#include "unc/uppl_common.h"\r
-#include "unc/keytype.h"\r
-#include "itc_kt_base.hh"\r
-#include "itc_kt_root.hh"\r
-#include "itc_kt_controller.hh"\r
-#include "itc_kt_ctr_domain.hh"\r
-#include "itc_kt_switch.hh"\r
-#include "itc_kt_port.hh"\r
-#include "itc_kt_link.hh"\r
-#include "itc_kt_boundary.hh"\r
-#include "itc_kt_logicalport.hh"\r
-#include "ipct_util.hh"\r
-#include "PhysicalLayerStub.hh"\r
-#include "itc_read_request.hh"\r
-#include "itc_kt_logical_member_port.hh"\r
-\r
-\r
-using namespace pfc;\r
-using namespace pfc::core;\r
-using namespace pfc::core::ipc;\r
-using namespace std;\r
-pfc_ipcid_t service = UPPL_SVC_CONFIGREQ;\r
-ClientSession *cli_sess = NULL;\r
-class KtClassTest : public testing::Test {\r
-  protected:\r
-  virtual void SetUp() {\r
-    if (cli_sess == NULL) {\r
-      pfc_ipcconn_t connp = 0;\r
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);\r
-      ASSERT_EQ(0, err);\r
-      //ASSERT_TRUE(connp != 0);\r
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);\r
-      //ASSERT_EQ(0, err);\r
-    } else {\r
-      cli_sess->reset(UPPL_IPC_SVC_NAME, service);\r
-    }\r
-  }\r
-  virtual void TearDown() {\r
-  }\r
-};\r
-\r
-\r
-void getKeyForKtLogicalMemberPort1(key_logical_member_port_t& k) {\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "{0x10,0xbc}", strlen("{0x10,0xbc}"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "controller1 pord id:1",\r
-         strlen("controller1 pord id:1"));\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memcpy(k.logical_port_key.port_id, "{0x00,0xa}", strlen("{0x00,0xa}"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "controller1 domain_name",\r
-         strlen("controller1 domain_name"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller1" ,\r
-         strlen("controller1"));\r
-}\r
-\r
-void getKeyForKtLogicalMemberPort2(key_logical_member_port_t& k) {\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "{0x11,0xac}", strlen("{0x11,0xac}"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "controller3 pord id:1",\r
-         strlen("controller3 pord id:1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "{0xab,0xc}", strlen("{0xab,0xc}"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "controller3_domain_name" ,\r
-         strlen("controller3_domain_name"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller3" ,\r
-         strlen("controller3"));\r
-}\r
-\r
-void getKeyForKtLogicalMemberPort3(key_logical_member_port_t& k) {\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-}\r
-\r
-void getKeyForKtLogicalMemberPort4(key_logical_member_port_t& k) {\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "", strlen(""));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "Controller1" ,\r
-         strlen("Controller1"));\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, IsKeyExists_01) {\r
-PhysicalLayerStub::loadphysicallayer();\r
-  string controller_name = "Controller1";\r
-  string domain_name = "Domain1";\r
-  string port_id = "log_port1";\r
-  string switch_id = "switch1";\r
-  string physical_port_id = "phy_port1";\r
-  vector<string> key_values;\r
-  key_values.push_back(controller_name);\r
-  key_values.push_back(domain_name);\r
-  key_values.push_back(port_id);\r
-  key_values.push_back(switch_id);\r
-  key_values.push_back(physical_port_id);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, IsKeyExists_02) {\r
-  string controller_name = "Controller1";\r
-  string domain_name = "Domain1";\r
-  string port_id = "log_port1";\r
-  string switch_id = "switch1";\r
-  string physical_port_id = "phy_port1";\r
-  vector<string> key_values;\r
-  key_values.push_back(controller_name);\r
-  key_values.push_back(domain_name);\r
-  key_values.push_back(port_id);\r
-  key_values.push_back(switch_id);\r
-  key_values.push_back(physical_port_id);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, IsKeyExists_03) {\r
-  string controller_name = "Controller1";\r
-  string domain_name = "Domain1";\r
-  string port_id = "log_port1";\r
-  string switch_id = "switch1";\r
-  string physical_port_id = "phy_port1";\r
-  vector<string> key_values;\r
-  key_values.push_back(controller_name);\r
-  key_values.push_back(domain_name);\r
-  key_values.push_back(port_id);\r
-  key_values.push_back(switch_id);\r
-  key_values.push_back(physical_port_id);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);\r
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, IsKeyExists_04) {\r
-  vector<string> key_values;\r
-  key_values.clear();\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);\r
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);\r
-  ODBCManager::clearStubData();\r
-}\r
-// PerformSyntaxValidation with value structure\r
-TEST_F(KtClassTest, PerformSyntaxValidation_01) {\r
-  key_logical_member_port k;\r
-  getKeyForKtLogicalMemberPort2(k);\r
-  void* val =new key_logical_member_port;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-\r
-// PerformSyntaxValidation success\r
-TEST_F(KtClassTest, PerformSyntaxValidation_02) {\r
-  key_logical_member_port k;\r
-  getKeyForKtLogicalMemberPort2(k);\r
-  void* val = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-// PerformSyntaxValidation without switch id\r
-TEST_F(KtClassTest, PerformSyntaxValidation_03) {\r
-  key_logical_member_port k;\r
-  memset(k.switch_id, '\0', 256);\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  void* val = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-// PerformSyntaxValidation without physical port id\r
-TEST_F(KtClassTest, PerformSyntaxValidation_04) {\r
-  key_logical_member_port k;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  void* val = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-// PerformSyntaxValidation without logical_port_id\r
-TEST_F(KtClassTest, PerformSyntaxValidation_05) {\r
-  key_logical_member_port k;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  void* val = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-// PerformSyntaxValidation without domain name \r
-TEST_F(KtClassTest, PerformSyntaxValidation_06) {\r
-  key_logical_member_port k;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  void* val = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-// PerformSyntaxValidation without controller name\r
-TEST_F(KtClassTest, PerformSyntaxValidation_07) {\r
-  key_logical_member_port k;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  void* val = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-\r
-// DeleteKeyInstance success\r
-TEST_F(KtClassTest, DeleteKeyInstance_01) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, DeleteKeyInstance_02) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, DeleteKeyInstance_03) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, DeleteKeyInstance_04) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_DELETE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, DeleteKeyInstance_05) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_CANDIDATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-// DeleteKeyInstance without switch id\r
-TEST_F(KtClassTest, DeleteKeyInstance_06) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  memset(k.switch_id, '\0', 256);\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-// DeleteKeyInstance without physical port id\r
-TEST_F(KtClassTest, DeleteKeyInstance_07) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-// DeleteKeyInstance without logical_port_id\r
-TEST_F(KtClassTest, DeleteKeyInstance_08) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-// DeleteKeyInstance without domain name \r
-TEST_F(KtClassTest, DeleteKeyInstance_09) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 320);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,\r
-         strlen("controller4"));\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-// DeleteKeyInstance without controller name\r
-TEST_F(KtClassTest, DeleteKeyInstance_10) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  memset(k.switch_id, '\0', 256);\r
-  memcpy(k.switch_id, "switch1", strlen("switch1"));\r
-  memset(k.physical_port_id, '\0', 32);\r
-  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));\r
-  memset(k.logical_port_key.port_id, '\0', 291);\r
-  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));\r
-  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);\r
-  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,\r
-         strlen("Domain1"));\r
-  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-// ReadBulkInternal success\r
-TEST_F(KtClassTest, ReadBulkInternal_01) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  uint32_t max_rep_ct = 2;\r
-  vector<key_logical_member_port_t> vect_logical_mem_port;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulkInternal_02) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  uint32_t max_rep_ct = 2;\r
-  vector<key_logical_member_port_t> vect_logical_mem_port;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulkInternal_03) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  uint32_t max_rep_ct = 2;\r
-  vector<key_logical_member_port_t> vect_logical_mem_port;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);\r
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulkInternal_04) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  uint32_t max_rep_ct = 2;\r
-  vector<key_logical_member_port_t> vect_logical_mem_port;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulkInternal_05) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  uint32_t max_rep_ct = 0;\r
-  vector<key_logical_member_port_t> vect_logical_mem_port;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);\r
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulkInternal_06) {\r
-  key_logical_member_port k;\r
-  uint32_t key_type = 1;\r
-  uint32_t max_rep_ct = 2;\r
-  vector<key_logical_member_port_t> vect_logical_mem_port;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  Kt_LogicalMemberPort lmp_obj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);\r
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-/*ReadInternal function when operation is lessthan READ */\r
-TEST_F(KtClassTest, ReadInternal_No_Read_01) {\r
-  key_logical_member_port_t *k=new key_logical_member_port_t;\r
-  vector<void *> vectVal_logicalmemberport;\r
-  vector<void *> vectkey_logicalmemberport;\r
-  vectkey_logicalmemberport.push_back(k);\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlmportobj.ReadInternal(db_conn,vectkey_logicalmemberport,vectVal_logicalmemberport,UNC_DT_STATE,UNC_OP_CREATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*ReadInternal function where value struct is NULL */\r
-TEST_F(KtClassTest, ReadInternal_VAlStructNull_02) {\r
-  key_logical_member_port_t *k=new key_logical_member_port_t;\r
-  vector<void *> vectVal_logicalmemberport;\r
-  vector<void *> vectkey_logicalmemberport;\r
-  vectkey_logicalmemberport.push_back(k);\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlmportobj.ReadInternal(db_conn,vectkey_logicalmemberport,vectVal_logicalmemberport,UNC_DT_STATE,UNC_OP_READ);\r
-  EXPECT_EQ(ret,ODBCM_RC_MORE_ROWS_FOUND);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has invalid option1 */\r
-TEST_F(KtClassTest, PerformRead_01) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has invalid option1 */\r
-TEST_F(KtClassTest, PerformRead_02) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has invalid datatype */\r
-TEST_F(KtClassTest, PerformRead_03) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has valid option2 */\r
-TEST_F(KtClassTest, PerformRead_04) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has invalid datatype */\r
-TEST_F(KtClassTest, PerformRead_05) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has invalid option2 */\r
-TEST_F(KtClassTest, PerformRead_06) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function which has invalid option2 */\r
-TEST_F(KtClassTest, PerformRead_07) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_MAC_ENTRY);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function with valid option1 and option2 */\r
-TEST_F(KtClassTest, PerformRead_08) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/*PerformRead function with valid option1 and option2 */\r
-TEST_F(KtClassTest, PerformRead_09) {\r
-  key_logical_member_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort ktlmportobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_GET);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);\r
-\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);\r
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//DB Access failure for UPDATE opr\r
-\r
-TEST_F(KtClassTest, PerformSemanticValid_UPD_DBFail) {\r
-  PhysicalLayerStub::loadphysicallayer();\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//DB Access failure for DEL opr  \r
-TEST_F(KtClassTest, PerformSemanticValid_DEL_DBFail) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_DELETE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//DB Access failure for READ opr\r
-TEST_F(KtClassTest, PerformSemanticValid_READ_DBFail) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-\r
-//key does not exist.\r
-//update operation not allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyNotExists_For_UPD) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//key does not exist.\r
-//Delete operation not allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyNotExists_For_DEL) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_DELETE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//key does not exist.\r
-//Read operation not allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyNotExists_For_READ) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-  \r
-//key instance exist.\r
-//update operation allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyExists_UPD_Allow) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//key instance exist.\r
-//Delete operation allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyExists_Del_Allow) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_DELETE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//key instance exist.\r
-//Read operation allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyExists_Read_Allow) {\r
-  key_logical_member_port_t k ;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//key already exist\r
-//create operation not allowed\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyExist_CREATE_NotAllow) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_INSTANCE_EXISTS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//IsRowExits:DB Access failure\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyExist_CREATE_DB_Error) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-//Error:ParentKey does not exist\r
-TEST_F(KtClassTest, PerformSemanticValid_KeyExist_CREATE_ParentKeyNotExist) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  void *v = NULL;\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);\r
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}  \r
-\r
-/********ReadLogicalMemberPortValFromDB*********/\r
-//Unsupported operation type returns Success\r
-TEST_F(KtClassTest, ReadLogicalMemberPortValFromDB_UnSupport_Opr) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  uint32_t max_rep_ct;\r
-  vector<key_logical_member_port_t> logical_mem_port;\r
-  pfc_bool_t is_state;\r
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//Read Error:No record found\r
- TEST_F(KtClassTest, ReadLogicalMemberPortValFromDB_READ_NoRecordFound) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  uint32_t max_rep_ct;\r
-  vector<key_logical_member_port_t> logical_mem_port;\r
-  pfc_bool_t is_state;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);\r
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//Read :DB Connxn Error\r
-TEST_F(KtClassTest, ReadLogicalMemberPortValFromDB_READ_Db_Connxn_Error) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  uint32_t max_rep_ct;\r
-  vector<key_logical_member_port_t> logical_mem_port;\r
-  pfc_bool_t is_state;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//Read :Error returning DB_GET\r
-TEST_F(KtClassTest, ReadLogicalMemberPortValFromDB_READ_Db_GetError) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  uint32_t max_rep_ct;\r
-  vector<key_logical_member_port_t> logical_mem_port;\r
-  pfc_bool_t is_state;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_FAILED);\r
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
- //Read:GetOneRow Success\r
-TEST_F(KtClassTest, ReadLogicalMemberPortValFromDB_READ_GetOneRow_Success) {\r
-  key_logical_member_port_t k;\r
-  memset(&k,0,sizeof(key_logical_member_port_t));\r
-  Kt_LogicalMemberPort KtObj;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  uint32_t max_rep_ct;\r
-  vector<key_logical_member_port_t> logical_mem_port;\r
-  pfc_bool_t is_state;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_SUCCESS);\r
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-/******ReadBulk**********/\r
-//ReadBulk Not allowed for UNC_DT_CANDIDATE\r
-TEST_F(KtClassTest, ReadBulk_DB_NoMatch) {\r
-  PhysicalLayerStub::loadphysicallayer();\r
-  key_logical_member_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct;\r
-  int child_index;\r
-  pfc_bool_t parent_call;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = NULL;\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_RUNNING, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//If max_rep_count is 0,return success\r
-TEST_F(KtClassTest, ReadBulk_MaxCt_Zero) {\r
-  key_logical_member_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct = 0;\r
-  int child_index;\r
-  pfc_bool_t parent_call;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = NULL;\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//GetBulkRows Read Status Success\r
-TEST_F(KtClassTest, ReadBulk__Success) {\r
-  key_logical_member_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct = 1;\r
-  int child_index;\r
-  pfc_bool_t parent_call = false;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS,ODBCM_RC_SUCCESS);\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//GetBulkRows Returns DB Access Error\r
-TEST_F(KtClassTest, ReadBulk_Db_Access_Error) {\r
-  key_logical_member_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct = 1;\r
-  int child_index;\r
-  pfc_bool_t parent_call = false;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//Read Status for next Kin Success\r
-TEST_F(KtClassTest, ReadBulk_Next_Kin_Success) {\r
-  key_logical_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  //getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct = 1;\r
-  int child_index;\r
-  pfc_bool_t parent_call = false;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-//Read Status Success for no such instance\r
-TEST_F(KtClassTest, ReadBulk_Succes__For_NoInstance) {\r
-  key_logical_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  //getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct = 1;\r
-  int child_index;\r
-  pfc_bool_t parent_call = false;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulk_Succes_NOSUCHINSTANCE) {\r
-  key_logical_member_port_t k;\r
-  Kt_LogicalMemberPort KtObj;\r
-  //getKeyForKtLogicalMemberPort1(k);\r
-  uint32_t data_type;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  uint32_t max_rep_ct = 1;\r
-  int child_index;\r
-  pfc_bool_t parent_call = false;\r
-  pfc_bool_t is_read_next;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);\r
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ *           * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <limits.h>
+#include <gtest/gtest.h>
+
+#include <pfcxx/ipc_client.hh>
+#include <pfc/ipc_struct.h>
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <arpa/inet.h>
+
+#include <time.h>
+#include <pfc/base.h>
+#include <pfc/ipc.h>
+#include <pfc/config.h>
+
+#include <pfc/conf.h>
+#include <pfc/log.h>
+#include <pfc/util.h>
+#include <pfc/event.h>
+#include <pfc/path.h>
+#include <pfc/hash.h>
+#include <pfc/thread.h>
+#include <pfc/refptr.h>
+#include <pfc/listmodel.h>
+#include <pfc/iostream.h>
+#include <pfc/ipc_client.h>
+#include <pfc/ipc_pfcd.h>
+#include <pfc/ipc_struct.h>
+#include <odbcm_mgr.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <itc_kt_logicalport.hh>
+#include <ipct_util.hh>
+#include "PhysicalLayerStub.hh"
+#include <itc_read_request.hh>
+#include <itc_kt_logical_member_port.hh>
+#include "ut_util.hh"
+
+using namespace pfc;
+using namespace pfc::core;
+using namespace pfc::core::ipc;
+using namespace std;
+using namespace unc::uppl::test;
+
+class LogicalMemberPortTest
+  : public UpplTestEnv
+{
+};
+
+static void getKeyForKtLogicalMemberPort1(key_logical_member_port_t& k) {
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "{0x10,0xbc}", strlen("{0x10,0xbc}"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "controller1 pord id:1",
+         strlen("controller1 pord id:1"));
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memcpy(k.logical_port_key.port_id, "{0x00,0xa}", strlen("{0x00,0xa}"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "controller1 domain_name",
+         strlen("controller1 domain_name"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller1" ,
+         strlen("controller1"));
+}
+
+static void getKeyForKtLogicalMemberPort2(key_logical_member_port_t& k) {
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "{0x11,0xac}", strlen("{0x11,0xac}"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "controller3 pord id:1",
+         strlen("controller3 pord id:1"));
+  memset(k.logical_port_key.port_id, '\0', 291);
+  memcpy(k.logical_port_key.port_id, "{0xab,0xc}", strlen("{0xab,0xc}"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "controller3_domain_name" ,
+         strlen("controller3_domain_name"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller3" ,
+         strlen("controller3"));
+}
+
+TEST_F(LogicalMemberPortTest, IsKeyExists_01) {
+  string controller_name = "Controller1";
+  string domain_name = "Domain1";
+  string port_id = "log_port1";
+  string switch_id = "switch1";
+  string physical_port_id = "phy_port1";
+  vector<string> key_values;
+  key_values.push_back(controller_name);
+  key_values.push_back(domain_name);
+  key_values.push_back(port_id);
+  key_values.push_back(switch_id);
+  key_values.push_back(physical_port_id);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, IsKeyExists_02) {
+  string controller_name = "Controller1";
+  string domain_name = "Domain1";
+  string port_id = "log_port1";
+  string switch_id = "switch1";
+  string physical_port_id = "phy_port1";
+  vector<string> key_values;
+  key_values.push_back(controller_name);
+  key_values.push_back(domain_name);
+  key_values.push_back(port_id);
+  key_values.push_back(switch_id);
+  key_values.push_back(physical_port_id);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, IsKeyExists_03) {
+  string controller_name = "Controller1";
+  string domain_name = "Domain1";
+  string port_id = "log_port1";
+  string switch_id = "switch1";
+  string physical_port_id = "phy_port1";
+  vector<string> key_values;
+  key_values.push_back(controller_name);
+  key_values.push_back(domain_name);
+  key_values.push_back(port_id);
+  key_values.push_back(switch_id);
+  key_values.push_back(physical_port_id);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalMemberPortTest, IsKeyExists_04) {
+  vector<string> key_values;
+  key_values.clear();
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+}
+
+// PerformSyntaxValidation with value structure
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_01) {
+  key_logical_member_port k;
+  getKeyForKtLogicalMemberPort2(k);
+  key_logical_member_port val;
+  memset(&val, 0, sizeof(val));
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,&val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+// PerformSyntaxValidation success
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_02) {
+  key_logical_member_port k;
+  getKeyForKtLogicalMemberPort2(k);
+  void* val = NULL;
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+// PerformSyntaxValidation without switch id
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_03) {
+  key_logical_member_port k;
+  memset(k.switch_id, '\0', 256);
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 291);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  void* val = NULL;
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+// PerformSyntaxValidation without physical port id
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_04) {
+  key_logical_member_port k;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  void* val = NULL;
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+// PerformSyntaxValidation without logical_port_id
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_05) {
+  key_logical_member_port k;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  void* val = NULL;
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+// PerformSyntaxValidation without domain name 
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_06) {
+  key_logical_member_port k;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  void* val = NULL;
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+// PerformSyntaxValidation without controller name
+TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_07) {
+  key_logical_member_port k;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 291);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  void* val = NULL;
+  uint32_t operation = UNC_OP_READ;
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+// DeleteKeyInstance success
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_01) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_02) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_03) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_04) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+}
+
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_05) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_CANDIDATE,key_type);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+// DeleteKeyInstance without switch id
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_06) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  memset(k.switch_id, '\0', 256);
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 291);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+// DeleteKeyInstance without physical port id
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_07) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+// DeleteKeyInstance without logical_port_id
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_08) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+// DeleteKeyInstance without domain name 
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_09) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 320);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.ctr_key.controller_name, "controller4" ,
+         strlen("controller4"));
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+// DeleteKeyInstance without controller name
+TEST_F(LogicalMemberPortTest, DeleteKeyInstance_10) {
+  key_logical_member_port k;
+  uint32_t key_type = 1;
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, "switch1", strlen("switch1"));
+  memset(k.physical_port_id, '\0', 32);
+  memcpy(k.physical_port_id, "phy_port1", strlen("phy_port1"));
+  memset(k.logical_port_key.port_id, '\0', 291);
+  memcpy(k.logical_port_key.port_id, "log_port1", strlen("log_port1"));
+  memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
+  memcpy(k.logical_port_key.domain_key.domain_name, "Domain1" ,
+         strlen("Domain1"));
+  memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+// ReadBulkInternal success
+TEST_F(LogicalMemberPortTest, ReadBulkInternal_01) {
+  key_logical_member_port k;
+  uint32_t max_rep_ct = 2;
+  vector<key_logical_member_port_t> vect_logical_mem_port;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, ReadBulkInternal_02) {
+  key_logical_member_port k;
+  uint32_t max_rep_ct = 2;
+  vector<key_logical_member_port_t> vect_logical_mem_port;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, ReadBulkInternal_03) {
+  key_logical_member_port k;
+  uint32_t max_rep_ct = 2;
+  vector<key_logical_member_port_t> vect_logical_mem_port;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalMemberPortTest, ReadBulkInternal_04) {
+  key_logical_member_port k;
+  uint32_t max_rep_ct = 2;
+  vector<key_logical_member_port_t> vect_logical_mem_port;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, ReadBulkInternal_05) {
+  key_logical_member_port k;
+  uint32_t max_rep_ct = 0;
+  vector<key_logical_member_port_t> vect_logical_mem_port;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, ReadBulkInternal_06) {
+  key_logical_member_port k;
+  uint32_t max_rep_ct = 2;
+  vector<key_logical_member_port_t> vect_logical_mem_port;
+  getKeyForKtLogicalMemberPort1(k);
+  Kt_LogicalMemberPort lmp_obj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+}
+
+/*ReadInternal function when operation is lessthan READ */
+TEST_F(LogicalMemberPortTest, ReadInternal_No_Read_01) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(k));
+
+  vector<void *> vectVal_logicalmemberport;
+  vector<void *> vectkey_logicalmemberport;
+  vectkey_logicalmemberport.push_back(&k);
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlmportobj.ReadInternal(db_conn,vectkey_logicalmemberport,vectVal_logicalmemberport,UNC_DT_STATE,UNC_OP_CREATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/*ReadInternal function where value struct is NULL */
+TEST_F(LogicalMemberPortTest, ReadInternal_VAlStructNull_02) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(k));
+
+  vector<void *> vectVal_logicalmemberport;
+  vector<void *> vectkey_logicalmemberport;
+  vectkey_logicalmemberport.push_back(&k);
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlmportobj.ReadInternal(db_conn,vectkey_logicalmemberport,vectVal_logicalmemberport,UNC_DT_STATE,UNC_OP_READ);
+  EXPECT_EQ(ODBCM_RC_MORE_ROWS_FOUND, ret);
+}
+
+/*PerformRead function which has invalid option1 */
+TEST_F(LogicalMemberPortTest, PerformRead_01) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+/*PerformRead function which has invalid option1 */
+TEST_F(LogicalMemberPortTest, PerformRead_02) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/*PerformRead function which has invalid datatype */
+TEST_F(LogicalMemberPortTest, PerformRead_03) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+/*PerformRead function which has valid option2 */
+TEST_F(LogicalMemberPortTest, PerformRead_04) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+/*PerformRead function which has invalid datatype */
+TEST_F(LogicalMemberPortTest, PerformRead_05) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/*PerformRead function which has invalid option2 */
+TEST_F(LogicalMemberPortTest, PerformRead_06) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+/*PerformRead function which has invalid option2 */
+TEST_F(LogicalMemberPortTest, PerformRead_07) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_MAC_ENTRY);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/*PerformRead function with valid option1 and option2 */
+TEST_F(LogicalMemberPortTest, PerformRead_08) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/*PerformRead function with valid option1 and option2 */
+TEST_F(LogicalMemberPortTest, PerformRead_09) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort ktlmportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_GET);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
+
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//DB Access failure for UPDATE opr
+
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_UPD_DBFail) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_UPDATE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+//DB Access failure for DEL opr  
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_DEL_DBFail) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_DELETE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}  
+
+//DB Access failure for READ opr
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_READ_DBFail) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}  
+
+//key does not exist.
+//update operation not allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyNotExists_For_UPD) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_UPDATE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}  
+
+//key does not exist.
+//Delete operation not allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyNotExists_For_DEL) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_DELETE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}  
+
+//key does not exist.
+//Read operation not allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyNotExists_For_READ) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+  
+//key instance exist.
+//update operation allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExists_UPD_Allow) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_UPDATE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}  
+
+//key instance exist.
+//Delete operation allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExists_Del_Allow) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_DELETE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}  
+
+//key instance exist.
+//Read operation allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExists_Read_Allow) {
+  key_logical_member_port_t k ;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}  
+
+//key already exist
+//create operation not allowed
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExist_CREATE_NotAllow) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_CREATE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+}  
+
+//IsRowExits:DB Access failure
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExist_CREATE_DB_Error) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_CREATE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}  
+
+//Error:ParentKey does not exist
+TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExist_CREATE_ParentKeyNotExist) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  void *v = NULL;
+  uint32_t operation = UNC_OP_CREATE;
+  uint32_t data_type = UNC_DT_STATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+}  
+
+/********ReadLogicalMemberPortValFromDB*********/
+//Unsupported operation type returns Success
+TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_UnSupport_Opr) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t operation = UNC_OP_CREATE;
+  uint32_t data_type = UNC_DT_STATE;
+  uint32_t max_rep_ct;
+  vector<key_logical_member_port_t> logical_mem_port;
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//Read Error:No record found
+ TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_NoRecordFound) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  uint32_t max_rep_ct;
+  vector<key_logical_member_port_t> logical_mem_port;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+//Read :DB Connxn Error
+TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_Db_Connxn_Error) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  uint32_t max_rep_ct;
+  vector<key_logical_member_port_t> logical_mem_port;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+//Read :Error returning DB_GET
+TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_Db_GetError) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  uint32_t max_rep_ct;
+  vector<key_logical_member_port_t> logical_mem_port;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_FAILED);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+}
+
+ //Read:GetOneRow Success
+TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_GetOneRow_Success) {
+  key_logical_member_port_t k;
+  memset(&k,0,sizeof(key_logical_member_port_t));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t operation = UNC_OP_READ;
+  uint32_t data_type = UNC_DT_STATE;
+  uint32_t max_rep_ct;
+  vector<key_logical_member_port_t> logical_mem_port;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_SUCCESS);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/******ReadBulk**********/
+//ReadBulk Not allowed for UNC_DT_CANDIDATE
+TEST_F(LogicalMemberPortTest, ReadBulk_DB_NoMatch) {
+  key_logical_member_port_t k;
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct(1);
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req = NULL;
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_RUNNING, max_rep_ct, child_index,parent_call, is_read_next,read_req);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+//If max_rep_count is 0,return success
+TEST_F(LogicalMemberPortTest, ReadBulk_MaxCt_Zero) {
+  key_logical_member_port_t k;
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct = 0;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest *read_req = NULL;
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//GetBulkRows Read Status Success
+TEST_F(LogicalMemberPortTest, ReadBulk__Success) {
+  key_logical_member_port_t k;
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct = 1;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS,ODBCM_RC_SUCCESS);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+                           parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//GetBulkRows Returns DB Access Error
+TEST_F(LogicalMemberPortTest, ReadBulk_Db_Access_Error) {
+  key_logical_member_port_t k;
+  Kt_LogicalMemberPort KtObj;
+  getKeyForKtLogicalMemberPort1(k);
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct = 1;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+                           parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+//Read Status for next Kin Success
+TEST_F(LogicalMemberPortTest, ReadBulk_Next_Kin_Success) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(k));
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct = 1;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+                           parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//Read Status Success for no such instance
+TEST_F(LogicalMemberPortTest, ReadBulk_Succes__For_NoInstance) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(k));
+
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct = 1;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+                           parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalMemberPortTest, ReadBulk_Succes_NOSUCHINSTANCE) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(k));
+
+  Kt_LogicalMemberPort KtObj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct = 1;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+                           parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
similarity index 75%
rename from coordinator/test/modules/uppl/utest/KtLogicalPort_ut.cc
rename to coordinator/test/modules/uppl/utest/LogicalPort_ut.cc
index edca386e61f09cb8107ea8f26cbf34106133a102..60181e28bd1fd6d8c2cfdca91ecfc4dffb30d38d 100644 (file)
- /*\r
- * Copyright (c) 2012-2013 NEC Corporation\r
- * All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this\r
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-\r
-#include <limits.h>\r
-#include <gtest/gtest.h>\r
-\r
-#include <pfcxx/ipc_client.hh>\r
-#include <pfc/ipc_struct.h>\r
-\r
-#include <stdio.h>\r
-#include <sys/stat.h>\r
-#include <sys/mman.h>\r
-#include <arpa/inet.h>\r
-\r
-#include <time.h>\r
-#include <pfc/base.h>\r
-#include <pfc/ipc.h>\r
-#include <pfc/config.h>\r
-\r
-#include <pfc/conf.h>\r
-#include <pfc/log.h>\r
-#include <pfc/util.h>\r
-#include <pfc/event.h>\r
-#include <pfc/path.h>\r
-#include <pfc/hash.h>\r
-#include <pfc/thread.h>\r
-#include <pfc/refptr.h>\r
-#include <pfc/listmodel.h>\r
-#include <pfc/iostream.h>\r
-#include <pfc/ipc_client.h>\r
-#include <pfc/ipc_pfcd.h>\r
-#include <pfc/ipc_struct.h>\r
-#include "stub/ODBC/include/odbcm_mgr.hh"\r
-#include "physical_common_def.hh"\r
-#include "unc/uppl_common.h"\r
-#include "unc/keytype.h"\r
-#include "itc_kt_base.hh"\r
-#include "itc_kt_root.hh"\r
-#include "itc_kt_controller.hh"\r
-#include "itc_kt_ctr_domain.hh"\r
-#include "itc_kt_switch.hh"\r
-#include "itc_kt_port.hh"\r
-#include "itc_kt_link.hh"\r
-#include "itc_kt_boundary.hh"\r
-#include "itc_kt_logical_member_port.hh"\r
-#include "itc_kt_logicalport.hh"\r
-#include "ipct_util.hh"\r
-#include "itc_kt_logical_member_port.hh"\r
-#include "physicallayer.hh"\r
-#include "PhysicalLayerStub.hh"\r
-#include "tclib_module.hh"\r
-#include "itc_read_request.hh"\r
-using namespace pfc;\r
-using namespace pfc::core;\r
-using namespace pfc::core::ipc;\r
-using namespace unc::uppl;\r
-using namespace std;\r
-\r
-ClientSession *cli_sess = NULL;\r
-ClientSession *cli_sess_notify = NULL;\r
-pfc_ipcid_t service = UPPL_SVC_READREQ;\r
-class KtClassTest : public testing::Test {\r
-  protected:\r
-  virtual void SetUp() {\r
-    if(cli_sess == NULL) {\r
-      pfc_ipcconn_t connp = 0;\r
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);\r
-      ASSERT_EQ(0, err);\r
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);\r
-      ASSERT_EQ(0, err);\r
-      connp = 0;\r
-      err = pfc_ipcclnt_altopen("phynwd", &connp);\r
-      ASSERT_EQ(0, err); cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);\r
-      ASSERT_EQ(0, err);\r
-      connp = 0;\r
-      err = pfc_ipcclnt_altopen("phynwd", &connp);\r
-      ASSERT_EQ(0, err);\r
-     cli_sess_notify = new ClientSession(connp, "sample2", 0, err);\r
-     \r
-     PhysicalLayerStub::loadphysicallayer();\r
-   }\r
-  }\r
-  virtual void TearDown() {\r
-    if (cli_sess != NULL) {\r
-      cli_sess->cancel();\r
-      delete cli_sess;\r
-      cli_sess = NULL;\r
-    }\r
-    if (cli_sess_notify != NULL) {\r
-      cli_sess_notify->cancel();\r
-      delete cli_sess_notify;\r
-      cli_sess_notify = NULL;\r
-    }\r
-  }\r
-\r
-};\r
-\r
-void getReqHeader(physical_request_header& rh,\r
-                  unc_keytype_operation_t opern,\r
-                  unc_keytype_datatype_t dtype) {\r
-  rh.client_sess_id = 1;\r
-  rh.config_id = 1;\r
-  rh.operation = opern;\r
-  rh.max_rep_count = 0;\r
-  rh.option1 = 0;\r
-  rh.option2 = 0;\r
-  rh.data_type = dtype;\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-}\r
-// Can be changed based on testing need\r
- char pkName1_ctr[] = "controller1";\r
- char pkName1_domain[] = "controller1 domain name";\r
- char pkName1_logicalport[] = "{0x00,0xa}";\r
- char pkName2_ctr[] = "controller2";\r
- char pkName2_domain[] = "domainName2";\r
- char pkName2_logicalport[] = "logicalport2";\r
- char pkName3_ctr[] = "controller22";\r
- char pkName3_domain[] = "domainName3";\r
- char pkName3_logicalport[] = "logicalport3";\r
- char pkName4_ctr[] = "";\r
- char pkName4_domain[] = "";\r
- char pkName4_logicalport[] = "";\r
- char pkName5_ctr[] = "controller2";\r
- char pkName5_domain[] = "controller2 domain name";\r
- char pkName5_logicalport[] = "{0x00,0xa1}";\r
- char pkName6_ctr[] = "controller1";\r
- char pkName6_domain[] = "controller1 domain name";\r
- char pkName6_logicalport[] = "{0x00,0xa}";\r
- char Desription[] = "create demo";\r
- char SWitchID[] = "switch01";\r
- char PhyPortID[] = "PhyPort01";\r
- char controller_name[] = "Controller1";\r
- char switch_id[] = "Switch1";\r
- char phy_port_id[] = "port1";\r
-TEST_F(KtClassTest, PerformSyntaxValidation_ControllernameNotFound_01) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-TEST_F(KtClassTest, PerformSyntaxValidation_DomainNameNotFound_02) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-TEST_F(KtClassTest, PerformSyntaxValidation_PortIDNNotFound_03) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-\r
-}\r
-TEST_F(KtClassTest, PerformSyntaxValidation_SyntaxValidation_Success_04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-TEST_F(KtClassTest, PerformSyntaxValidation_OptionalValPass_Success_05) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.description,Desription,strlen(Desription));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, IsKeyExists_01) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  vector<string> sw_vect_key_value;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, IsKeyExists_FailureIsrowexist02) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  vector<string> sw_vect_key_value;\r
-  sw_vect_key_value.push_back(pkName1_ctr);\r
-  sw_vect_key_value.push_back(pkName1_domain);\r
-  sw_vect_key_value.push_back(pkName1_logicalport);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);\r
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, IsKeyExists_SuccessIsrowexist03) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  vector<string> sw_vect_key_value;\r
-  sw_vect_key_value.push_back(pkName1_ctr);\r
-  sw_vect_key_value.push_back(pkName1_domain);\r
-  sw_vect_key_value.push_back(pkName1_logicalport);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceExist_create01) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_INSTANCE_EXISTS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_create02) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_update03) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_delete04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_DELETE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_read03) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_read_InstanceExist04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_READ;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_update_InstanceExist04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, PerformSemanticValidation_InstanceNOtExist_delete_InstanceExist04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_LOGICAL_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  uint32_t operation = UNC_OP_DELETE;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForSTARTUP_01) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForCANDIDATE_01) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForRUNNING_01) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForAUDIT_01) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_AUDIT, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_Support_03) { //return code not handle from HandleOperDownCriteriaFromPortStatus function\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_DELETE);\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, DeleteKeyInstance_Support_04) { //return code not handle from HandleOperDownCriteriaFromPortStatus function\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_Support_05) { //return code not handle from HandleOperDownCriteriaFromPortStatus function\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, DeleteKeyInstance_Support_06) { //return code not handle from HandleOperDownCriteriaFromPortStatus function\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  ODBCManager::clearStubData();\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, PerformRead_001) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);\r
-\r
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-}\r
-\r
-\r
-\r
-TEST_F(KtClassTest, PerformRead_002) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);\r
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-}\r
-\r
-TEST_F(KtClassTest, PerformRead_003) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);\r
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_RUNNING,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-}\r
-TEST_F(KtClassTest, PerformRead_004) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);\r
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-TEST_F(KtClassTest, PerformRead_GetOneRow_005) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);\r
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, SetOperStatus_001) {\r
-\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  //getKeyForKtPort2(k);\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)1);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, SetOperStatus_002) {\r
-\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  //getKeyForKtPort2(k);\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, SetOperStatus_003) {\r
-\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  //getKeyForKtPort2(k);\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, SetOperStatus_004) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, SetOperStatus_005) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, SetOperStatus_006) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, SetOperStatus_007) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)2);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulk_NotAllowOperation_01) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct=1;\r
-  int child_index=0;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-}\r
-TEST_F(KtClassTest, ReadBulk_MaxCountZERO_02) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct=0;\r
-  int child_index=0;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ReadBulk_UPPL_RC_ERR_DB_GET_02) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct=1;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);\r
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, ReadBulkInternal__SUCCESS01) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct=0;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  vector<val_logical_port_st_t> vect_val_logical_port_st;\r
-  vector<key_logical_port_t> vect_logicalport_id;\r
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_logical_port_st, vect_logicalport_id);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, GetLogicalPortValidFlag_UPPL_RC_ERR_NO_SUCH_INSTANCE) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  val_logical_port_st_t *val_logical_port_valid_st=NULL;\r
-  val_logical_port_valid_st = new val_logical_port_st_t();\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t max_rep_ct=0;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);\r
-  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k,  *val_logical_port_valid_st, UNC_DT_STATE);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetLogicalPortValidFlag_UPPL_RC_ERR_DB_ACCESS) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  val_logical_port_st_t *val_logical_port_valid_st=NULL;\r
-  val_logical_port_valid_st = new val_logical_port_st_t();\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t max_rep_ct=0;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k,  *val_logical_port_valid_st, UNC_DT_STATE);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetLogicalPortValidFlag_OtherThanSuccess) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  val_logical_port_st_t *val_logical_port_valid_st=NULL;\r
-  val_logical_port_valid_st = new val_logical_port_st_t();\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t max_rep_ct=0;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_COMMON_LINK_FAILURE);\r
-  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k,  *val_logical_port_valid_st, UNC_DT_STATE);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetLogicalPortValidFlag_UPPL_RC_SUCCESS) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  val_logical_port_st_t *val_logical_port_valid_st=NULL;\r
-  val_logical_port_valid_st = new val_logical_port_st_t();\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t max_rep_ct=0;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k,  *val_logical_port_valid_st, UNC_DT_STATE);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetOperStatusFromOperDownCriteria_DB_ERROR) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  UpplLogicalPortOperStatus new_oper_status = UPPL_LOGICAL_PORT_OPER_UNKNOWN;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);\r
-  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(db_conn,UNC_DT_STATE,&k,&v,new_oper_status);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetOperStatusFromOperDownCriteria_DB_Success) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  UpplLogicalPortOperStatus new_oper_status = UPPL_LOGICAL_PORT_OPER_UNKNOWN;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(db_conn,UNC_DT_STATE,&k,&v,new_oper_status);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, HandleDriverAlarms_AlaramOtherThanUNC_SUBDOMAIN_SPLIT) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  uint32_t alarm_type = UNC_FLOW_ENT_FULL;\r
-  uint32_t oper_type = UNC_OP_CREATE;\r
-  vector<void *> obj_key_struct;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);\r
-\r
-}\r
-//Unable to get current oper_status from db\r
-TEST_F(KtClassTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_01) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;\r
-  uint32_t oper_type = UNC_OP_CREATE;\r
-  vector<void *> obj_key_struct;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);\r
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-//operstatus new and old naot same\r
-TEST_F(KtClassTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_02) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;\r
-  uint32_t oper_type = UNC_OP_CREATE;\r
-  vector<void *> obj_key_struct;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-//Update oper_status\r
-TEST_F(KtClassTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_03) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;\r
-  uint32_t oper_type = UNC_OP_DELETE;\r
-  vector<void *> obj_key_struct;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;\r
-  uint32_t oper_type = UNC_OP_UPDATE;\r
-  vector<void *> obj_key_struct;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, NotifyOperStatus_success) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  vector<OperStatusHolder> refer;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-TEST_F(KtClassTest, NotifyOperStaus_valstructureNull) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t *v=NULL;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  //memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  vector<OperStatusHolder> refer;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,v,refer);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-TEST_F(KtClassTest, GetAllPortId_va) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);\r
-  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);\r
-  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);\r
-  pfc_bool_t is_single_logical_port1=true;\r
-  vector <string> logical_port_id1;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = UPPL_RC_SUCCESS;\r
-  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,true);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-TEST_F(KtClassTest, GetAllPortId_GetSibling) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);\r
-  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);\r
-  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);\r
-  pfc_bool_t is_single_logical_port1=true;\r
-  vector <string> logical_port_id1;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);\r
-  int ret = UPPL_RC_SUCCESS;\r
-  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,true);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetAllPortId_IsSingleFALSE) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);\r
-  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);\r
-  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);\r
-  pfc_bool_t is_single_logical_port1=true;\r
-  vector <string> logical_port_id1;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);\r
-  int ret = UPPL_RC_SUCCESS;\r
-  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,false);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, HandleOperStatus_GetOneRow_SUCCESS) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  vector<OperStatusHolder> refer;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, HandleOperStatus_SwitchID_Validation) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  v.logical_port.valid[kIdxLogicalPortSwitchId] = 1;\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  //string key_instance = "controller1";\r
-  unc_key_type_t key_type = UNC_KT_CONTROLLER;\r
-  uint8_t oper_status =7;\r
-  void* key_struct;\r
-  OperStatusHolder obj(key_type,key_struct,oper_status);\r
-  vector<OperStatusHolder> refer;\r
-  refer.push_back(obj);\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_STATE) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  \r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_STATE;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_INVALID) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_INVALID;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_CANDIDATE) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_CANDIDATE;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_RUNNING) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_RUNNING;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_STARTUP) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_STARTUP;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_IMPORT) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_IMPORT;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, GetPortOperStatus_DT_AUDIT) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  key_port_t obj_key_port;\r
-  memset(&obj_key_port, 0, sizeof(key_port_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));\r
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));\r
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));\r
-  uint8_t port_oper_status =1;\r
-  uint32_t data_type = UNC_DT_AUDIT;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, PerformRead_Option1_SUCCESS) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);\r
-\r
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, PerformRead_Option2_SUCCESS) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);\r
-\r
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, PerformRead_Datatype_SUCCESS) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);\r
-\r
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_RUNNING,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-\r
-TEST_F(KtClassTest, PerformRead_DB_SUCCESS) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);\r
-  rh.key_type = UNC_KT_PORT;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  ServerSession sess;\r
-  ServerSession::clearStubData();\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);\r
-  sess.stub_setAddOutput((uint32_t)1);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);\r
-  sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);\r
-  sess.stub_setAddOutput((uint32_t)0);\r
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);\r
-  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);\r
-\r
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_UPDATE,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, GetAllLogicalPort_LogicalPortNotAvailable) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);\r
-  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);\r
-  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);\r
-  string physicalportid = reinterpret_cast<char *> (PhyPortID);\r
-  vector<key_logical_port_t> vectLogicalPortKey;\r
-  vectLogicalPortKey.push_back(k);\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = UPPL_RC_SUCCESS;\r
-  ktlinkobj.GetAllLogicalPort(db_conn,controller_name1,domain_name1,switch_id1,physicalportid,vectLogicalPortKey,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, GetAllLogicalPort_DBSUCCESS) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);\r
-  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);\r
-  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);\r
-  string physicalportid = reinterpret_cast<char *> (PhyPortID);\r
-  vector<key_logical_port_t> vectLogicalPortKey;\r
-  vectLogicalPortKey.push_back(k);\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = UPPL_RC_SUCCESS;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  ktlinkobj.GetAllLogicalPort(db_conn,controller_name1,domain_name1,switch_id1,physicalportid,vectLogicalPortKey,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, ValidatePortType_LP_SWITCH_SUCCESS) {\r
-  uint8_t port_type = 1;//1 for UPPL_LP_SWITCH\r
-  Kt_LogicalPort ktlinkobj;\r
-  int ret = ktlinkobj.ValidatePortType(port_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ValidatePortType_LP_PHYSICALPORT_SUCCESS) {\r
-  uint8_t port_type = 2;//1 for UPPL_LP_PHYSICAL_PORT\r
-  Kt_LogicalPort ktlinkobj;\r
-  int ret = ktlinkobj.ValidatePortType(port_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ValidatePortType_LP_TRUNKPORT_SUCCESS) {\r
-  uint8_t port_type = 11;//1 for UPPL_LP_TRUNK_PORT\r
-  Kt_LogicalPort ktlinkobj;\r
-  int ret = ktlinkobj.ValidatePortType(port_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ValidatePortType_LP_SUBDOMAIN_SUCCESS) {\r
-  uint8_t port_type = 12;//1 for UPPL_LP_SUBDOMAIN\r
-  Kt_LogicalPort ktlinkobj;\r
-  int ret = ktlinkobj.ValidatePortType(port_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ValidatePortType_LP_TUNNEL_SUCCESS) {\r
-  uint8_t port_type = 13;//1 for UPPL_LP_TUNNEL_ENDPOINT\r
-  Kt_LogicalPort ktlinkobj;\r
-  int ret = ktlinkobj.ValidatePortType(port_type);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ValidatePortType_FAILL_FOR_UNKNOWNPORT) {\r
-  uint8_t port_type = 3;//1 for UNKNOWNPORT\r
-  Kt_LogicalPort ktlinkobj;\r
-  int ret = ktlinkobj.ValidatePortType(port_type);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct = 1;\r
-  int child_index = 1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, ReadBulk_DB_ACCESS_ERROR) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct = 2;\r
-  int child_index = 1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = new ReadRequest;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);\r
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, ReadBulkInternal_RecordNot_Found) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  uint32_t operation_type = UNC_OP_READ_BULK;\r
-  uint32_t max_rep_ct=1;\r
-  int child_index=-1;\r
-  pfc_bool_t parent_call=true;\r
-  pfc_bool_t is_read_next=true;\r
-  OdbcmConnectionHandler *db_conn = NULL;\r
-  ReadRequest *read_req = NULL;\r
-  vector<val_logical_port_st_t> vect_val_logical_port_st;\r
-  vector<key_logical_port_t> vect_logicalport_id;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);\r
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_logical_port_st, vect_logicalport_id);\r
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, PerformSyntaxValidation_ValStrutValidation_PortType_04) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.description,Desription,strlen(Desription));\r
-  uint8_t porttype = 3;\r
-  v.logical_port.port_type= porttype;\r
-  v.logical_port.valid[kIdxLogicalPortType]=1;\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-\r
-TEST_F(KtClassTest, PerformSyntaxValidation_ValStrutValidation_oper_down_criteria_05) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.description,Desription,strlen(Desription));\r
-  uint8_t operdowncriteria = 3;\r
-  v.logical_port.oper_down_criteria= operdowncriteria;\r
-  v.logical_port.valid[kIdxLogicalPortOperDownCriteria]=1;\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);\r
-}\r
-TEST_F(KtClassTest, PerformSyntaxValidation_ValStrutNULL) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t *v=NULL;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ReadInternal_max_rep_ct) {\r
-  key_logical_port_t *k=new key_logical_port_t;\r
-  vector<void *> vectVal_logicalport;\r
-  vector<void *> vectkey_logicalport;\r
-  vectkey_logicalport.push_back(k);\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.ReadInternal(db_conn,vectkey_logicalport,vectVal_logicalport,UNC_DT_STATE,UNC_OP_CREATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, ReadInternal_VAlStructNull) {\r
-  key_logical_port_t *k=new key_logical_port_t;\r
-  val_logical_port_st_t *v=new val_logical_port_st_t;\r
-  vector<void *> vectVal_logicalport;\r
-  vector<void *> vectkey_logicalport;\r
-  vectkey_logicalport.push_back(k);\r
-  vectVal_logicalport.push_back(v);\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_UPDATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.ReadInternal(db_conn,vectkey_logicalport,vectVal_logicalport,UNC_DT_STATE,UNC_OP_READ);\r
-  EXPECT_EQ(ret,ODBCM_RC_MORE_ROWS_FOUND);\r
-}\r
-TEST_F(KtClassTest, HandleOperStatus_NotSuccess) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  //string key_instance = "controller1";\r
-  unc_key_type_t key_type = UNC_KT_CONTROLLER;\r
-  uint8_t oper_status =0;\r
-  void* key_struct;\r
-  OperStatusHolder obj(key_type,key_struct,oper_status);\r
-  vector<OperStatusHolder> refer;\r
-  refer.push_back(obj);\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, HandleOperStatus_GetOneRow_FAILED) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  vector<OperStatusHolder> refer;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-TEST_F(KtClassTest, HandleOperStatus_GetOneRow_SUCCESS_CONTROLLERUP) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  string key_instance = "controller1";\r
-  unc_key_type_t key_type = UNC_KT_CONTROLLER;\r
-  uint8_t oper_status =7;\r
-  void* key_struct;\r
-  OperStatusHolder obj(key_type,key_struct,oper_status);\r
-  vector<OperStatusHolder> refer;\r
-  refer.push_back(obj);\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-TEST_F(KtClassTest, HandleOperDownCriteriaFromPortStatus_KEY_STRUCT_NULL) {\r
-  key_logical_port_t *k = NULL;\r
-  val_logical_port_st_t v;\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  pfc_bool_t is_delete_call = true;\r
-  vector<uint32_t> vectOperStatus;\r
-  int ret =  ktlinkobj.HandleOperDownCriteriaFromPortStatus(db_conn,UNC_DT_STATE,k,&v,vectOperStatus,is_delete_call);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);\r
-}\r
-TEST_F(KtClassTest, HandleOperDownCriteriaFromPortStatus_Key_struct_success) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  pfc_bool_t is_delete_call = true;\r
-  vector<uint32_t> vectOperStatus;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.HandleOperDownCriteriaFromPortStatus(db_conn,UNC_DT_STATE,&k,&v,vectOperStatus,is_delete_call);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-\r
-\r
-TEST_F(KtClassTest, GetOperDownCriteria_Success) {\r
-  key_logical_port_t k;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  uint32_t oper_down_criteria = 1;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);\r
-  int ret =  ktlinkobj.GetOperDownCriteria(db_conn,UNC_DT_STATE,&k,oper_down_criteria);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-  unc::uppl::ODBCManager::clearStubData();\r
-}\r
-/*TEST_F(KtClassTest, HandleOperStatus_KeyStruct_NULL_Handdle) {\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t v;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));\r
-  unc_key_type_t key_type_= UNC_KT_BOUNDARY;\r
-  string key_instance_ = "physical";\r
-  uint8_t oper_status_ = 1;\r
-  vector<OperStatusHolder> refer;\r
-  refer.push_back(key_type_);\r
-  refer.push_back(key_instance_);\r
-  refer.push_back(oper_status_);\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}*/\r
-#if 0\r
-TEST_F(KtClassTest, PerformSyntaxValidation_ValueStructureNullCheck_06) { //Null check properly not handle for value structure\r
-  key_logical_port_t k;\r
-  val_logical_port_st_t *v =NULL;\r
-  memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));\r
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));\r
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));\r
-  Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-  uint32_t operation = UNC_OP_CREATE;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);\r
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);\r
-}\r
-TEST_F(KtClassTest, DeleteKeyInstance_supported_01) { //Bug in  HandleOperDownCriteriaFromPortStatus(return statement not handle,code crash)\r
-   key_logical_port_t *k = NULL;\r
-  //memset(&k, 0, sizeof(key_logical_port_t));\r
-   Kt_LogicalPort ktlinkobj;\r
-  physical_request_header rh;\r
-  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);\r
-   OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);\r
-   EXPECT_EQ(ret, UPPL_RC_ERR_BAD_REQUEST);\r
-  }\r
-//Key-structure handle\r
-TEST_F(KtClassTest, HandleOperStatus_KeyStruct_NULL_Handdle) {\r
-  key_logical_port_t *k=NULL;\r
-  val_logical_port_st_t v;\r
-  //memset(&k, 0, sizeof(key_logical_port_t));\r
-  memset(&v, 0, sizeof(val_logical_port_st_t));\r
-  vector<OperStatusHolder> refer;\r
-  Kt_LogicalPort ktlinkobj;\r
-  OdbcmConnectionHandler *db_conn =NULL;\r
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,k,&v,refer,UNC_KT_LOGICAL_PORT);\r
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);\r
-}\r
-#endif\r
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <limits.h>
+#include <gtest/gtest.h>
+
+#include <pfcxx/ipc_client.hh>
+#include <pfc/ipc_struct.h>
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <arpa/inet.h>
+
+#include <time.h>
+#include <pfc/base.h>
+#include <pfc/ipc.h>
+#include <pfc/config.h>
+
+#include <pfc/conf.h>
+#include <pfc/log.h>
+#include <pfc/util.h>
+#include <pfc/event.h>
+#include <pfc/path.h>
+#include <pfc/hash.h>
+#include <pfc/thread.h>
+#include <pfc/refptr.h>
+#include <pfc/listmodel.h>
+#include <pfc/iostream.h>
+#include <pfc/ipc_client.h>
+#include <pfc/ipc_pfcd.h>
+#include <pfc/ipc_struct.h>
+#include <odbcm_mgr.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <itc_kt_logical_member_port.hh>
+#include <itc_kt_logicalport.hh>
+#include <ipct_util.hh>
+#include <itc_kt_logical_member_port.hh>
+#include <physicallayer.hh>
+#include "PhysicalLayerStub.hh"
+#include <tclib_module.hh>
+#include <itc_read_request.hh>
+#include "ut_util.hh"
+
+using namespace pfc;
+using namespace pfc::core;
+using namespace pfc::core::ipc;
+using namespace unc::uppl;
+using namespace unc::uppl::test;
+using namespace std;
+
+class LogicalPortTest
+  : public UpplTestEnv
+{
+};
+
+static void getReqHeader(physical_request_header& rh,
+                         unc_keytype_operation_t opern,
+                         unc_keytype_datatype_t dtype) {
+  rh.client_sess_id = 1;
+  rh.config_id = 1;
+  rh.operation = opern;
+  rh.max_rep_count = 0;
+  rh.option1 = 0;
+  rh.option2 = 0;
+  rh.data_type = dtype;
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+}
+
+// Can be changed based on testing need
+static char pkName1_ctr[] = "controller1";
+static char pkName1_domain[] = "controller1 domain name";
+static char pkName1_logicalport[] = "{0x00,0xa}";
+static char Desription[] = "create demo";
+static char SWitchID[] = "switch01";
+static char PhyPortID[] = "PhyPort01";
+static char controller_name[] = "Controller1";
+static char switch_id[] = "Switch1";
+static char phy_port_id[] = "port1";
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_ControllernameNotFound_01) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_DomainNameNotFound_02) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_PortIDNNotFound_03) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_SyntaxValidation_Success_04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_OptionalValPass_Success_05) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.description,Desription,strlen(Desription));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, IsKeyExists_01) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  vector<string> sw_vect_key_value;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+}
+
+TEST_F(LogicalPortTest, IsKeyExists_FailureIsrowexist02) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  vector<string> sw_vect_key_value;
+  sw_vect_key_value.push_back(pkName1_ctr);
+  sw_vect_key_value.push_back(pkName1_domain);
+  sw_vect_key_value.push_back(pkName1_logicalport);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, IsKeyExists_SuccessIsrowexist03) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  vector<string> sw_vect_key_value;
+  sw_vect_key_value.push_back(pkName1_ctr);
+  sw_vect_key_value.push_back(pkName1_domain);
+  sw_vect_key_value.push_back(pkName1_logicalport);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceExist_create01) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_create02) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_update03) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_UPDATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_delete04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_DELETE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_read03) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_READ;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_read_InstanceExist04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_READ;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_update_InstanceExist04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_UPDATE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_delete_InstanceExist04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  rh.key_type = UNC_KT_LOGICAL_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation = UNC_OP_DELETE;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForSTARTUP_01) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForCANDIDATE_01) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForRUNNING_01) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForAUDIT_01) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_AUDIT, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_Support_03) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_Support_04) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_Support_05) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_Support_06) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_001) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
+
+  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_002) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
+int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_003) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
+int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_RUNNING,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_004) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
+int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_GetOneRow_005) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
+int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_001) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  //getKeyForKtPort2(k);
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)1);
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_002) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  //getKeyForKtPort2(k);
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_003) {
+
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  //getKeyForKtPort2(k);
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_004) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_005) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_006) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, SetOperStatus_007) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)2);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulk_NotAllowOperation_01) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct=1;
+  int child_index=0;
+  pfc_bool_t parent_call=true;
+  pfc_bool_t is_read_next=true;
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulk_MaxCountZERO_02) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct=0;
+  int child_index=0;
+  pfc_bool_t parent_call=true;
+  pfc_bool_t is_read_next=true;
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulk_UPPL_RC_ERR_DB_GET_02) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct=1;
+  int child_index=-1;
+  pfc_bool_t parent_call=true;
+  pfc_bool_t is_read_next=true;
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulkInternal__SUCCESS01) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct=0;
+  OdbcmConnectionHandler *db_conn = NULL;
+  vector<val_logical_port_st_t> vect_val_logical_port_st;
+  vector<key_logical_port_t> vect_logicalport_id;
+  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_logical_port_st, vect_logicalport_id);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetLogicalPortValidFlag_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  val_logical_port_st_t val;
+  memset(&val, 0, sizeof(val));
+
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, GetLogicalPortValidFlag_UPPL_RC_ERR_DB_ACCESS) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  val_logical_port_st_t val;
+  memset(&val, 0, sizeof(val));
+
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetLogicalPortValidFlag_OtherThanSuccess) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  val_logical_port_st_t val;
+  memset(&val, 0, sizeof(val));
+
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_COMMON_LINK_FAILURE);
+  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+}
+
+TEST_F(LogicalPortTest, GetLogicalPortValidFlag_UPPL_RC_SUCCESS) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  val_logical_port_st_t val;
+  memset(&val, 0, sizeof(val));
+
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetOperStatusFromOperDownCriteria_DB_ERROR) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  UpplLogicalPortOperStatus new_oper_status = UPPL_LOGICAL_PORT_OPER_UNKNOWN;
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(db_conn,UNC_DT_STATE,&k,&v,new_oper_status);
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+}
+
+TEST_F(LogicalPortTest, GetOperStatusFromOperDownCriteria_DB_Success) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  UpplLogicalPortOperStatus new_oper_status = UPPL_LOGICAL_PORT_OPER_UNKNOWN;
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(db_conn,UNC_DT_STATE,&k,&v,new_oper_status);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, HandleDriverAlarms_AlaramOtherThanUNC_SUBDOMAIN_SPLIT) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  uint32_t alarm_type = UNC_FLOW_ENT_FULL;
+  uint32_t oper_type = UNC_OP_CREATE;
+  vector<void *> obj_key_struct;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+
+}
+
+//Unable to get current oper_status from db
+TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_01) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;
+  uint32_t oper_type = UNC_OP_CREATE;
+  vector<void *> obj_key_struct;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//operstatus new and old naot same
+TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_02) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;
+  uint32_t oper_type = UNC_OP_CREATE;
+  vector<void *> obj_key_struct;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+//Update oper_status
+TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_03) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;
+  uint32_t oper_type = UNC_OP_DELETE;
+  vector<void *> obj_key_struct;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+}
+
+TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  uint32_t alarm_type = UNC_SUBDOMAIN_SPLIT;
+  uint32_t oper_type = UNC_OP_UPDATE;
+  vector<void *> obj_key_struct;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+}
+
+TEST_F(LogicalPortTest, NotifyOperStatus_success) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  vector<OperStatusHolder> refer;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, NotifyOperStaus_valstructureNull) {
+  key_logical_port_t k;
+  val_logical_port_st_t *v=NULL;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  vector<OperStatusHolder> refer;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,v,refer);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetAllPortId_va) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
+  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
+  vector <string> logical_port_id1;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = UPPL_RC_SUCCESS;
+  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,true);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetAllPortId_GetSibling) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
+  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
+  vector <string> logical_port_id1;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);
+  int ret = UPPL_RC_SUCCESS;
+  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,true);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetAllPortId_IsSingleFALSE) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
+  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
+  vector <string> logical_port_id1;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);
+  int ret = UPPL_RC_SUCCESS;
+  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,false);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperStatus_GetOneRow_SUCCESS) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  vector<OperStatusHolder> refer;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperStatus_SwitchID_Validation) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  v.logical_port.valid[kIdxLogicalPortSwitchId] = 1;
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  //string key_instance = "controller1";
+
+  unc_key_type_t key_type = UNC_KT_CONTROLLER;
+  uint8_t oper_status = 7;
+  key_ctr_t ctrkey;
+  ctrkey = k.domain_key.ctr_key;
+  OperStatusHolder obj(key_type, &ctrkey, oper_status);
+  vector<OperStatusHolder> refer;
+  refer.push_back(obj);
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_STATE) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_STATE;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_INVALID) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_INVALID;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_CANDIDATE) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_CANDIDATE;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_RUNNING) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_RUNNING;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_STARTUP) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_STARTUP;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_IMPORT) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_IMPORT;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetPortOperStatus_DT_AUDIT) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  key_port_t obj_key_port;
+  memset(&obj_key_port, 0, sizeof(key_port_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
+  uint8_t port_oper_status =1;
+  uint32_t data_type = UNC_DT_AUDIT;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_Option1_SUCCESS) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
+
+  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_Option2_SUCCESS) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
+
+  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_Datatype_SUCCESS) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
+
+  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_RUNNING,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, PerformRead_DB_SUCCESS) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
+  rh.key_type = UNC_KT_PORT;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
+
+  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_UPDATE,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetAllLogicalPort_LogicalPortNotAvailable) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
+  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
+  string physicalportid = reinterpret_cast<char *> (PhyPortID);
+  vector<key_logical_port_t> vectLogicalPortKey;
+  vectLogicalPortKey.push_back(k);
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = UPPL_RC_SUCCESS;
+  ktlinkobj.GetAllLogicalPort(db_conn,controller_name1,domain_name1,switch_id1,physicalportid,vectLogicalPortKey,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetAllLogicalPort_DBSUCCESS) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
+  string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
+  string physicalportid = reinterpret_cast<char *> (PhyPortID);
+  vector<key_logical_port_t> vectLogicalPortKey;
+  vectLogicalPortKey.push_back(k);
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = UPPL_RC_SUCCESS;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  ktlinkobj.GetAllLogicalPort(db_conn,controller_name1,domain_name1,switch_id1,physicalportid,vectLogicalPortKey,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ValidatePortType_LP_SWITCH_SUCCESS) {
+  uint8_t port_type = 1;//1 for UPPL_LP_SWITCH
+  Kt_LogicalPort ktlinkobj;
+  int ret = ktlinkobj.ValidatePortType(port_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ValidatePortType_LP_PHYSICALPORT_SUCCESS) {
+  uint8_t port_type = 2;//1 for UPPL_LP_PHYSICAL_PORT
+  Kt_LogicalPort ktlinkobj;
+  int ret = ktlinkobj.ValidatePortType(port_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ValidatePortType_LP_TRUNKPORT_SUCCESS) {
+  uint8_t port_type = 11;//1 for UPPL_LP_TRUNK_PORT
+  Kt_LogicalPort ktlinkobj;
+  int ret = ktlinkobj.ValidatePortType(port_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ValidatePortType_LP_SUBDOMAIN_SUCCESS) {
+  uint8_t port_type = 12;//1 for UPPL_LP_SUBDOMAIN
+  Kt_LogicalPort ktlinkobj;
+  int ret = ktlinkobj.ValidatePortType(port_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ValidatePortType_LP_TUNNEL_SUCCESS) {
+  uint8_t port_type = 13;//1 for UPPL_LP_TUNNEL_ENDPOINT
+  Kt_LogicalPort ktlinkobj;
+  int ret = ktlinkobj.ValidatePortType(port_type);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ValidatePortType_FAILL_FOR_UNKNOWNPORT) {
+  uint8_t port_type = 3;//1 for UNKNOWNPORT
+  Kt_LogicalPort ktlinkobj;
+  int ret = ktlinkobj.ValidatePortType(port_type);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct = 1;
+  int child_index = 1;
+  pfc_bool_t parent_call=true;
+  pfc_bool_t is_read_next=true;
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulk_DB_ACCESS_ERROR) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct = 2;
+  int child_index = 1;
+  pfc_bool_t parent_call=true;
+  pfc_bool_t is_read_next=true;
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest read_req;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                               child_index, parent_call, is_read_next,
+                               &read_req);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ReadBulkInternal_RecordNot_Found) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  uint32_t max_rep_ct=1;
+  OdbcmConnectionHandler *db_conn = NULL;
+  vector<val_logical_port_st_t> vect_val_logical_port_st;
+  vector<key_logical_port_t> vect_logicalport_id;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_logical_port_st, vect_logicalport_id);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_ValStrutValidation_PortType_04) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.description,Desription,strlen(Desription));
+  uint8_t porttype = 3;
+  v.logical_port.port_type= porttype;
+  v.logical_port.valid[kIdxLogicalPortType]=1;
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_ValStrutValidation_oper_down_criteria_05) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.description,Desription,strlen(Desription));
+  uint8_t operdowncriteria = 3;
+  v.logical_port.oper_down_criteria= operdowncriteria;
+  v.logical_port.valid[kIdxLogicalPortOperDownCriteria]=1;
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+}
+
+TEST_F(LogicalPortTest, PerformSyntaxValidation_ValStrutNULL) {
+  key_logical_port_t k;
+  val_logical_port_st_t *v=NULL;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ReadInternal_max_rep_ct) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(k));
+  vector<void *> vectVal_logicalport;
+  vector<void *> vectkey_logicalport;
+  vectkey_logicalport.push_back(&k);
+
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.ReadInternal(db_conn,vectkey_logicalport,vectVal_logicalport,UNC_DT_STATE,UNC_OP_CREATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, ReadInternal_VAlStructNull) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+  vector<void *> vectVal_logicalport;
+  vector<void *> vectkey_logicalport;
+  vectkey_logicalport.push_back(&k);
+  vectVal_logicalport.push_back(&v);
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.ReadInternal(db_conn,vectkey_logicalport,vectVal_logicalport,UNC_DT_STATE,UNC_OP_READ);
+  EXPECT_EQ(ODBCM_RC_MORE_ROWS_FOUND, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperStatus_NotSuccess) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  //string key_instance = "controller1";
+  unc_key_type_t key_type = UNC_KT_CONTROLLER;
+  uint8_t oper_status =0;
+  key_ctr_t ctrkey;
+  ctrkey = k.domain_key.ctr_key;
+  OperStatusHolder obj(key_type, &ctrkey, oper_status);
+  vector<OperStatusHolder> refer;
+  refer.push_back(obj);
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperStatus_GetOneRow_FAILED) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  vector<OperStatusHolder> refer;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperStatus_GetOneRow_SUCCESS_CONTROLLERUP) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  string key_instance = "controller1";
+  unc_key_type_t key_type = UNC_KT_CONTROLLER;
+  uint8_t oper_status =7;
+  key_ctr_t ctrkey;
+  ctrkey = k.domain_key.ctr_key;
+  OperStatusHolder obj(key_type, &ctrkey, oper_status);
+  vector<OperStatusHolder> refer;
+  refer.push_back(obj);
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperDownCriteriaFromPortStatus_KEY_STRUCT_NULL) {
+  key_logical_port_t *k = NULL;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  pfc_bool_t is_delete_call = true;
+  vector<uint32_t> vectOperStatus;
+  int ret =  ktlinkobj.HandleOperDownCriteriaFromPortStatus(db_conn,UNC_DT_STATE,k,&v,vectOperStatus,is_delete_call);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+}
+
+TEST_F(LogicalPortTest, HandleOperDownCriteriaFromPortStatus_Key_struct_success) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  pfc_bool_t is_delete_call = true;
+  vector<uint32_t> vectOperStatus;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.HandleOperDownCriteriaFromPortStatus(db_conn,UNC_DT_STATE,&k,&v,vectOperStatus,is_delete_call);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, GetOperDownCriteria_Success) {
+  key_logical_port_t k;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  uint32_t oper_down_criteria = 1;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktlinkobj.GetOperDownCriteria(db_conn,UNC_DT_STATE,&k,oper_down_criteria);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+/*TEST_F(LogicalPortTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
+  key_logical_port_t k;
+  val_logical_port_st_t v;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  unc_key_type_t key_type_= UNC_KT_BOUNDARY;
+  string key_instance_ = "physical";
+  uint8_t oper_status_ = 1;
+  vector<OperStatusHolder> refer;
+  refer.push_back(key_type_);
+  refer.push_back(key_instance_);
+  refer.push_back(oper_status_);
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}*/
+#if 0
+TEST_F(LogicalPortTest, PerformSyntaxValidation_ValueStructureNullCheck_06) { //Null check properly not handle for value structure
+  key_logical_port_t k;
+  val_logical_port_st_t *v =NULL;
+  memset(&k, 0, sizeof(key_logical_port_t));
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+}
+
+TEST_F(LogicalPortTest, DeleteKeyInstance_supported_01) { //Bug in  HandleOperDownCriteriaFromPortStatus(return statement not handle,code crash)
+  key_logical_port_t *k = NULL;
+  //memset(&k, 0, sizeof(key_logical_port_t));
+  Kt_LogicalPort ktlinkobj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(db_conn, k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+}
+
+//Key-structure handle
+TEST_F(LogicalPortTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
+  key_logical_port_t *k=NULL;
+  val_logical_port_st_t v;
+  memset(&v, 0, sizeof(val_logical_port_st_t));
+  vector<OperStatusHolder> refer;
+  Kt_LogicalPort ktlinkobj;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,k,&v,refer,UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+}
+#endif
index 35718cdff3975f5977c16ef8984e23bf9e403346..28a4f7d6dfdd1ff351e1479bc8369f9e0369aea0 100644 (file)
 #
 
 ##
-## Makefile that run unit tests of UPPL module
+## Makefile that run the unit tests for UPPL.
 ##
 
-
-SRC_DIR = ../../../../modules
-
-CPPFLAGS  += 
-
-INCLUDE = -Iinclude \
-          -Istub/ODBC/ \
-          -Istub/ODBC/include \
-          -Istub/tclib_module \
-                                       -Istub/include \
-                                       -Istub/include/cxx \
-                                       -Istub/include/cxx/pfcxx \
-                                       -Istub/include/core_include \
-                                       -Istub \
-          -Istub/clstat \
-                                       -I$(SRC_DIR)/uppl \
-               -I$(SRC_DIR)/clstat \
-                                       -I$(SRC_DIR)/clstat/include \
-                                       -I$(SRC_DIR)/tclib/include \
-                                       -I$(SRC_DIR)../core/include \
-                                       -I$(SRC_DIR) \
-                                       -I$(SRC_DIR)/../dist/target/objs/include \
-                                       -I$(SRC_DIR)/../dist/target/objs/core_include \
-                                       -I$(SRC_DIR)/../dist/target/objs/core/include \
-                                       -I$(SRC_DIR)/../core/include \
-                                       -I$(SRC_DIR)/../core/include/cxx \
-                                       -I$(SRC_DIR)/../include/ \
-                                       -I$(SRC_DIR)/../include/unc \
-                                       -I$(SRC_DIR)/uppl/include \
-                                       -I$(SRC_DIR)/uppl \
-                                       -I$(SRC_DIR)/ \
-                                       -I$(SRC_DIR)/alarm/include \
-                                       -I$(SRC_DIR)/../test/modules/uppl/utest
-       
-CXXFLAGS +=  -g -fprofile-arcs -ftest-coverage -Dprivate=public        -Dprotected=public
-
-
-SOURCE_FILES = $(SRC_DIR)/uppl/physicallayer.cc \
-                                                        $(SRC_DIR)/uppl/phy_util.cc \
-                                                        $(SRC_DIR)/uppl/controller_version.cc \
-                                                        $(SRC_DIR)/uppl/unc_state_handler.cc \
-                                                        $(SRC_DIR)/uppl/ipct_util.cc \
-                                                        $(SRC_DIR)/uppl/physical_core.cc \
-                                                        $(SRC_DIR)/uppl/physical_itc.cc \
-                                                        $(SRC_DIR)/uppl/itc_configuration_request.cc \
-                                                        $(SRC_DIR)/uppl/itc_read_request.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_base.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_state_base.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_root.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_controller.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_ctr_domain.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_logicalport.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_logical_member_port.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_switch.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_port.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_link.cc \
-                                                        $(SRC_DIR)/uppl/itc_kt_boundary.cc \
-                                                        $(SRC_DIR)/uppl/itc_transaction_request.cc \
-                                                        $(SRC_DIR)/uppl/itc_import_request.cc \
-                                                        $(SRC_DIR)/uppl/itc_audit_request.cc \
-                                                        $(SRC_DIR)/uppl/itc_db_config.cc \
-                                                        $(SRC_DIR)/uppl/itc_state_change.cc \
-                                                        $(SRC_DIR)/uppl/ipc_connection_manager.cc \
-                                                        $(SRC_DIR)/uppl/ipc_client_logical_handler.cc \
-                                                        $(SRC_DIR)/uppl/ipc_server_handler.cc \
-                                                        $(SRC_DIR)/uppl/ipc_client_configuration_handler.cc \
-                                                        $(SRC_DIR)/uppl/physical_notification_manager.cc \
-                                                        $(SRC_DIR)/uppl/itc_notification_request.cc \
-               $(SRC_DIR)/uppl/odbcm_db_tableschema.cc \
-
-HEADER_FILES = $(SRC_DIR)/uppl/include/controller_version.hh \
-                                                        $(SRC_DIR)/uppl/include/ipc_client_configuration_handler.hh  \
-                                                        $(SRC_DIR)/uppl/include/ipc_client_logical_handler.hh  \
-                                                        $(SRC_DIR)/uppl/include/ipc_connection_manager.hh  \
-                                                        $(SRC_DIR)/uppl/include/ipc_server_handler.hh  \
-                                                        $(SRC_DIR)/uppl/include/ipct_util.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_audit_request.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_configuration_request.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_db_config.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_import_request.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_base.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_boundary.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_controller.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_ctr_domain.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_link.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_logical_member_port.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_logicalport.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_port.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_root.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_state_base.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_kt_switch.hh  \
-                                                        $(SRC_DIR)/uppl/include/tc_notification_request.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_read_request.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_state_change.hh  \
-                                                        $(SRC_DIR)/uppl/include/itc_transaction_request.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_common.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_connection.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_db_tableschema.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_db_varbind.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_mgr.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_query_factory.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_query_processor.hh  \
-                                                        $(SRC_DIR)/uppl/include/odbcm_utils.hh  \
-                                                        $(SRC_DIR)/uppl/include/physical_common_def.hh  \
-                                                        $(SRC_DIR)/uppl/include/physical_core.hh  \
-                                                        $(SRC_DIR)/uppl/include/physical_itc.hh  \
-                                                        $(SRC_DIR)/uppl/include/physical_itc_req.hh  \
-                                                        $(SRC_DIR)/uppl/include/physicallayer.hh  \
-                                                        $(SRC_DIR)/uppl/include/physical_notification_manager.hh  \
-                                                        $(SRC_DIR)/uppl/include/phy_util.hh  \
-                                                        $(SRC_DIR)/uppl/include/unc_state_handler.hh  \
-
-SRC_OBJS = $(patsubst $(SRC_DIR)/uppl/%.cc,$(OBJSDIR)/uppl/%.o,$(SOURCE_FILES))
-
-
-UNITTEST_FILES = Domain_ut.cc KtPort.cc KtLogicalMemberPort_ut.cc KtLogicalPort_ut.cc ut_switch.cc Controller_ut.cc KtLink_ut.cc Boundary_ut.cc
-STUB_FILE = PhysicalLayerStub.cc 
-
-OBJSDIR = objs
-
-UT_OBJS_DIR = objs/utest
-
-UT_EXE_LIST = KtPort KtLogicalMemberPort_ut KtLogicalPort_ut UTDomain ut_switch UTController KtLink_ut Boundary_ut
-
-LD_LIBRARY_PATH = $(SRC_DIR)/../dist/target/objs/ldlibs
-export LD_LIBRARY_PATH
-
-UT_LIBS = -L$(SRC_DIR)/../dist/target/objs/ldlibs -lpthread -lpfc_util -lpfc -lpfcxx -lgtest_main $(UT_OBJS_DIR)/uppl_ut.a ./stub/stub_objs/stub.a -lgcov
-
-createupplobjs:
-       mkdir -p $(OBJSDIR)/uppl
-
-createutestobjs:
-       mkdir -p $(OBJSDIR)/utest
-.NOTPARALLEL: createupplobjs createutestobjs stub uppl_lib ut_exe
-all  : createupplobjs createutestobjs stub uppl_lib ut_exe
-test : 
-                       ./KtPort 
-                       ./KtLogicalMemberPort_ut 
-                       ./KtLogicalPort_ut 
-                       ./UTDomain
-                       ./ut_switch
-                       ./UTController
-                       ./KtLink_ut
-                       ./Boundary_ut
-clean :
-       @(cd $(OBJSDIR)/utest/;  rm -f uppl_ut.a *.o *.gcno *.gcov *.gcda);
-       @(cd $(OBJSDIR)/uppl/;  rm -f *.o *.gcno *.gcov *.gcda);
-       @(cd ./stub/; $(MAKE) clean);
-       rm -f $(UT_EXE_LIST) *.gcov
-
-
-UT_OBJS = $(patsubst %.cc,$(OBJSDIR)/utest/%.o,$(UNITTEST_FILES))
-
-STUB_OBJ = $(patsubst %.cc,$(OBJSDIR)/utest/%.o,$(STUB_FILE))
-
-$(SRC_OBJS):$(OBJSDIR)/uppl/%.o : $(SRC_DIR)/uppl/%.cc
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-$(UT_OBJS):$(OBJSDIR)/utest/%.o : %.cc
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-$(STUB_OBJ):$(OBJSDIR)/utest/%.o : %.cc
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-stub:
-       @echo "****** Invoking stub makefile"
-       @($(MAKE) -C ./stub all );
-
-.PHONY: stub uppl_lib
-
-uppl_lib : $(UT_OBJS_DIR)/uppl_ut.a
-
-$(UT_OBJS_DIR)/uppl_ut.a : $(SRC_OBJS) $(STUB_OBJ)
-               $(AR) $(ARFLAGS) $@ $^
-
-compile_ut:$(UT_OBJS)
-
-ut_exe : $(UT_EXE_LIST)
-
-UTDomain : $(UT_OBJS_DIR)/Domain_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-KtPort : $(UT_OBJS_DIR)/KtPort.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-KtLogicalMemberPort_ut : $(UT_OBJS_DIR)/KtLogicalMemberPort_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-KtLogicalPort_ut : $(UT_OBJS_DIR)/KtLogicalPort_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-ut_switch : $(UT_OBJS_DIR)/ut_switch.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-UTController : $(UT_OBJS_DIR)/Controller_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-KtLink_ut : $(UT_OBJS_DIR)/KtLink_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
-
-Boundary_ut : $(UT_OBJS_DIR)/Boundary_ut.o
-       $(CXX) $^ -o $@ $(UT_LIBS)
+GTEST_SRCROOT  := ../../../..
+include ../../defs.mk
+
+EXEC_NAME      :=  uppl_ut
+
+MODULE_SRCROOT = $(GTEST_SRCROOT)/modules
+
+ODBC_STUBDIR   = stub/ODBC
+CLSTAT_STUBDIR = stub/clstat
+TCLIB_STUBDIR  = stub/tclib_module
+MISC_STUBDIR   = stub/misc
+
+UPPL_SRCDIR    = $(MODULE_SRCROOT)/uppl
+TCLIB_SRCDIR   = $(MODULE_SRCROOT)/tclib
+ALARM_SRCDIR   = $(MODULE_SRCROOT)/alarm
+
+# Define a list of directories that contain source files.
+ALT_SRCDIRS    = $(UPPL_SRCDIR) $(ODBC_STUBDIR) $(TCLIB_STUBDIR)
+ALT_SRCDIRS    += $(MISC_STUBDIR)
+
+UT_INCDIRS_PREP                = stub/include stub/include/core_include
+UT_INCDIRS_PREP                += $(CLSTAT_STUBDIR)
+
+UTXX_INCDIRS_PREP      = $(TCLIB_STUBDIR)
+UTXX_INCDIRS_PREP      += $(ODBC_STUBDIR)/include
+
+EXTRA_CXX_INCDIRS      = $(MODULE_SRCROOT)
+EXTRA_CXX_INCDIRS      += $(UPPL_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(TCLIB_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(ALARM_SRCDIR)/include
+
+CPPFLAGS       += -include ut_stub.h
+
+# Define a list of cfdef files to be compiled.
+ALT_CFDEF_FILES        = $(UPPL_SRCDIR)/uppl_ctr_capability.cfdef
+
+UPPL_SOURCES   = controller_version.cc 
+UPPL_SOURCES   += ipc_client_configuration_handler.cc 
+UPPL_SOURCES   += ipc_client_logical_handler.cc 
+UPPL_SOURCES   += ipc_connection_manager.cc 
+UPPL_SOURCES   += ipc_server_handler.cc 
+UPPL_SOURCES   += ipct_util.cc 
+UPPL_SOURCES   += itc_audit_request.cc 
+UPPL_SOURCES   += itc_configuration_request.cc 
+UPPL_SOURCES   += itc_db_config.cc 
+UPPL_SOURCES   += itc_import_request.cc 
+UPPL_SOURCES   += itc_kt_base.cc 
+UPPL_SOURCES   += itc_kt_boundary.cc 
+UPPL_SOURCES   += itc_kt_controller.cc 
+UPPL_SOURCES   += itc_kt_ctr_domain.cc 
+UPPL_SOURCES   += itc_kt_link.cc 
+UPPL_SOURCES   += itc_kt_logical_member_port.cc 
+UPPL_SOURCES   += itc_kt_logicalport.cc 
+UPPL_SOURCES   += itc_kt_port.cc 
+UPPL_SOURCES   += itc_kt_root.cc 
+UPPL_SOURCES   += itc_kt_state_base.cc 
+UPPL_SOURCES   += itc_kt_switch.cc 
+UPPL_SOURCES   += itc_notification_request.cc 
+UPPL_SOURCES   += itc_read_request.cc 
+UPPL_SOURCES   += itc_state_change.cc 
+UPPL_SOURCES   += itc_transaction_request.cc 
+UPPL_SOURCES   += odbcm_db_tableschema.cc
+UPPL_SOURCES   += phy_util.cc 
+UPPL_SOURCES   += physical_core.cc 
+UPPL_SOURCES   += physical_itc.cc 
+UPPL_SOURCES   += physical_notification_manager.cc 
+UPPL_SOURCES   += unc_state_handler.cc 
+UPPL_SOURCES   += physicallayer.cc
+
+ODBC_SOURCES   = odbcm_mgr_stub.cc odbcm_utils_stub.cc
+TCLIB_SOURCES  = tclib_module.cc
+MISC_SOURCES   = alarm.cc ipc_client.cc ipc_server.cc module.cc
+
+UT_SOURCES     = Boundary_ut.cc
+UT_SOURCES     += Controller_ut.cc
+UT_SOURCES     += Domain_ut.cc
+UT_SOURCES     += Link_ut.cc
+UT_SOURCES     += LogicalMemberPort_ut.cc
+UT_SOURCES     += LogicalPort_ut.cc
+UT_SOURCES     += Port_ut.cc
+UT_SOURCES     += Switch_ut.cc
+
+CXX_SOURCES    += $(UT_SOURCES) PhysicalLayerStub.cc util.cc
+CXX_SOURCES    += $(UPPL_SOURCES) $(ODBC_SOURCES) $(TCLIB_SOURCES)
+CXX_SOURCES    += $(MISC_SOURCES)
+
+EXTRA_CXXFLAGS += -fprofile-arcs -ftest-coverage
+EXTRA_CXXFLAGS += -Dprivate=public -Dprotected=public
+
+UNC_LIBS       = libpfc_util libpfc libpfc_ipcsrv libpfc_ipcclnt
+UNC_LIBS       += libpfcxx libpfcxx_ipcsrv libpfcxx_ipcclnt
+EXTRA_LDLIBS   += -lgcov
+
+include ../../rules.mk
index 88b3cf37f9f86419def9837c3f8519ffe897d577..ae6ed595ccd3a5e1a3eb643e154deac05cd28884 100644 (file)
@@ -7,19 +7,27 @@
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
+#include <gtest/gtest.h>
 #include "PhysicalLayerStub.hh"
+
 using namespace unc::uppl;
-void PhysicalLayerStub :: loadphysicallayer() {
+using namespace pfc::core;
 
-   pfc_modattr_t* modattr;
-   PhysicalLayer = new unc::uppl::PhysicalLayer(modattr);
-}
+static PhysicalLayer  theInstance(NULL);
+static bool initialized = false;
 
-IPCConnectionManager* PhysicalLayerStub::get_ipc_connection_manager() {
-  return new IPCConnectionManager;
+void
+PhysicalLayerStub::loadphysicallayer()
+{
+  Module::physical = &theInstance;
+  if (!initialized) {
+    initialized = true;
+    ASSERT_TRUE(theInstance.init());
+  }
 }
 
-void PhysicalLayerStub :: unloadphysicallayer() {
-
-   PhysicalLayer = NULL;
+void
+PhysicalLayerStub::unloadphysicallayer()
+{
+  Module::physical = NULL;
 }
index dbf13fae003095179f1cee7b1e9ac07934aa568c..353f9ab207e1386a1d6c53aef1fcfe9894b315af 100644 (file)
 #include <pfcxx/ipc_server.hh>
 #include <pfcxx/ipc_client.hh>
 #include <pfcxx/synch.hh>
-#include "physicallayer.hh"
-class PhysicalLayerStub : public pfc::core::Module {
+#include <physicallayer.hh>
 
+class PhysicalLayerStub : public pfc::core::Module {
 public:
-
-static void loadphysicallayer();
-static void unloadphysicallayer();
-IPCConnectionManager* get_ipc_connection_manager();
+  static void loadphysicallayer();
+  static void unloadphysicallayer();
 };
+
 #endif
similarity index 67%
rename from coordinator/test/modules/uppl/utest/KtPort.cc
rename to coordinator/test/modules/uppl/utest/Port_ut.cc
index e6750a4522eb54affcb7f5a67fce67ac4a32e5ed..3aea7d98ab66c15c69737bf9f0a2db63b174378c 100644 (file)
@@ -1,12 +1,11 @@
- /*
-  * Copyright (c) 2012-2013 NEC Corporation
-  * All rights reserved.
-
-  * This program and the accompanying materials are made available under the
-  * terms of the Eclipse Publc License v1.0 which accompanies this
-  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-  */
-
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Publc License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #include <limits.h>
 #include <gtest/gtest.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
 #include <pfc/ipc_struct.h>
-#include "stub/ODBC/include/odbcm_mgr.hh"
-#include "physical_common_def.hh"
-#include "unc/uppl_common.h"
-#include "unc/keytype.h"
-#include "itc_kt_base.hh"
-#include "itc_kt_root.hh"
-#include "itc_kt_controller.hh"
-#include "itc_kt_port.hh"
-#include "itc_kt_switch.hh"
-#include "itc_kt_link.hh"
-#include "itc_kt_boundary.hh"
-#include "ipct_util.hh"
-#include "itc_kt_state_base.hh"
-#include "itc_kt_logicalport.hh"
-#include "itc_read_request.hh"
-#include "physicallayer.hh"
+#include <odbcm_mgr.hh>
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <ipct_util.hh>
+#include <itc_kt_state_base.hh>
+#include <itc_kt_logicalport.hh>
+#include <itc_read_request.hh>
+#include <physicallayer.hh>
 #include "PhysicalLayerStub.hh"
-#include "tclib_module.hh"
+#include <tclib_module.hh>
+#include "ut_util.hh"
 
 using namespace pfc;
 using namespace pfc::core;
 using namespace pfc::core::ipc;
 using namespace std;
 using namespace unc::tclib;
+using namespace unc::uppl::test;
 
-
-ClientSession *cli_sess = NULL;
-ClientSession *cli_sess_notify = NULL;
-pfc_ipcid_t service = UPPL_SVC_CONFIGREQ;
-class KtClassTest : public testing::Test {
-protected:
-  virtual void SetUp() {
-    if (cli_sess == NULL) {
-      pfc_ipcconn_t connp = 0;
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);
-
-      err = pfc_ipcclnt_altopen("phynwd", &connp);
-
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-      cli_sess_notify = new ClientSession(connp, "sample2", service, err);
-      PhysicalLayerStub::loadphysicallayer();
-      unc::tclib::TcLibModule::stub_loadtcLibModule();
-    } else {
-      cli_sess->reset(UPPL_IPC_SVC_NAME, service);
-    }
-  }
-  virtual void TearDown() {
-    if (cli_sess != NULL) {
-      cli_sess->cancel();
-      delete cli_sess;
-      cli_sess = NULL;
-    }
-    if (cli_sess_notify != NULL) {
-      cli_sess_notify->cancel();
-      delete cli_sess_notify;
-      cli_sess_notify = NULL;
-    }
-  }
+class PortTest
+  : public UpplTestEnv
+{
 };
 
 // Can be changed based on testing need
-char pkName1_ctr[] = "Controller1";
-char pkName1_swtch[] = "0000-0000-0000-0001";
-char pkName1_port[] = "ethernet:1";
-char pkName2_ctr[] = "controller2";
-char pkName2_swtch[] = "switch id2";
-char pkName2_port[] = "port2";
-char pkName3_ctr[] = "Controller3";
-char pkName3_swtch[] = "Switch id3";
-char pkName3_port[] = "Port3";
-char pkName4_ctr[] = "";
-char pkName4_swtch[] = "";
-char pkName4_port[] = "";
-char pkName5_ctr[] = "NotExisting";
-char pkName5_swtch[] = "NotExisting";
-char pkName5_port[] = "NotExisting";
-
-void getKeyForKtPort1(key_port_t& k) {
-  memset(k.sw_key.ctr_key.controller_name, '\0', 32);
-  memcpy(k.sw_key.ctr_key.controller_name, pkName1_ctr, strlen(pkName1_ctr));
+static char pkName1_ctr[] = "Controller1";
+static char pkName1_swtch[] = "0000-0000-0000-0001";
+static char pkName1_port[] = "ethernet:1";
 
-  memset(k.sw_key.switch_id, '\0', 256);
+static void getKeyForKtPort1(key_port_t& k) {
+  memset(&k, 0, sizeof(k));
+  memcpy(k.sw_key.ctr_key.controller_name, pkName1_ctr, strlen(pkName1_ctr));
   memcpy(k.sw_key.switch_id, pkName1_swtch, strlen(pkName1_swtch));
-
-  memset(k.port_id, '\0', 32);
   memcpy(k.port_id, pkName1_port, strlen(pkName1_port));
 }
 
-void getKeyForKtPort2(key_port_t *k) {
-  memset(k->sw_key.ctr_key.controller_name, '\0', 32);
-  memcpy(k->sw_key.ctr_key.controller_name, pkName2_ctr, strlen(pkName2_ctr));
-
-  memset(k->sw_key.switch_id, '\0', 256);
-  memcpy(k->sw_key.switch_id, pkName2_swtch, strlen(pkName2_swtch));
-
-  memset(k->port_id, '\0', 32);
-  memcpy(k->port_id, pkName2_port, strlen(pkName2_port));
-}
-
-void getValForKtPort1(val_port_st_t& v) {
+static void getValForKtPort1(val_port_st_t& v) {
+  memset(&v, 0, sizeof(v));
   v.port.port_number = 223;
-  memset(v.port.description, '\0', 128);
   memcpy(v.port.description, "port description",
          strlen("port description"));  //  uint8_t description[128];
   v.port.admin_status = 1;  //  uint8_t admin_status
@@ -145,96 +89,82 @@ void getValForKtPort1(val_port_st_t& v) {
   v.port.trunk_allowed_vlan = 1;  //  uint16_t trunk_allowed_vlan
   v.oper_status = 1;
   v.direction = 1;
-  memset(v.mac_address, '\0', 6);
   memcpy(v.mac_address, "port macAddr", strlen("port macAddr"));
   v.duplex = 1;
   v.speed = 1;
   v.alarms_status = 1;
-  memset(v.logical_port_id, '\0', 320);
   memcpy(v.logical_port_id, "port logical_port_id",
          strlen("port logical_port_id"));
 }
 
 /* PerformSyntaxValidation when controller name is not given*/
-TEST_F(KtClassTest, PerformSyntaxValidation_No_CtrName_01) {
+TEST_F(PortTest, PerformSyntaxValidation_No_CtrName_01) {
 
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
   memset(k.sw_key.ctr_key.controller_name, '\0', 32);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
-  unc::uppl::ODBCManager::clearStubData();
-
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /* PerformSyntaxValidation when switch id is not given*/
-TEST_F(KtClassTest, PerformSyntaxValidation_No_SwitchId_02) {
+TEST_F(PortTest, PerformSyntaxValidation_No_SwitchId_02) {
 
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
   memset(k.sw_key.switch_id, '\0', 256);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /* PerformSyntaxValidation when Port id is not given */
-TEST_F(KtClassTest, PerformSyntaxValidation_No_PortId_03) {
+TEST_F(PortTest, PerformSyntaxValidation_No_PortId_03) {
 
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
   memset(k.port_id, '\0', 32);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /* PerformSyntaxValidation for positive case */
-TEST_F(KtClassTest, PerformSyntaxValidation_Pos_04) {
-
+TEST_F(PortTest, PerformSyntaxValidation_Pos_04) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* PerformSemanticValidation when row already exists */
-TEST_F(KtClassTest, PerformSemanticValidation_Create_Neg_01) {
+TEST_F(PortTest, PerformSemanticValidation_Create_Neg_01) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -245,18 +175,17 @@ TEST_F(KtClassTest, PerformSemanticValidation_Create_Neg_01) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_ERR_INSTANCE_EXISTS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 /* PerformSemanticValidation when DB Connection error occurs for UPDATE */
-TEST_F(KtClassTest, PerformSemanticValidation_update_neg_02) {
+TEST_F(PortTest, PerformSemanticValidation_update_neg_02) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -267,18 +196,17 @@ TEST_F(KtClassTest, PerformSemanticValidation_update_neg_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* PerformSemanticValidation when DB error occurs for DELETE */
-TEST_F(KtClassTest, PerformSemanticValidation_del_neg_03) {
+TEST_F(PortTest, PerformSemanticValidation_del_neg_03) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -289,18 +217,16 @@ TEST_F(KtClassTest, PerformSemanticValidation_del_neg_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* PerformSemanticValidation when creating a row */
-TEST_F(KtClassTest, PerformSemanticValidation_Create_pos_04) {
+TEST_F(PortTest, PerformSemanticValidation_Create_pos_04) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -311,18 +237,16 @@ TEST_F(KtClassTest, PerformSemanticValidation_Create_pos_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 /* PerformSemanticValidation when DB Connection error occurs for READ */
-TEST_F(KtClassTest, PerformSemanticValidation_Read_neg_05) {
+TEST_F(PortTest, PerformSemanticValidation_Read_neg_05) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_READ;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -333,18 +257,16 @@ TEST_F(KtClassTest, PerformSemanticValidation_Read_neg_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* PerformSemanticValidation when Updating row successfully */
-TEST_F(KtClassTest, PerformSemanticValidation_update_pos_06) {
+TEST_F(PortTest, PerformSemanticValidation_update_pos_06) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -355,18 +277,16 @@ TEST_F(KtClassTest, PerformSemanticValidation_update_pos_06) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* PerformSemanticValidation when Deleting row successfully */
-TEST_F(KtClassTest, PerformSemanticValidation_del_pos_07) {
+TEST_F(PortTest, PerformSemanticValidation_del_pos_07) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -377,19 +297,17 @@ TEST_F(KtClassTest, PerformSemanticValidation_del_pos_07) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 
 /* PerformSemanticValidation when Reading a row successfully */
-TEST_F(KtClassTest, PerformSemanticValidation_read_pos_08) {
+TEST_F(PortTest, PerformSemanticValidation_read_pos_08) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_READ;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -400,18 +318,16 @@ TEST_F(KtClassTest, PerformSemanticValidation_read_pos_08) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(ret, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
 /* PerformSemanticValidation for IMPORT */
-TEST_F(KtClassTest, PerformSemanticValidation_Create_Import_neg_09) {
+TEST_F(PortTest, PerformSemanticValidation_Create_Import_neg_09) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
@@ -422,13 +338,11 @@ TEST_F(KtClassTest, PerformSemanticValidation_Create_Import_neg_09) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
   int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_IMPORT);
 
-  EXPECT_EQ(ret, UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 /* HandleOperStatus when no key struct is given */
-TEST_F(KtClassTest, HandleOperStatus_NoKeyStruct_01) {
-
+TEST_F(PortTest, HandleOperStatus_NoKeyStruct_01) {
   key_port_t *k;
   val_port_st *v;
   Kt_Port ktportobj;
@@ -437,197 +351,174 @@ TEST_F(KtClassTest, HandleOperStatus_NoKeyStruct_01) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,k,v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 /* HandleOperStatus when GetOneRow fails */
-TEST_F(KtClassTest, HandleOperStatus_GetOneRow_Fail_02) {
-
+TEST_F(PortTest, HandleOperStatus_GetOneRow_Fail_02) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /* HandleOperStatus when GetOneRow is success */
-TEST_F(KtClassTest, HandleOperStatus_GetOneRow_pos_03) {
-
+TEST_F(PortTest, HandleOperStatus_GetOneRow_pos_03) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /* HandleOperStatus when GetBulkRows fail */
-TEST_F(KtClassTest, HandleOperStatus_GetBulkRows_Fail_04) {
-
+TEST_F(PortTest, HandleOperStatus_GetBulkRows_Fail_04) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  unc::uppl::ODBCManager::clearStubData();
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /* HandleOperStatus when GetBulkRows is success */
-TEST_F(KtClassTest, HandleOperStatus_GetBulkRows_pos_05) {
-
+TEST_F(PortTest, HandleOperStatus_GetBulkRows_pos_05) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  unc::uppl::ODBCManager::clearStubData();
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW fails*/
-TEST_F(KtClassTest, SetOperStatus_DbNeg_01) {
+TEST_F(PortTest, SetOperStatus_DbNeg_01) {
   key_port_t k;
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW fails*/
-TEST_F(KtClassTest, SetOperStatus_DbNeg_02) {
-
+TEST_F(PortTest, SetOperStatus_DbNeg_02) {
   key_port_t k;
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW is SUCCESS*/
-TEST_F(KtClassTest, SetOperStatus_Db_Pos_03) {
-
+TEST_F(PortTest, SetOperStatus_Db_Pos_03) {
   key_port_t k;
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW is SUCCESS and GETONEROW fails*/
-TEST_F(KtClassTest, SetOperStatus_Pos_04) {
-
+TEST_F(PortTest, SetOperStatus_Pos_04) {
   key_port_t k;
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW and GETONEROW is SUCCESS and addOutput err value is 0*/
-TEST_F(KtClassTest, SetOperStatus_Pos_05) {
-  unc::tclib::TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER, TC_API_COMMON_SUCCESS);
-  unc::uppl::PhysicalLayer *physical_layer = unc::uppl::PhysicalLayer::get_instance();
-  physical_layer->init();
+TEST_F(PortTest, SetOperStatus_Pos_05) {
   key_port_t k;
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW and GETONEROW is SUCCESS and addOutput err value is 0*/
-TEST_F(KtClassTest, SetOperStatus_Pos_06) {
+TEST_F(PortTest, SetOperStatus_Pos_06) {
   key_port_t k;
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   
-  unc::uppl::ODBCManager::clearStubData();
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* FrameValidValue when string is more than 48 characters */
-TEST_F(KtClassTest, FrameValidValue_01) {
-
-  key_port_t k;
+TEST_F(PortTest, FrameValidValue_01) {
   val_port_st v;
+  memset(&v, 0xff, sizeof(v));
+
+  string abd("01231234567");
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
-  getKeyForKtPort1(k);
-  getValForKtPort1(v);
-  string abd="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   ktportobj.FrameValidValue(abd,v);
-  int ret = UPPL_RC_SUCCESS;
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+
+  for (uint32_t i(0); i < PFC_ARRAY_CAPACITY(v.port.valid); i++) {
+    ASSERT_EQ(i, v.port.valid[i]);
+  }
+
+  for (uint8_t i(1); i < PFC_ARRAY_CAPACITY(v.valid); i++) {
+    ASSERT_EQ(i, v.valid[i]);
+  }
 }
 
 /*PerformRead with negative option1 */
-TEST_F(KtClassTest, PerformRead_Neg_Option1_01) {
+TEST_F(PortTest, PerformRead_Neg_Option1_01) {
   key_port_t k;
   val_port_st_t v;
   memset(v.valid, '\0', sizeof(v.valid));
@@ -635,7 +526,6 @@ TEST_F(KtClassTest, PerformRead_Neg_Option1_01) {
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -647,12 +537,11 @@ TEST_F(KtClassTest, PerformRead_Neg_Option1_01) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with negative option1 */
-TEST_F(KtClassTest, PerformRead_Neg_Option1_02) {
+TEST_F(PortTest, PerformRead_Neg_Option1_02) {
   key_port_t k;
   val_port_st_t v;
   memset(v.valid, '\0', sizeof(v.valid));
@@ -660,7 +549,6 @@ TEST_F(KtClassTest, PerformRead_Neg_Option1_02) {
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -672,22 +560,20 @@ TEST_F(KtClassTest, PerformRead_Neg_Option1_02) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*PerformRead with unsupported datatype */
-TEST_F(KtClassTest, PerformRead_unsupported_datatype_03) {
+TEST_F(PortTest, PerformRead_unsupported_datatype_03) {
   key_port_t k ;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
-  Kt_Port ktportobj;
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
   getValForKtPort1(v);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -699,12 +585,11 @@ TEST_F(KtClassTest, PerformRead_unsupported_datatype_03) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with negative option2 */
-TEST_F(KtClassTest, PerformRead_neg_Option2_04) {
+TEST_F(PortTest, PerformRead_neg_Option2_04) {
   key_port_t k;
   val_port_st_t v;
   memset(v.valid, '\0', sizeof(v.valid));
@@ -712,7 +597,6 @@ TEST_F(KtClassTest, PerformRead_neg_Option2_04) {
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -724,12 +608,11 @@ TEST_F(KtClassTest, PerformRead_neg_Option2_04) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with negative option2 */
-TEST_F(KtClassTest, PerformRead_neg_Option2_05) {
+TEST_F(PortTest, PerformRead_neg_Option2_05) {
   key_port_t k;
   val_port_st_t v;
   memset(v.valid, '\0', sizeof(v.valid));
@@ -737,7 +620,6 @@ TEST_F(KtClassTest, PerformRead_neg_Option2_05) {
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -749,20 +631,19 @@ TEST_F(KtClassTest, PerformRead_neg_Option2_05) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option1 */
-TEST_F(KtClassTest, PerformRead_POS_Option2_06) {
+TEST_F(PortTest, PerformRead_POS_Option2_06) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -774,21 +655,20 @@ TEST_F(KtClassTest, PerformRead_POS_Option2_06) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with positive option2 */
-TEST_F(KtClassTest, PerformRead_POS_Option2_07) {
+TEST_F(PortTest, PerformRead_POS_Option2_07) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -800,21 +680,20 @@ TEST_F(KtClassTest, PerformRead_POS_Option2_07) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option2 */
-TEST_F(KtClassTest, PerformRead_POS_Option2_08) {
+TEST_F(PortTest, PerformRead_POS_Option2_08) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -826,20 +705,19 @@ TEST_F(KtClassTest, PerformRead_POS_Option2_08) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*PerformRead with option2 as Neighbor */
-TEST_F(KtClassTest, PerformRead_Neighbor_09) {
+TEST_F(PortTest, PerformRead_Neighbor_09) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -851,21 +729,20 @@ TEST_F(KtClassTest, PerformRead_Neighbor_09) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with positive option2 Neighbor */
-TEST_F(KtClassTest, PerformRead_Neighbor_10) {
+TEST_F(PortTest, PerformRead_Neighbor_10) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -877,21 +754,20 @@ TEST_F(KtClassTest, PerformRead_Neighbor_10) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option2 Neighbor*/
-TEST_F(KtClassTest, PerformRead_Neighbor_11) {
+TEST_F(PortTest, PerformRead_Neighbor_11) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -903,20 +779,20 @@ TEST_F(KtClassTest, PerformRead_Neighbor_11) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
+
 /*PerformRead with positive option2 Neighbor*/
-TEST_F(KtClassTest, PerformRead_Neighbor_12) {
+TEST_F(PortTest, PerformRead_Neighbor_12) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -926,19 +802,19 @@ TEST_F(KtClassTest, PerformRead_Neighbor_12) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 /*PerformRead with Invalid operation */
-TEST_F(KtClassTest, PerformRead_Invalid_operation_13) {
+TEST_F(PortTest, PerformRead_Invalid_operation_13) {
   key_port_t k;
   val_port_st_t v;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -950,179 +826,158 @@ TEST_F(KtClassTest, PerformRead_Invalid_operation_13) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
   int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype CANDIDATE */
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForCANDIDATE_01) {
+TEST_F(PortTest, DeleteKeyInstance_UnsupportedForCANDIDATE_01) {
 
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  OdbcmConnectionHandler *db_conn =NULL;
 
+  Kt_Port ktportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_CANDIDATE,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype RUNNING */
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForRUNNING_02) {
+TEST_F(PortTest, DeleteKeyInstance_UnsupportedForRUNNING_02) {
 
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  OdbcmConnectionHandler *db_conn =NULL;
 
+  Kt_Port ktportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_RUNNING,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype STARTUP */
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForSTARTUP_03) {
+TEST_F(PortTest, DeleteKeyInstance_UnsupportedForSTARTUP_03) {
 
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  OdbcmConnectionHandler *db_conn =NULL;
 
+  Kt_Port ktportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STARTUP,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype AUDIT */
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedForAUDIT_04) {
+TEST_F(PortTest, DeleteKeyInstance_UnsupportedForAUDIT_04) {
 
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  OdbcmConnectionHandler *db_conn =NULL;
 
+  Kt_Port ktportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_AUDIT,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for DB error */
-TEST_F(KtClassTest, DeleteKeyInstance_DbNeg_05) {
+TEST_F(PortTest, DeleteKeyInstance_DbNeg_05) {
 
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  OdbcmConnectionHandler *db_conn =NULL;
 
+  Kt_Port ktportobj;
+  OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_DELETE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 /* DeleteKeyInstance for DB error */
-TEST_F(KtClassTest, DeleteKeyInstance_DbNeg_06) {
+TEST_F(PortTest, DeleteKeyInstance_DbNeg_06) {
 
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /* DeleteKeyInstance for DB error */
-TEST_F(KtClassTest, DeleteKeyInstance_DbNeg07) {
+TEST_F(PortTest, DeleteKeyInstance_DbNeg07) {
 
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* DeleteKeyInstance for Positive DB  */
-TEST_F(KtClassTest, DeleteKeyInstance_DbPos_08) {
+TEST_F(PortTest, DeleteKeyInstance_DbPos_08) {
 
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* DeleteKeyInstance for Positive DB  */
-TEST_F(KtClassTest, DeleteKeyInstance_DbPos_09) {
+TEST_F(PortTest, DeleteKeyInstance_DbPos_09) {
 
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*IsKeyExists No key struct */
-TEST_F(KtClassTest, IsKeyExists_NoKeyStruct_01) {
+TEST_F(PortTest, IsKeyExists_NoKeyStruct_01) {
   key_port_t k;
   val_port_st_t v;
   memset(&v, 0, sizeof(val_port_st_t));
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   OdbcmConnectionHandler *db_conn =NULL;
   vector<string> sw_vect_key_value;
   int ret =  ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 /*IsKeyExists when Db error occurs */
-TEST_F(KtClassTest, IsKeyExists_DbNeg_02) {
+TEST_F(PortTest, IsKeyExists_DbNeg_02) {
   key_port_t k;
   val_port_st_t v;
   memset(&v, 0, sizeof(val_port_st_t));
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
@@ -1130,17 +985,17 @@ TEST_F(KtClassTest, IsKeyExists_DbNeg_02) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*IsKeyExists when Db error occurs */
-TEST_F(KtClassTest, IsKeyExists_DbNeg_03) {
+TEST_F(PortTest, IsKeyExists_DbNeg_03) {
   key_port_t k;
   val_port_st_t v;
   memset(&v, 0, sizeof(val_port_st_t));
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
@@ -1148,17 +1003,17 @@ TEST_F(KtClassTest, IsKeyExists_DbNeg_03) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
   int ret = ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*IsKeyExists when Db Success occurs */
-TEST_F(KtClassTest, IsKeyExists_Db_Pos_04) {
+TEST_F(PortTest, IsKeyExists_Db_Pos_04) {
   key_port_t k;
   val_port_st_t v;
   memset(&v, 0, sizeof(val_port_st_t));
-  Kt_Port ktportobj;
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
@@ -1166,286 +1021,248 @@ TEST_F(KtClassTest, IsKeyExists_Db_Pos_04) {
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadInternal when it is other than Read operation */
-TEST_F(KtClassTest, ReadInternal_NotRead_01) {
-
+TEST_F(PortTest, ReadInternal_NotRead_01) {
   vector<void*> k;
   vector<void*> v;
   Kt_Port ktportobj;
   uint32_t operation_type = UNC_OP_READ_BULK;
-  uint32_t max_rep_ct=3;
-  char pkName1_ctr[] = "Controller1";
-  char pkName1_swtch[] = "switch id1";
-  char pkName1_port[] = "Port1";
-  k.push_back(pkName1_ctr);
-  k.push_back(pkName1_swtch);
-  k.push_back(pkName1_port);
+
+  key_port_t key;
+  val_port_st_t value;
+  memset(&value, 0, sizeof(value));
+  getKeyForKtPort1(key);
+  getValForKtPort1(value);
+  k.push_back(&key);
+  v.push_back(&value);
 
   OdbcmConnectionHandler *db_conn=NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = ktportobj.ReadInternal(db_conn, k, v, UNC_DT_STATE, operation_type);
 
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadInternal when Db is SUCCESS */
-TEST_F(KtClassTest, ReadInternal_Read_02) {
-
+TEST_F(PortTest, ReadInternal_Read_02) {
   vector<void*> k;
   vector<void*> v;
   Kt_Port ktportobj;
   uint32_t operation_type = UNC_OP_READ;
-  uint32_t max_rep_ct;
-  char pkName1_ctr[] = "Controller1";
-  char pkName1_swtch[] = "switch id1";
-  char pkName1_port[] = "Port1";
-  k.push_back(pkName1_ctr);
-  k.push_back(pkName1_swtch);
-  k.push_back(pkName1_port);
+
+  key_port_t key;
+  val_port_st_t val;
+  getKeyForKtPort1(key);
+  getValForKtPort1(val);
+  k.push_back(&key);
+  v.push_back(&val);
   
   OdbcmConnectionHandler *db_conn=NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.ReadInternal(db_conn, k, v, UNC_DT_STATE, operation_type);
 
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadBulk Unsupported datatype UNC_DT_CANDIDATE */
-TEST_F(KtClassTest, ReadBulk_Unsupporteddatatype_01) {
-
+TEST_F(PortTest, ReadBulk_Unsupporteddatatype_01) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   OdbcmConnectionHandler *db_conn=NULL;
   ReadRequest *read_req=NULL;
 
   int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_CANDIDATE,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /*ReadBulk Unsupported datatype UNC_DT_RUNNING */
-TEST_F(KtClassTest, ReadBulk_Unsupporteddatatype_02) {
-
+TEST_F(PortTest, ReadBulk_Unsupporteddatatype_02) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   OdbcmConnectionHandler *db_conn=NULL;
   ReadRequest *read_req=NULL;
   int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_RUNNING,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /*ReadBulk Unsupported datatype UNC_DT_STARTUP */
-TEST_F(KtClassTest, ReadBulk_Unsupporteddatatype_03) {
-
+TEST_F(PortTest, ReadBulk_Unsupporteddatatype_03) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   OdbcmConnectionHandler *db_conn=NULL;
   ReadRequest *read_req=NULL;
   int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STARTUP,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /*ReadBulk when max_rep_ct is NULL */
-TEST_F(KtClassTest, ReadBulk_max_rep_ct_NULL_04) {
-
+TEST_F(PortTest, ReadBulk_max_rep_ct_NULL_04) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct=NULL;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   OdbcmConnectionHandler *db_conn=NULL;
   ReadRequest *read_req=NULL;
   int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STATE,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadBulk when DB is SUCCESS */
-TEST_F(KtClassTest, ReadBulk_Pos_05) {
-
+TEST_F(PortTest, ReadBulk_Pos_05) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t max_rep_ct=1;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   int child_index=1;
   OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req = new ReadRequest();
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STATE,max_rep_ct,child_index,parent_call,is_read_next,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  ktportobj.ReadBulk(db_conn, &k, (uint32_t)UNC_DT_STATE,
+                                max_rep_ct, child_index, parent_call,
+                                is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadBulk when DB Connection error occurs  */
-TEST_F(KtClassTest, ReadBulk_DbNeg_06) {
-
+TEST_F(PortTest, ReadBulk_DbNeg_06) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t max_rep_ct=1;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   int child_index=1;
   OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req = new ReadRequest();
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STATE,max_rep_ct,child_index,parent_call,is_read_next,read_req);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  ktportobj.ReadBulk(db_conn, &k, (uint32_t)UNC_DT_STATE,
+                                max_rep_ct, child_index, parent_call,
+                                is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadBulk when parent_call is false*/
-TEST_F(KtClassTest, ReadBulk_Pos_parent_false_07) {
-
+TEST_F(PortTest, ReadBulk_Pos_parent_false_07) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t max_rep_ct=1;
-  uint32_t operation_type = UNC_OP_READ_BULK;
   pfc_bool_t parent_call=false;
   pfc_bool_t is_read_next=true;
   int child_index=1;
   OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req = new ReadRequest;
+  ReadRequest read_req;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STATE,max_rep_ct,child_index,parent_call,is_read_next,read_req);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  ktportobj.ReadBulk(db_conn, &k, (uint32_t)UNC_DT_STATE,
+                                max_rep_ct, child_index, parent_call,
+                                is_read_next, &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* ReadBulkInternal when there is no record in DB */
-TEST_F(KtClassTest, ReadBulkInternal_DbNeg_01) {
-
+TEST_F(PortTest, ReadBulkInternal_DbNeg_01) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   vector<val_port_st_t> vect_val_port; 
   vector<key_port_t> vect_port_id;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* ReadBulkInternal when DB connection error occurs */
-TEST_F(KtClassTest, ReadBulkInternal_DbNeg_02) {
-
+TEST_F(PortTest, ReadBulkInternal_DbNeg_02) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   vector<val_port_st_t> vect_val_port; 
   vector<key_port_t> vect_port_id;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /* ReadBulkInternal when DB error occurs */
-TEST_F(KtClassTest, ReadBulkInternal_DbNeg_03) {
-
+TEST_F(PortTest, ReadBulkInternal_DbNeg_03) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   vector<val_port_st_t> vect_val_port; 
   vector<key_port_t> vect_port_id;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /* ReadBulkInternal when DB is success */
-TEST_F(KtClassTest, ReadBulkInternal_Pos_04) {
-
+TEST_F(PortTest, ReadBulkInternal_Pos_04) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  uint32_t max_rep_ct;
+
+  Kt_Port ktportobj;
+  uint32_t max_rep_ct(1);
   vector<val_port_st_t> vect_val_port; 
   vector<key_port_t> vect_port_id;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* ReadBulkInternal when DB is success */
-TEST_F(KtClassTest, ReadBulkInternal_Pos_05) {
-
+TEST_F(PortTest, ReadBulkInternal_Pos_05) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   uint32_t max_rep_ct=0;
   vector<val_port_st_t> vect_val_port; 
   vector<key_port_t> vect_port_id;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadPortValFromDB when it is other than READ operation */
-TEST_F(KtClassTest, ReadPortValFromDB_NoREAD_01) {
-
+TEST_F(PortTest, ReadPortValFromDB_NoREAD_01) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1461,13 +1278,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_NoREAD_01) {
 
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadPortValFromDB when there is no record in DB for GETONEROW */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadNeg_02) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadNeg_02) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1483,13 +1298,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadNeg_02) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*ReadPortValFromDB when there is DB connection error for GETONEROW */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadNeg_03) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadNeg_03) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1505,13 +1318,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadNeg_03) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadPortValFromDB when there is DB Failure for GETONEROW */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadNeg_04) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadNeg_04) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1527,13 +1338,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadNeg_04) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadPortValFromDB when there is DB Success for GETONEROW */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadPOS_05) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadPOS_05) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1549,13 +1358,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadPOS_05) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
 /*ReadPortValFromDB when there is DB Failure for GETONEROW */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadBulkNeg_06) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadBulkNeg_06) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1571,13 +1378,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadBulkNeg_06) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*ReadPortValFromDB when there is DB connection error for GETBULKROWS */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadBulkNeg_07) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadBulkNeg_07) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1593,13 +1398,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadBulkNeg_07) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadPortValFromDB when there is DB Failure for GETBULKROWS */
-TEST_F(KtClassTest, ReadPortValFromDB_ReadBulkNeg_08) {
-
+TEST_F(PortTest, ReadPortValFromDB_ReadBulkNeg_08) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1615,13 +1418,11 @@ TEST_F(KtClassTest, ReadPortValFromDB_ReadBulkNeg_08) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadPortValFromDB when there is DB Success for GETBULKROWS */
-TEST_F(KtClassTest, ReadPortValFromDB_09_ReadBulkPos) {
-
+TEST_F(PortTest, ReadPortValFromDB_09_ReadBulkPos) {
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
@@ -1637,444 +1438,390 @@ TEST_F(KtClassTest, ReadPortValFromDB_09_ReadBulkPos) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadNeighbor when negative case of DB */
-TEST_F(KtClassTest, ReadNeighbor_Dbneg_01) {
-
+TEST_F(PortTest, ReadNeighbor_Dbneg_01) {
   key_port_t k;
-  val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  ktportobj.ReadNeighbor(db_conn,&k,&k,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadNeighbor when Positive case of DB */
-TEST_F(KtClassTest, ReadNeighbor_Dbneg_02) {
-
+TEST_F(PortTest, ReadNeighbor_Dbneg_02) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*ReadNeighbor when there is no record in DB */
-TEST_F(KtClassTest, ReadNeighbor_Dbneg_03) {
-
+TEST_F(PortTest, ReadNeighbor_Dbneg_03) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(ret,UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*ReadNeighbor when there is Connection error in DB */
-TEST_F(KtClassTest, ReadNeighbor_Dbneg_04) {
-
+TEST_F(PortTest, ReadNeighbor_Dbneg_04) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadNeighbor when DB fails */
-TEST_F(KtClassTest, ReadNeighbor_Dbneg_05) {
-
+TEST_F(PortTest, ReadNeighbor_Dbneg_05) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
   OdbcmConnectionHandler *db_conn =NULL;
 
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*PopulateSchemaForValidFlag when UPDATEONEROW is Success */
-TEST_F(KtClassTest, PopulateSchemaForValidFlag_pos_01) {
-
+TEST_F(PortTest, PopulateSchemaForValidFlag_pos_01) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
-  string valid_new = "asss";
+
+  Kt_Port ktportobj;
+  string valid_new = "123456789ab";
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.PopulateSchemaForValidFlag(db_conn,&k,&v,valid_new,(uint32_t)UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*PopulateSchemaForValidFlag when UPDATEONEROW is failed */
-TEST_F(KtClassTest, PopulateSchemaForValidFlag_neg_02) {
-
+TEST_F(PortTest, PopulateSchemaForValidFlag_neg_02) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   string valid_new = "asss";
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.PopulateSchemaForValidFlag(db_conn,&k,&v,valid_new,(uint32_t)UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /*UpdatePortValidFlag when UPDATEONEROW is failed */
-TEST_F(KtClassTest, UpdatePortValidFlag_01) {
-
+TEST_F(PortTest, UpdatePortValidFlag_01) {
   key_port_t k;
   val_port_st v;
-  Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
+
+  Kt_Port ktportobj;
   string valid_new = "asss";
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.PopulateSchemaForValidFlag(db_conn,&k,&v,valid_new,(uint32_t)UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /*GetAlarmStatus function when GETONEROW is success */
-TEST_F(KtClassTest, GetAlarmStatus_sucess_01) {
+TEST_F(PortTest, GetAlarmStatus_sucess_01) {
   key_port_t k;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
   uint64_t alarm_status = 1;
-  getKeyForKtPort1(k);
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  ktportobj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*GetAlarmStatus function when GETONEROW is failed */
-TEST_F(KtClassTest, GetAlarmStatus_sucess_02) {
+TEST_F(PortTest, GetAlarmStatus_sucess_02) {
   key_port_t k;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
   uint64_t alarm_status = 1;
-  getKeyForKtPort1(k);
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  ktportobj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
+
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_01) {
+TEST_F(PortTest, HandleDriverAlarms_01) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_DEFAULT_FLOW;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_02) {
+TEST_F(PortTest, HandleDriverAlarms_02) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_DEFAULT_FLOW;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_03) {
+TEST_F(PortTest, HandleDriverAlarms_03) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_DIRECTION;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_04) {
+TEST_F(PortTest, HandleDriverAlarms_04) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_DIRECTION;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_05) {
+TEST_F(PortTest, HandleDriverAlarms_05) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_06) {
+TEST_F(PortTest, HandleDriverAlarms_06) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_07) {
+TEST_F(PortTest, HandleDriverAlarms_07) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_DIRECTION;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_08) {
+TEST_F(PortTest, HandleDriverAlarms_08) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_DIRECTION;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_09) {
+TEST_F(PortTest, HandleDriverAlarms_09) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_DEFAULT_FLOW;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
  
 /*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_10) {
+TEST_F(PortTest, HandleDriverAlarms_10) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_DEFAULT_FLOW;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_11) {
+TEST_F(PortTest, HandleDriverAlarms_11) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_12) {
+TEST_F(PortTest, HandleDriverAlarms_12) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_13) {
+TEST_F(PortTest, HandleDriverAlarms_13) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_IMPORT, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
-TEST_F(KtClassTest, HandleDriverAlarms_14) {
+TEST_F(PortTest, HandleDriverAlarms_14) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
-  unc::uppl::ODBCManager::clearStubData();
   ServerSession sess;
-  ServerSession::clearStubData();
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /* HandleDriverAlarms when GETONEROW and UPDATEONEROW are success */
-TEST_F(KtClassTest, HandleDriverAlarm_15) {
+TEST_F(PortTest, HandleDriverAlarm_15) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
   uint32_t alarm_type = UNC_PORT_CONGES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtPort1(k);
-  unc::uppl::ODBCManager::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
@@ -2082,13 +1829,11 @@ TEST_F(KtClassTest, HandleDriverAlarm_15) {
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_FAILURE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_FAILURE, ret);
 }
 
 /*SubDomainOperStatusHandling when GETBULKROWS is success*/
-TEST_F(KtClassTest, SubDomainOperStatusHandling_Dbneg_01) {
-  key_port_t k;
+TEST_F(PortTest, SubDomainOperStatusHandling_Dbneg_01) {
   val_port_st v;
   Kt_Port ktportobj;
   memset(v.valid, '\0', sizeof(v.valid));
@@ -2096,17 +1841,14 @@ TEST_F(KtClassTest, SubDomainOperStatusHandling_Dbneg_01) {
   string controller_name = "Controller1";
   string switch_id = "switch id1";
   string physical_port_id = "Port1";
-  uint32_t oper_type = UNC_OP_READ;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = ktportobj.SubDomainOperStatusHandling(db_conn, UNC_DT_STATE, controller_name, switch_id, physical_port_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*SubDomainOperStatusHandling when GETBULKROWS is failed */
-TEST_F(KtClassTest, SubDomainOperStatusHandling_Dbneg_02) {
-  key_port_t k;
+TEST_F(PortTest, SubDomainOperStatusHandling_Dbneg_02) {
   val_port_st v;
   Kt_Port ktportobj;
   memset(v.valid, '\0', sizeof(v.valid));
@@ -2114,89 +1856,98 @@ TEST_F(KtClassTest, SubDomainOperStatusHandling_Dbneg_02) {
   string controller_name = "Controller1";
   string switch_id = "switch id1";
   string physical_port_id = "Port1";
-  uint32_t oper_type = UNC_OP_READ;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret = ktportobj.SubDomainOperStatusHandling(db_conn, UNC_DT_STATE, controller_name, switch_id, physical_port_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*NotifyOperStatus when GETBULKROWS is failed */
-TEST_F(KtClassTest, NotifyOperStatus_01) {
+TEST_F(PortTest, NotifyOperStatus_01) {
   key_port_t k;
   val_port_st v;
+  getKeyForKtPort1(k);
+
   vector<OperStatusHolder> ref_oper_status;
   Kt_Port ktportobj;
-  memset(v.valid, '\0', sizeof(v.valid));
-  memset(v.port.valid, '\0', sizeof(v.port.valid));
-  getKeyForKtPort1(k);
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret = ktportobj.NotifyOperStatus(db_conn, UNC_DT_STATE, &k, &v, ref_oper_status);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
+
 /*GetPortValStructure function calling */
-TEST_F(KtClassTest, GetPortValStructure_01) {
+TEST_F(PortTest, GetPortValStructure_01) {
   key_port_t k;
-  val_port_st_t *obj_val_port;
-  val_port_st_t *val_port_valid_st;
+  getKeyForKtPort1(k);
+
+  val_port_st_t *obj_val_port(NULL);
+  val_port_st_t *val_port_valid_st(NULL);
   vector<TableAttrSchema> vect_table_attr_schema;
   vector<string> vect_prim_keys;
   uint8_t operation_type=UNC_OP_UPDATE;
   stringstream valid;
   Kt_Port ktportobj;
-  getKeyForKtPort1(k);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = UPPL_RC_SUCCESS;
   ktportobj.GetPortValStructure(db_conn, obj_val_port,vect_table_attr_schema, vect_prim_keys,
                          operation_type, val_port_valid_st,valid);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /* UpdatePortValidFlag when there is no record in DB*/
-TEST_F(KtClassTest, UpdatePortValidFlag_DbNeg_01) {
-  key_port_t *k = new key_port_t;
-  val_port_t *v = new val_port_t;
+TEST_F(PortTest, UpdatePortValidFlag_DbNeg_01) {
+  key_port_t k;
+  val_port_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   val_port_st_t v_st;
+  memset(&v_st, 0, sizeof(v_st));
 
   unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  ktportobj.UpdatePortValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
+                                           new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* UpdatePortValidFlag when GETONEROW is success */
-TEST_F(KtClassTest, UpdatePortValidFlag_Dbpos_02) {
-  key_port_t *k = new key_port_t;
-  val_port_t *v = new val_port_t;
+TEST_F(PortTest, UpdatePortValidFlag_Dbpos_02) {
+  key_port_t k;
+  val_port_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   val_port_st_t v_st;
+  memset(&v_st, 0, sizeof(v_st));
 
   unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.UpdatePortValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
+                                           new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*UpdatePortValidFlag when GETONEROW is success */
-TEST_F(KtClassTest, UpdatePortValidFlag_NoFillValue_03) {
-  key_port_t *k = new key_port_t;
-  val_port_t *v = new val_port_t;
+TEST_F(PortTest, UpdatePortValidFlag_NoFillValue_03) {
+  key_port_t k;
+  val_port_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Port ktportobj;
   val_port_st_t v_st;
+  memset(&v_st, 0, sizeof(v_st));
 
-  unc_keytype_validflag_t new_valid_val;
+  unc_keytype_validflag_t new_valid_val(UNC_VF_INVALID);
   OdbcmConnectionHandler *db_conn =NULL;
   unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.UpdatePortValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  int ret =  ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
+                                           new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
similarity index 57%
rename from coordinator/test/modules/uppl/utest/ut_switch.cc
rename to coordinator/test/modules/uppl/utest/Switch_ut.cc
index 5acec2b59a7c63923e1da2122ee9f35d1e826c70..ff36a133796cc06bf9f040d9977a242188da6337 100644 (file)
@@ -1,11 +1,11 @@
- /*
 * Copyright (c) 2012-2013 NEC Corporation
 * All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this
 * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 */
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #include <limits.h>
 #include <gtest/gtest.h>
@@ -13,7 +13,6 @@
 #include <pfcxx/ipc_client.hh>
 #include <pfc/ipc_struct.h>
 
-
 #include <stdio.h>
 #include <sys/stat.h>
 #include <sys/mman.h>
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include "physical_common_def.hh"
-#include "unc/uppl_common.h"
-#include "unc/keytype.h"
-#include "stub/ODBC/include/odbcm_mgr.hh"
-#include "itc_kt_base.hh"
-#include "itc_kt_root.hh"
-#include "itc_kt_controller.hh"
-#include "itc_kt_ctr_domain.hh"
-#include "itc_kt_switch.hh"
-#include "itc_kt_port.hh"
-#include "itc_kt_link.hh"
-#include "itc_kt_boundary.hh"
-#include "ipct_util.hh"
-#include "physicallayer.hh"
+#include <physical_common_def.hh>
+#include <unc/uppl_common.h>
+#include <unc/keytype.h>
+#include <odbcm_mgr.hh>
+#include <itc_kt_base.hh>
+#include <itc_kt_root.hh>
+#include <itc_kt_controller.hh>
+#include <itc_kt_ctr_domain.hh>
+#include <itc_kt_switch.hh>
+#include <itc_kt_port.hh>
+#include <itc_kt_link.hh>
+#include <itc_kt_boundary.hh>
+#include <ipct_util.hh>
+#include <physicallayer.hh>
 #include "PhysicalLayerStub.hh"
-#include "itc_read_request.hh"
+#include <itc_read_request.hh>
+#include "ut_util.hh"
 
 using namespace pfc;
 using namespace pfc::core;
 using namespace pfc::core::ipc;
+using namespace unc::uppl;
+using namespace unc::uppl::test;
 using namespace std;
 
-ClientSession *cli_sess = NULL;
-ClientSession *cli_sess_notify = NULL;
-pfc_ipcid_t service = UPPL_SVC_READREQ;
-class KtClassTest : public testing::Test {
-  protected:
-  virtual void SetUp() {
-    if(cli_sess == NULL) {
-      pfc_ipcconn_t connp = 0;
-      int err = pfc_ipcclnt_altopen(UPPL_IPC_CHN_NAME, &connp);
-      ASSERT_EQ(0, err);
-      //ASSERT_TRUE(connp != 0);
-      cli_sess = new ClientSession(connp, UPPL_IPC_SVC_NAME, service, err);
-      ASSERT_EQ(0, err);
-      connp = 0;
-      err = pfc_ipcclnt_altopen("phynwd", &connp);
-      ASSERT_EQ(0, err);
-      //ASSERT_TRUE(connp!=0);
-      cli_sess_notify = new ClientSession(connp, "sample2", 0, err);
-  
-  PhysicalLayerStub::loadphysicallayer();
-    //ASSERT_EQ(0, err);
-
-    }
-  }
-  virtual void TearDown() {
-    if (cli_sess != NULL) {
-      cli_sess->cancel();
-      delete cli_sess;
-      cli_sess = NULL;
-    }
-    if (cli_sess_notify != NULL) {
-      cli_sess_notify->cancel();
-      delete cli_sess_notify;
-      cli_sess_notify = NULL;
-    }
-  }
-
+class SwitchTest
+  : public UpplTestEnv
+{
 };
 
+static char pkName1[] = "{0x10,0xbc}";
+static char pkName2[] = "controller1";
 
-char pkName1[] = "{0x10,0xbc}";
-char pkName2[] = "controller1";
-char pkName3[] = "switch_id2";
-char pkName4[] = "controller2";
-char pkName5[] = "switch_id3";
-char pkName6[] = "controller3";
-char pkName7[] = "";
-char pkName8[]= "NotExisting";
-
-void getKeyForKtSwitch1(key_switch_t& k) {
-  memset(k.switch_id, '\0', 256);
-  memcpy(k.switch_id, pkName1, strlen(pkName1));
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
+static void getKeyForKtSwitch1(key_switch_t& k) {
+  strncpy(reinterpret_cast<char *>(k.switch_id), pkName1, sizeof(k.switch_id));
+  strncpy(reinterpret_cast<char *>(k.ctr_key.controller_name), pkName2,
+          sizeof(k.ctr_key.controller_name));
 }
 
-void getValForKtSwitch1(val_switch_st_t& v) {
+static void getValForKtSwitch1(val_switch_t& v, bool zero) {
+  if (zero) {
+    memset(&v, 0, sizeof(v));
+  }
+
   // uint8_t description[128]
-  memset(v.switch_val.description, '\0', 32);
-  memcpy(v.switch_val.description,
-         "switch description",
-         strlen("switch description"));
+  pfc_strlcpy(reinterpret_cast<char *>(v.description), "switch description",
+              sizeof(v.description));
 
   // uint8_t model[16]
-  memset(v.switch_val.model, '\0', 16);
-  memcpy(v.switch_val.model,
-         "switch model",
-         strlen("switch model"));
-
+  pfc_strlcpy(reinterpret_cast<char *>(v.model), "switch model",
+              sizeof(v.model));
 
   string ip_add = "10.100.12.34";
   inet_pton(AF_INET,
             (const char *)ip_add.c_str(),
-            &v.switch_val.ip_address.s_addr);
+            &v.ip_address.s_addr);
 
   string ipv6_add = "";
   inet_pton(AF_INET6, (const char *)ipv6_add.c_str(),
-            &v.switch_val.ipv6_address.s6_addr);
+            &v.ipv6_address.s6_addr);
 
   // uint8_t admin_status
-  v.switch_val.admin_status = 0;
+  v.admin_status = 0;
 
   // uint8_t domain_name[32]
-  memset(v.switch_val.domain_name, '\0', 32);
-  memcpy(v.switch_val.domain_name, "domain_name", strlen("domain_name"));
+  pfc_strlcpy(reinterpret_cast<char *>(v.domain_name), "domain_name",
+              sizeof(v.domain_name));
+}
 
-  // uint8_t oper_status
-  v.oper_status = 0;
+static inline void getValForKtSwitch1(val_switch_t& v) {
+  getValForKtSwitch1(v, true);
+}
+
+static void getValForKtSwitch1(val_switch_st_t& v) {
+  memset(&v, 0, sizeof(v));
+  getValForKtSwitch1(v.switch_val, false);
 
   // uint8_t manufacturer
-  memset(v.manufacturer, '\0' , 256);
-  memcpy(v.manufacturer, "NEC CORP", strlen("NEC CORP"));
+  pfc_strlcpy(reinterpret_cast<char *>(v.manufacturer), "NEC CORP",
+              sizeof(v.manufacturer));
 
   // uint8_t hardware
-  memset(v.hardware, '\0', 256);
-  memcpy(v.hardware, "HW", strlen("HW"));
+  pfc_strlcpy(reinterpret_cast<char *>(v.hardware), "HW", sizeof(v.hardware));
 
   // uint8_t software
-  memset(v.software, '\0', 256);
-  memcpy(v.software, "SW", strlen("SW"));
+  pfc_strlcpy(reinterpret_cast<char *>(v.software), "SW", sizeof(v.software));
 
   // uint64_t alarms_status
   v.alarms_status = 0x01;
-
-  // uint8_t valid[6];
-  memset(v.valid, '\0', 7);
 }
-void getReqHeader(physical_request_header& rh,
-                  unc_keytype_operation_t opern,
-                  unc_keytype_datatype_t dtype) {
+
+static void getReqHeader(physical_request_header& rh,
+                         unc_keytype_operation_t opern,
+                         unc_keytype_datatype_t dtype) {
   rh.client_sess_id = 1;
   rh.config_id = 1;
   rh.operation = opern;
@@ -180,207 +141,208 @@ void getReqHeader(physical_request_header& rh,
 
 /********TEST CASES***************/
 //Validating Key:ControllerId Not found, Operation:UNC_OP_CREATE
-TEST_F(KtClassTest, PerformSyntxCheck_controllerId_notFound_01) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName1[] = "{0x10,0xbc}";
-memset(k.ctr_key.controller_name, '\0', 32);
-memset(k.switch_id, '\0', 256);
-memcpy(k.switch_id, pkName1, strlen(pkName1));
-uint32_t operation = UNC_OP_CREATE;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_01) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  char pkName1[] = "{0x10,0xbc}";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, pkName1, strlen(pkName1));
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validating Key:ControllerId Not found, Operation:UNC_OP_UPDATE
-TEST_F(KtClassTest, PerformSyntxCheck_controllerId_notFound_02) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName1[] = "{0x10,0xbc}";
-memset(k.ctr_key.controller_name, '\0', 32);
-memset(k.switch_id, '\0', 256);
-memcpy(k.switch_id, pkName1, strlen(pkName1));
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_UPDATE;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_02) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName1[] = "{0x10,0xbc}";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, pkName1, strlen(pkName1));
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validating Key:ControllerId Not found, Operation:UNC_OP_DELETE
-TEST_F(KtClassTest, PerformSyntxCheck_controllerId_notFound_03) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName1[] = "{0x10,0xbc}";
-memset(k.ctr_key.controller_name, '\0', 32);
-memset(k.switch_id, '\0', 256);
-memcpy(k.switch_id, pkName1, strlen(pkName1));
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_DELETE;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_03) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName1[] = "{0x10,0xbc}";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, pkName1, strlen(pkName1));
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validating Key:ControllerId Not found, Operation:UNC_OP_READ
-TEST_F(KtClassTest, PerformSyntxCheck_controllerId_notFound_04) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName1[] = "{0x10,0xbc}";
-memset(k.ctr_key.controller_name, '\0', 32);
-memset(k.switch_id, '\0', 256);
-memcpy(k.switch_id, pkName1, strlen(pkName1));
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_READ;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_04) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName1[] = "{0x10,0xbc}";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, pkName1, strlen(pkName1));
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_READ;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validating Key:SwitchId_notFound, Operation:UNC_OP_CREATE
-TEST_F(KtClassTest, PerformSyntxCheck_SwitchId_notFound_01) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName2[] = "controller1";
-memset(k.ctr_key.controller_name, '\0', 32);
-memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-memset(k.switch_id, '\0', 256);
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_CREATE;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_01) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName2[] = "controller1";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
+  memset(k.switch_id, '\0', 256);
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validating Key:SwitchId_notFound, Operation:UNC_OP_UPDATE
-TEST_F(KtClassTest, PerformSyntxCheck_SwitchId_notFound_02) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName2[] = "controller1";
-memset(k.ctr_key.controller_name, '\0', 32);
-memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-memset(k.switch_id, '\0', 256);
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_UPDATE;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_02) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName2[] = "controller1";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
+  memset(k.switch_id, '\0', 256);
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
+
 //Validating Key:SwitchId_notFound, Operation:UNC_OP_DELETE
-TEST_F(KtClassTest, PerformSyntxCheck_SwitchId_notFound_03) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName2[] = "controller1";
-memset(k.ctr_key.controller_name, '\0', 32);
-memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-memset(k.switch_id, '\0', 256);
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_DELETE;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_03) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName2[] = "controller1";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
+  memset(k.switch_id, '\0', 256);
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validating Key:SwitchId_notFound, Operation:UNC_OP_READ
-TEST_F(KtClassTest, PerformSyntxCheck_SwitchId_notFound_04) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName2[] = "controller1";
-memset(k.ctr_key.controller_name, '\0', 32);
-memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-memset(k.switch_id, '\0', 256);
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_READ;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-EXPECT_EQ(ret,UPPL_RC_ERR_CFG_SYNTAX);
+TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_04) {
+  key_switch_t k;
+  val_switch_st_t v;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName2[] = "controller1";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
+  memset(k.switch_id, '\0', 256);
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  uint32_t operation = UNC_OP_READ;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
+                                                operation,UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 //Validation of key and value struct-Success
-TEST_F(KtClassTest, PerformSyntxCheck_ValStruct_success) {
+TEST_F(SwitchTest, PerformSyntxCheck_ValStruct_success) {
   key_switch_t k;
-  val_switch_st_t v;
+  val_switch_t v;
   Kt_Switch KtSwitchObj;
   getKeyForKtSwitch1(k);
   getValForKtSwitch1(v);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*******IsKeyExists*************/
 //No key given..Returning error
-TEST_F(KtClassTest, IskeyExists_NoKey) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName2[] = "controller1";
-memset(k.ctr_key.controller_name, '\0', 32);
-memset(k.switch_id, '\0', 256);
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_READ;
-vector<string> sw_vect_key_value;
-OdbcmConnectionHandler *db_conn =NULL;
-int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-EXPECT_EQ(ret,UPPL_RC_ERR_BAD_REQUEST);
+TEST_F(SwitchTest, IskeyExists_NoKey) {
+  key_switch_t k;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memset(k.switch_id, '\0', 256);
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  vector<string> sw_vect_key_value;
+  OdbcmConnectionHandler *db_conn =NULL;
+  int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 //DB connection not available,Returns Error
-TEST_F(KtClassTest, IskeyExists_Db_Connxn_Error) {
-key_switch_t k;
-val_switch_st_t v;
-Kt_Switch KtSwitchObj;
-physical_request_header rh;
-char pkName1[] = "{0x10,0xbc}";
-char pkName2[] = "controller1";
-memset(k.ctr_key.controller_name, '\0', 32);
-memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-memset(k.switch_id, '\0', 256);
-memcpy(k.switch_id, pkName1, strlen(pkName1));
-getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-rh.key_type = UNC_KT_SWITCH;
-uint32_t operation = UNC_OP_READ;
-vector<string> sw_vect_key_value;
-sw_vect_key_value.push_back(pkName1);
-sw_vect_key_value.push_back(pkName2);
-OdbcmConnectionHandler *db_conn =NULL;
-unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-EXPECT_EQ(ret,UPPL_RC_ERR_DB_ACCESS);
-unc::uppl::ODBCManager::clearStubData();
+TEST_F(SwitchTest, IskeyExists_Db_Connxn_Error) {
+  key_switch_t k;
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  char pkName1[] = "{0x10,0xbc}";
+  char pkName2[] = "controller1";
+  memset(k.ctr_key.controller_name, '\0', 32);
+  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
+  memset(k.switch_id, '\0', 256);
+  memcpy(k.switch_id, pkName1, strlen(pkName1));
+  getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
+  rh.key_type = UNC_KT_SWITCH;
+  vector<string> sw_vect_key_value;
+  sw_vect_key_value.push_back(pkName1);
+  sw_vect_key_value.push_back(pkName2);
+  OdbcmConnectionHandler *db_conn =NULL;
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 //DB returned success for Row exists
-TEST_F(KtClassTest, IskeyExists_Success) {
+TEST_F(SwitchTest, IskeyExists_Success) {
   key_switch_t k;
-  val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
@@ -391,21 +353,18 @@ TEST_F(KtClassTest, IskeyExists_Success) {
   memcpy(k.switch_id, pkName1, strlen(pkName1));
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   rh.key_type = UNC_KT_SWITCH;
-  uint32_t operation = UNC_OP_READ;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //DB Returned failure for IsRowExists
-TEST_F(KtClassTest, IskeyExists_Error) {
+TEST_F(SwitchTest, IskeyExists_Error) {
   key_switch_t k;
-  val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
@@ -416,23 +375,20 @@ TEST_F(KtClassTest, IskeyExists_Error) {
   memcpy(k.switch_id, pkName1, strlen(pkName1));
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   rh.key_type = UNC_KT_SWITCH;
-  uint32_t operation = UNC_OP_READ;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
   int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /****DeleteKeyInstance****/
 
 //Delete operation on unsupported DB: STARTUP
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedDB_01) {
+TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_01) {
   key_switch_t k;
-  val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
@@ -444,13 +400,12 @@ TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedDB_01) {
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_SWITCH);  
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 //Delete for unsupported DB UNC_DT_CANDIDATE
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedDB_02) {
+TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_02) {
   key_switch_t k;
-  val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
@@ -462,13 +417,12 @@ TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedDB_02) {
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_SWITCH);  
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 //Delete for unsupported DB UNC_DT_RUNNING
-TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedDB_03) {
+TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_03) {
   key_switch_t k;
-  val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
@@ -480,11 +434,11 @@ TEST_F(KtClassTest, DeleteKeyInstance_UnsupportedDB_03) {
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_SWITCH);  
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 //Delete operation failed in switch common table
-TEST_F(KtClassTest, DeleteKeyInstance_Fail_In_Db) {
+TEST_F(SwitchTest, DeleteKeyInstance_Fail_In_Db) {
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
@@ -492,103 +446,95 @@ TEST_F(KtClassTest, DeleteKeyInstance_Fail_In_Db) {
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_DELETE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 //Delete operation failed due to DB connection not available
-TEST_F(KtClassTest, DeleteKeyInstance_Db_Conxn_Error) { 
+TEST_F(SwitchTest, DeleteKeyInstance_Db_Conxn_Error) { 
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 //Row not Exixts to Delete
-TEST_F(KtClassTest, DeleteKeyInstance_RowNotExists) { 
+TEST_F(SwitchTest, DeleteKeyInstance_RowNotExists) { 
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_DELETE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 //DElete operation Success
-TEST_F(KtClassTest, DeleteKeyInstance_Success) { 
+TEST_F(SwitchTest, DeleteKeyInstance_Success) { 
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Delete Child classess Success
-TEST_F(KtClassTest, DeleteKeyInstance_Child_Del) { 
+TEST_F(SwitchTest, DeleteKeyInstance_Child_Del) { 
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Error Deleting port in DB
-TEST_F(KtClassTest, DeleteKeyInstance_Del_port) { 
+TEST_F(SwitchTest, DeleteKeyInstance_Del_port) { 
   key_port_t k;
   memset(&k, 0, sizeof(key_port_t));
-  // getKeyForKtSwitch1(k);
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_DELETE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 //No Child Instance exist to delete
-TEST_F(KtClassTest, DeleteKeyInstance_NoChildInstance) { 
+TEST_F(SwitchTest, DeleteKeyInstance_NoChildInstance) { 
   key_switch_t k;
-  memset(&k, 0, sizeof(key_port_t));
   getKeyForKtSwitch1(k);
+
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_DELETE);
-  ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 /******PerformSemanticValidatin***********/
 //Key for parent not exists
-TEST_F(KtClassTest, PerformSemanticValid_NoParentKey) {
+TEST_F(SwitchTest, PerformSemanticValid_NoParentKey) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -599,19 +545,17 @@ TEST_F(KtClassTest, PerformSemanticValid_NoParentKey) {
   uint32_t operation = UNC_OP_CREATE;
   vector<string> sw_vect_key_value;
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 //Update operation not allowed
-TEST_F(KtClassTest, PerformSemanticValid_Upd_NotAllowed) {
+TEST_F(SwitchTest, PerformSemanticValid_Upd_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -624,19 +568,17 @@ TEST_F(KtClassTest, PerformSemanticValid_Upd_NotAllowed) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 //Delete operation not allowed
-TEST_F(KtClassTest, PerformSemanticValid_DEl_NotAllowed) {
+TEST_F(SwitchTest, PerformSemanticValid_DEl_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -649,19 +591,17 @@ TEST_F(KtClassTest, PerformSemanticValid_DEl_NotAllowed) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 //Read operation not allowed
-TEST_F(KtClassTest, PerformSemanticValid_Read_NotAllowed) {
+TEST_F(SwitchTest, PerformSemanticValid_Read_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -674,20 +614,18 @@ TEST_F(KtClassTest, PerformSemanticValid_Read_NotAllowed) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 //create operation not allowed for Already
 //existing key
-TEST_F(KtClassTest, PerformSemanticValid_CREATE_NotAllowed) {
+TEST_F(SwitchTest, PerformSemanticValid_CREATE_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -700,18 +638,17 @@ TEST_F(KtClassTest, PerformSemanticValid_CREATE_NotAllowed) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_ERR_INSTANCE_EXISTS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
+
 //PerformSemanticValid Success for update
-TEST_F(KtClassTest, PerformSemanticValid_Update_Success) {
+TEST_F(SwitchTest, PerformSemanticValid_Update_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -724,19 +661,17 @@ TEST_F(KtClassTest, PerformSemanticValid_Update_Success) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformSemanticValid Success for DELETE
-TEST_F(KtClassTest, PerformSemanticValid_Delete_Success) {
+TEST_F(SwitchTest, PerformSemanticValid_Delete_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -749,19 +684,17 @@ TEST_F(KtClassTest, PerformSemanticValid_Delete_Success) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //PerformSemanticValid Success for READ
-TEST_F(KtClassTest, PerformSemanticValid_Read_Success) {
+TEST_F(SwitchTest, PerformSemanticValid_Read_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -774,19 +707,17 @@ TEST_F(KtClassTest, PerformSemanticValid_Read_Success) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
   
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Parent Key Not exists, DB:UNC_DT_IMPORT
-TEST_F(KtClassTest, PerformSemanticValid_Create_In_IMPORT_Fail) {
+TEST_F(SwitchTest, PerformSemanticValid_Create_In_IMPORT_Fail) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  physical_request_header rh;
   char pkName1[] = "{0x10,0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -797,16 +728,15 @@ TEST_F(KtClassTest, PerformSemanticValid_Create_In_IMPORT_Fail) {
   uint32_t operation = UNC_OP_CREATE;
   vector<string> sw_vect_key_value;
   
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_IMPORT);
   
-  EXPECT_EQ(ret, UPPL_RC_ERR_PARENT_DOES_NOT_EXIST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 /******ReadSwtchValFromDb******/
 //Operation Other Than Read -Success
-TEST_F(KtClassTest, ReadSwtchValFromDb_NoREAD) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_NoREAD) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
@@ -818,32 +748,34 @@ TEST_F(KtClassTest, ReadSwtchValFromDb_NoREAD) {
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //No Record Found to read
-TEST_F(KtClassTest, ReadSwtchValFromDb_NoRecordFound) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_NoRecordFound) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 //Db connxn error in Read
-TEST_F(KtClassTest, ReadSwtchValFromDb_DbConnxnError) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_DbConnxnError) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
@@ -852,329 +784,323 @@ TEST_F(KtClassTest, ReadSwtchValFromDb_DbConnxnError) {
   OdbcmConnectionHandler *db_conn = NULL;
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 //Read operation failed with DB
-TEST_F(KtClassTest, ReadSwtchValFromDb_Error_Db_Get) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_Error_Db_Get) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 //Read From DB Success
-TEST_F(KtClassTest, ReadSwtchValFromDb_READ_Success) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_READ_Success) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //ReadBulk operation failed
-TEST_F(KtClassTest, ReadSwtchValFromDb_READBULK_NoInstance) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_NoInstance) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 //ReadBulk operation failed:Db conxn error
-TEST_F(KtClassTest, ReadSwtchValFromDb_READBULK_07) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_07) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 //ReadBulk operation failed:Db err
-TEST_F(KtClassTest, ReadSwtchValFromDb_READBULK_Db_Get) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_Db_Get) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
 //ReadBulk operation Success
-TEST_F(KtClassTest, ReadSwtchValFromDb_READBULK_Success) {
+TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_Success) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
   vector<val_switch_st_t> vect_val_switch_st;
   vector<key_switch_t> vect_switch_id;
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memset(k.switch_id, '\0', 256);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-
 /********ReadInternal****/
 
-TEST_F(KtClassTest, ReadInternal) {
+TEST_F(SwitchTest, ReadInternal) {
   vector<void*> k;
   vector<void*> v;
   Kt_Switch KtSwitchObj;
   uint32_t operation_type = UNC_OP_READ;
-  uint32_t max_rep_ct;
-  char pkName1[] = "{0x10,0xbc}";
-  char pkName2[] = "controller1";
-  k.push_back(pkName1);
-  k.push_back(pkName2);
+
+  key_switch_t key;
+  val_switch_st_t val;
+  getKeyForKtSwitch1(key);
+  getValForKtSwitch1(val);
+  k.push_back(&key);
+  v.push_back(&val);
+
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.ReadInternal(db_conn, k, v, UNC_DT_STATE, operation_type);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*****ReadBulkInternal****/
-TEST_F(KtClassTest, ReadBulkInternal_MaxCt_01) {
+TEST_F(SwitchTest, ReadBulkInternal_MaxCt_01) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 0;
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
   int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulkInternal_NoRecordFound_02) {
+TEST_F(SwitchTest, ReadBulkInternal_NoRecordFound_02) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, ReadBulkInternal_ConnError_03) {
+TEST_F(SwitchTest, ReadBulkInternal_ConnError_03) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulkInternal_DbGetError_04) {
+TEST_F(SwitchTest, ReadBulkInternal_DbGetError_04) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(KtClassTest, ReadBulkInternal_Success_04) {
+TEST_F(SwitchTest, ReadBulkInternal_Success_04) {
   key_switch_t k;
   val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
-  uint32_t max_rep_ct;
+  uint32_t max_rep_ct(1);
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /********ReadBulk********/
-TEST_F(KtClassTest, ReadBulk_NoStateDb_01) {
+TEST_F(SwitchTest, ReadBulk_NoStateDb_01) {
   key_switch_t k;
-  val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
-  uint32_t max_rep_ct;
-  int child_index;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  uint32_t max_rep_ct(1);
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
   int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(KtClassTest, ReadBulk_Max_Rpct_01) {
+TEST_F(SwitchTest, ReadBulk_Max_Rpct_01) {
   key_switch_t k;
-  val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 0;
-  int child_index;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
   int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulkInternal_Success) {
+TEST_F(SwitchTest, ReadBulkInternal_Success) {
   key_switch_t k;
-  val_switch_st_t v;
+  getKeyForKtSwitch1(k);
+
   Kt_Switch KtSwitchObj;
-  uint32_t max_rep_ct;
-  int child_index;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  uint32_t max_rep_ct(1);
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ReadRequest read_req;
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                                 child_index, parent_call, is_read_next,
+                                 &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulkInternal_NoRecordFound) {
+TEST_F(SwitchTest, ReadBulkInternal_NoRecordFound) {
   key_switch_t k;
-  val_switch_st_t v;
+  memset(&k, 0, sizeof(k));
+
   Kt_Switch KtSwitchObj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 1;
-  int child_index;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  int child_index(0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = new ReadRequest;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND); 
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ReadRequest read_req;
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND); 
+  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                                 child_index, parent_call, is_read_next,
+                                 &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulk_childkey) {
+TEST_F(SwitchTest, ReadBulk_childkey) {
   key_switch_t k;
-  val_switch_st_t v;
+  getKeyForKtSwitch1(k);
+
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
-  char pkName2[] = "controller1";
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-  memset(k.switch_id, '\0', 256);
-  memcpy(k.switch_id, pkName1, strlen(pkName1));
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 1;
   int child_index = -1;
-  pfc_bool_t parent_call;
-  pfc_bool_t is_read_next;
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, ReadBulk_SwitchExists_FALSE) {
+TEST_F(SwitchTest, ReadBulk_SwitchExists_FALSE) {
   key_switch_t k;
-  val_switch_st_t v;
+  getKeyForKtSwitch1(k);
+
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
-  char pkName2[] = "controller1";
-  memset(k.ctr_key.controller_name, '\0', 32);
-  memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
-  memset(k.switch_id, '\0', 256);
-  memcpy(k.switch_id, pkName1, strlen(pkName1));
-  uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct = 1;
-  int child_index ;
-  pfc_bool_t parent_call = false;
-  pfc_bool_t is_read_next;
+  int child_index (0);
+  pfc_bool_t parent_call(PFC_FALSE);
+  pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = new ReadRequest;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS); 
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ReadRequest read_req;
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS); 
+  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                                 child_index, parent_call, is_read_next,
+                                 &read_req);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /********PerformRead******/
-TEST_F(KtClassTest, PerformRead_01) {
+TEST_F(SwitchTest, PerformRead_01) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1184,7 +1110,6 @@ TEST_F(KtClassTest, PerformRead_01) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1197,10 +1122,10 @@ TEST_F(KtClassTest, PerformRead_01) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 
   int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_002) {
+TEST_F(SwitchTest, PerformRead_002) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1210,7 +1135,6 @@ TEST_F(KtClassTest, PerformRead_002) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1222,10 +1146,10 @@ TEST_F(KtClassTest, PerformRead_002) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_ReadSwtVal_Succes_03) {
+TEST_F(SwitchTest, PerformRead_ReadSwtVal_Succes_03) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1235,7 +1159,6 @@ TEST_F(KtClassTest, PerformRead_ReadSwtVal_Succes_03) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1246,24 +1169,22 @@ TEST_F(KtClassTest, PerformRead_ReadSwtVal_Succes_03) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_ReadSwtVal_OPT1_NoMatch) {
+TEST_F(SwitchTest, PerformRead_ReadSwtVal_OPT1_NoMatch) {
   val_switch_st_t v;
   key_switch_t k;
-  //key_switch_t *key = reinterpret_cast<key_switch_t>(k);
-  //memset(&k, 0, sizeof(key_switch_t));
+  memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
+
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1276,11 +1197,10 @@ TEST_F(KtClassTest, PerformRead_ReadSwtVal_OPT1_NoMatch) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
   //sess.stub_setAddOutput((uint32_t)key);
   int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_ReadSwtVal_DataType_NoMatch_Success) {
+TEST_F(SwitchTest, PerformRead_ReadSwtVal_DataType_NoMatch_Success) {
   val_switch_st_t v;
   key_switch_t k;
   memset(&v, 0, sizeof(val_switch_st_t));
@@ -1290,7 +1210,6 @@ TEST_F(KtClassTest, PerformRead_ReadSwtVal_DataType_NoMatch_Success) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1303,11 +1222,10 @@ TEST_F(KtClassTest, PerformRead_ReadSwtVal_DataType_NoMatch_Success) {
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
   
   int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_ReadSwtVal_addOutput_fail) {
+TEST_F(SwitchTest, PerformRead_ReadSwtVal_addOutput_fail) {
   val_switch_st_t v;
   key_switch_t k;
   memset(&v, 0, sizeof(val_switch_st_t));
@@ -1317,16 +1235,13 @@ TEST_F(KtClassTest, PerformRead_ReadSwtVal_addOutput_fail) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-
-TEST_F(KtClassTest, PerformRead_005) {
+TEST_F(SwitchTest, PerformRead_005) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1336,7 +1251,6 @@ TEST_F(KtClassTest, PerformRead_005) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1348,10 +1262,10 @@ TEST_F(KtClassTest, PerformRead_005) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_UnsupportDB_STARTUP) {
+TEST_F(SwitchTest, PerformRead_UnsupportDB_STARTUP) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1361,7 +1275,6 @@ TEST_F(KtClassTest, PerformRead_UnsupportDB_STARTUP) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1373,10 +1286,10 @@ TEST_F(KtClassTest, PerformRead_UnsupportDB_STARTUP) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STARTUP,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, PerformRead_UnsupportDb_CANDIDDATE) {
+TEST_F(SwitchTest, PerformRead_UnsupportDb_CANDIDDATE) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1386,7 +1299,6 @@ TEST_F(KtClassTest, PerformRead_UnsupportDb_CANDIDDATE) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1398,12 +1310,10 @@ TEST_F(KtClassTest, PerformRead_UnsupportDb_CANDIDDATE) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-
-
-TEST_F(KtClassTest, PerformRead_GetOneRow_006) {
+TEST_F(SwitchTest, PerformRead_GetOneRow_006) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1413,7 +1323,6 @@ TEST_F(KtClassTest, PerformRead_GetOneRow_006) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
-  ServerSession ::clearStubData();
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1425,11 +1334,11 @@ TEST_F(KtClassTest, PerformRead_GetOneRow_006) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_IPC_WRITE_ERROR);
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*******PopulateSchemaForValidFlag*********/
-TEST_F(KtClassTest, PopulateSchemaForValidFlag_Success) {
+TEST_F(SwitchTest, PopulateSchemaForValidFlag_Success) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1437,13 +1346,12 @@ TEST_F(KtClassTest, PopulateSchemaForValidFlag_Success) {
   Kt_Switch KtSwitchObj;
   string valid_new;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.PopulateSchemaForValidFlag(db_conn, &k ,&v, valid_new, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, PopulateSchemaForValidFlag_Failure) {
+TEST_F(SwitchTest, PopulateSchemaForValidFlag_Failure) {
   key_switch_t k;
   val_switch_st_t v;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1451,66 +1359,61 @@ TEST_F(KtClassTest, PopulateSchemaForValidFlag_Failure) {
   Kt_Switch KtSwitchObj;
   string valid_new;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_GENERAL_ERROR);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_GENERAL_ERROR);
   int ret =  KtSwitchObj.PopulateSchemaForValidFlag(db_conn, &k ,&v, valid_new, UNC_DT_STATE);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /********SetOperSatus******/
 //Faliure of GetoneRow
-TEST_F(KtClassTest, SetOperStatus_001) {
-
+TEST_F(SwitchTest, SetOperStatus_001) {
   key_switch_t k;
-  memset(&k, 0, sizeof(key_switch_t));
-  Kt_Switch KtSwitchObj;
   getKeyForKtSwitch1(k);
+
+  Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)1);
-  EXPECT_EQ(ret,UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(KtClassTest, SetOperStatus_002) {
-
+TEST_F(SwitchTest, SetOperStatus_002) {
   key_switch_t k;
-  Kt_Switch KtSwitchObj;
   getKeyForKtSwitch1(k);
+
+  Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)0);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(KtClassTest, SetOperStatus_004) {
-
+TEST_F(SwitchTest, SetOperStatus_004) {
   key_switch_t k;
-  Kt_Switch KtSwitchObj;
   getKeyForKtSwitch1(k);
+
+  Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, SetOperStatus_005) {
-
+TEST_F(SwitchTest, SetOperStatus_005) {
   key_switch_t k;
-  Kt_Switch KtSwitchObj;
   getKeyForKtSwitch1(k);
+
+  Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
@@ -1520,206 +1423,195 @@ TEST_F(KtClassTest, SetOperStatus_005) {
   ser_evt.addOutput((uint32_t)UNC_DT_STATE);
   ser_evt.addOutput((uint32_t)UNC_KT_SWITCH);
  
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)0);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /******GetAlarmStatus******/
 //GetOneRow Success
-TEST_F(KtClassTest, GetAlarmStatus_sucess_01) {
+TEST_F(SwitchTest, GetAlarmStatus_sucess_01) {
   key_switch_t k;
+  getKeyForKtSwitch1(k);
+
   Kt_Switch KtSwitchObj;
   uint64_t alarm_status = 1;
-  getKeyForKtSwitch1(k);
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //GetOneRow Failure
-TEST_F(KtClassTest, GetAlarmStatus_Nosuccess_01) {
+TEST_F(SwitchTest, GetAlarmStatus_Nosuccess_01) {
   key_switch_t k;
+  getKeyForKtSwitch1(k);
+
   Kt_Switch KtSwitchObj;
   uint64_t alarm_status = 1;
-  getKeyForKtSwitch1(k);
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
  
 /*****HandleDriverAlarms******/
 
 //Reading alarm status from db failed
-TEST_F(KtClassTest, HandleDriverAlarm_01) {
+TEST_F(SwitchTest, HandleDriverAlarm_01) {
   key_switch_t k;
   val_switch_st_t v;
-  Kt_Switch KtSwitchObj;
-  memset(&k, 0, sizeof(key_switch_t));
+  getKeyForKtSwitch1(k);
   memset(&v, 0, sizeof(val_switch_st_t));
+
+  Kt_Switch KtSwitchObj;
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtSwitch1(k);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 //Error creating ServerEvent object
 //alarm_type:UNC_FLOW_ENT_FULL, oper_type:UNC_OP_CREATE
-TEST_F(KtClassTest, HandleDriverAlarm_02) {
+TEST_F(SwitchTest, HandleDriverAlarm_02) {
   key_switch_t k;
   val_switch_st_t v;
-  Kt_Switch KtSwitchObj;
-  memset(&k, 0, sizeof(key_switch_t));
+  getKeyForKtSwitch1(k);
   memset(&v, 0, sizeof(val_switch_st_t));
+
+  Kt_Switch KtSwitchObj;
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtSwitch1(k);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, HandleDriverAlarm_03) {
+TEST_F(SwitchTest, HandleDriverAlarm_03) {
   key_switch_t k;
   val_switch_st_t v;
-  Kt_Switch KtSwitchObj;
-  memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
+  getKeyForKtSwitch1(k);
+
+  Kt_Switch KtSwitchObj;
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtSwitch1(k);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, HandleDriverAlarm_04) {
+TEST_F(SwitchTest, HandleDriverAlarm_04) {
   key_switch_t k;
   val_switch_st_t v;
-  Kt_Switch KtSwitchObj;
-  memset(&k, 0, sizeof(key_switch_t));
+  getKeyForKtSwitch1(k);
   memset(&v, 0, sizeof(val_switch_st_t));
+
+  Kt_Switch KtSwitchObj;
   uint32_t alarm_type = UNC_OFS_LACK_FEATURES;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtSwitch1(k);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_IPC_WRITE_ERROR);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(KtClassTest, HandleDriverAlarm_05) {
+TEST_F(SwitchTest, HandleDriverAlarm_05) {
   key_switch_t k;
   val_switch_st_t v;
-  Kt_Switch KtSwitchObj;
-  memset(&k, 0, sizeof(key_switch_t));
+  getKeyForKtSwitch1(k);
   memset(&v, 0, sizeof(val_switch_st_t));
+
+  Kt_Switch KtSwitchObj;
   uint32_t alarm_type = UNC_OFS_LACK_FEATURES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtSwitch1(k);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /*****HandleOperStaus******/
-TEST_F(KtClassTest, Handleoperstatus_BadRequest) {
+TEST_F(SwitchTest, Handleoperstatus_BadRequest) {
   key_switch_t *k = NULL;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, k, &v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_BAD_REQUEST);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-TEST_F(KtClassTest, Handleoperstatus_GetOneRow_success) {
+TEST_F(SwitchTest, Handleoperstatus_GetOneRow_success) {
   key_switch_t k ;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(KtClassTest, Handleoperstatus_GetOneRow_Fail) {
+TEST_F(SwitchTest, Handleoperstatus_GetOneRow_Fail) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_GET);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(KtClassTest, Handleoperstatus_GetBulkRow_Success) {
+TEST_F(SwitchTest, Handleoperstatus_GetBulkRow_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_ACCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(KtClassTest, Handleoperstatus_GetBulkRow_Failure) {
+TEST_F(SwitchTest, Handleoperstatus_GetBulkRow_Failure) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(KtClassTest, GetSwitchValStructure) {
+TEST_F(SwitchTest, GetSwitchValStructure) {
   key_switch_t k;
-  val_switch_st_t *obj_val_switch;
+  val_switch_st_t *obj_val_switch(NULL);
   vector<TableAttrSchema> vect_table_attr_schema;
   vector<string> vect_prim_keys;
-  uint8_t operation_type;
-  val_switch_st_t *val_switch_valid_st;
+  uint8_t operation_type(UNC_OP_READ);
+  val_switch_st_t *val_switch_valid_st(NULL);
   stringstream valid;
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
@@ -1727,18 +1619,17 @@ TEST_F(KtClassTest, GetSwitchValStructure) {
   int ret = UPPL_RC_SUCCESS;
   KtSwitchObj.GetSwitchValStructure(db_conn, obj_val_switch,vect_table_attr_schema, vect_prim_keys,
                          operation_type, val_switch_valid_st,valid);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, GetSwitchValStructure_valid) {
+TEST_F(SwitchTest, GetSwitchValStructure_valid) {
   key_switch_t k;
   val_switch_st_t obj_val_switch;
   memset(&obj_val_switch,0,sizeof(obj_val_switch));
   vector<TableAttrSchema> vect_table_attr_schema;
   vector<string> vect_prim_keys;
-  uint8_t operation_type;
-  val_switch_st_t *val_switch_valid_st;
+  uint8_t operation_type(UNC_OP_READ);
+  val_switch_st_t *val_switch_valid_st(NULL);
   stringstream valid;
   Kt_Switch KtSwitchObj;
   obj_val_switch.valid[kIdxSwitch] = UNC_VF_VALID;
@@ -1747,78 +1638,88 @@ TEST_F(KtClassTest, GetSwitchValStructure_valid) {
   int ret = UPPL_RC_SUCCESS;
   KtSwitchObj.GetSwitchValStructure(db_conn, &obj_val_switch,vect_table_attr_schema, vect_prim_keys,
                          operation_type, val_switch_valid_st,valid);
-  EXPECT_EQ(ret,UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-
 /*******UpdateSwitchValidFlag******/
 
-TEST_F(KtClassTest, UpdateSwitchValidFlag) {
-  key_switch_t *k = new key_switch_t;
-  val_switch_t *v = new val_switch_t;
+TEST_F(SwitchTest, UpdateSwitchValidFlag) {
+  key_switch_t k;
+  val_switch_t v;
   val_switch_st_t v_st;
+  memset(&k, 0,sizeof(k));
+  memset(&v, 0,sizeof(v));
+  memset(&v_st, 0,sizeof(v_st));
  
   Kt_Switch KtSwitchObj;
   unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_ERR_NO_SUCH_INSTANCE);
-  unc::uppl::ODBCManager::clearStubData();
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
+                                               new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(KtClassTest, UpdateSwitchValidFlag_Success) {
-  key_switch_t *k = new key_switch_t;
-  val_switch_t *v = new val_switch_t;
+TEST_F(SwitchTest, UpdateSwitchValidFlag_Success) {
+  key_switch_t k;
+  val_switch_t v;
   val_switch_st_t v_st;
+  memset(&k, 0,sizeof(k));
+  memset(&v, 0,sizeof(v));
+  memset(&v_st, 0,sizeof(v_st));
  
   Kt_Switch KtSwitchObj;
   unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
+                                               new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
-TEST_F(KtClassTest, UpdateSwitchValidFlag_NoFillVal) {
-  key_switch_t *k = new key_switch_t;
-  val_switch_t *v = new val_switch_t;
+TEST_F(SwitchTest, UpdateSwitchValidFlag_NoFillVal) {
+  key_switch_t k;
+  val_switch_t v;
   val_switch_st_t v_st;
+  memset(&k, 0,sizeof(k));
+  memset(&v, 0,sizeof(v));
+  memset(&v_st, 0,sizeof(v_st));
  
   Kt_Switch KtSwitchObj;
-  unc_keytype_validflag_t new_valid_val;
+  unc_keytype_validflag_t new_valid_val(UNC_VF_INVALID);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_ERR_DB_UPDATE);
-  unc::uppl::ODBCManager::clearStubData();
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
+                                               new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(KtClassTest, UpdateSwitchValidFlag_ret_NULL) {
-  key_switch_t *k = new key_switch_t;
-  val_switch_t *v = NULL;
+TEST_F(SwitchTest, UpdateSwitchValidFlag_ret_NULL) {
+  key_switch_t k;
+  val_switch_st_t v;
   val_switch_st_t v_st;
+  memset(&k, 0,sizeof(k));
+  memset(&v, 0,sizeof(v));
+  memset(&v_st, 0,sizeof(v_st));
  
   Kt_Switch KtSwitchObj;
-  unc_keytype_validflag_t new_valid_val;
+  unc_keytype_validflag_t new_valid_val(UNC_VF_INVALID);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, k, v, v_st, new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  pfc_log_set_level(PFC_LOGLVL_VERBOSE);
+  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
+                                               new_valid_val, UNC_DT_STATE);
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
 
 /********FrameValidValue*******/
-TEST_F(KtClassTest, FrameValidValue) {
+TEST_F(SwitchTest, FrameValidValue) {
   string attr_value = "ctr";
   val_switch_st obj_val_switch;
   Kt_Switch KtSwitchObj;
   int ret = UPPL_RC_SUCCESS;
   obj_val_switch.valid[kIdxSwitch] = UNC_VF_VALID;
   KtSwitchObj.FrameValidValue(attr_value, obj_val_switch);
-  EXPECT_EQ(ret, UPPL_RC_SUCCESS);
-  unc::uppl::ODBCManager::clearStubData();
+  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
 }
-
diff --git a/coordinator/test/modules/uppl/utest/stub/Makefile b/coordinator/test/modules/uppl/utest/stub/Makefile
deleted file mode 100644 (file)
index 1d52d38..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that stubs to run unit tests for UPPL module.
-##
-
-
-
-STUB_OBJS=stub_objs
-
-createobjs: 
-       mkdir -p $(STUB_OBJS)
-.NOTPARALLEL: createobjs buildall link_stub
-all: createobjs buildall link_stub
-OBJS = $(STUB_OBJS)/odbcm_mgr.o \
-       $(STUB_OBJS)/tclib_module.o \
-       $(STUB_OBJS)/odbcm_utils_stub.o \
-       $(STUB_OBJS)/ipc_client.o \
-       $(STUB_OBJS)/ipc_server.o \
-       $(STUB_OBJS)/module.o \
-       $(STUB_OBJS)/alarm.o \
-       $(STUB_OBJS)/_cfdef_uppl_ctr_capability.o  \
-
-       
-buildall:
-
-       @echo "****** Invoking tclib_stub makefile"
-       @($(MAKE) -C ./tclib_module/ );
-
-       @echo "****** Invoking ODBC makefile"
-       @($(MAKE) -C ./ODBC/ )
-       @echo "****** Invoking ipc_client_server_stub makefile"
-       @($(MAKE) -C ./ipc_client_server/ );
-       cp -rf ../../../../../dist/target/objs/modules/uppl/_cfdef_uppl_ctr_capability.o  $(STUB_OBJS)
-       
-clean: clearall
-
-clearall:
-       
-
-       @(cd ./ODBC/ ;$(MAKE) clean)
-       @(cd ./ipc_client_server/ ;$(MAKE) clean)
-       @(cd ./tclib_module/ ;$(MAKE) clean)
-       @(cd $(STUB_OBJS) ;rm -rf stub.a)
-        
-
-link_stub :$(STUB_OBJS)/stub.a
-
-$(STUB_OBJS)/stub.a :$(OBJS)
-          $(AR) $(ARFLAGS) $@ $^
-
-
-
-
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/Makefile b/coordinator/test/modules/uppl/utest/stub/ODBC/Makefile
deleted file mode 100644 (file)
index b4dc000..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-#Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that includes ODBC stub drives the production of unit tests for UPPL module.
-##
-
-
-
-CPPFLAGS = -g
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-
-INCLUDE =   -I$ ../stub/ODBC/include \
-            -I$ ../stub/ODBC \
-            -I$(SRC_DIR)/ \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-            -I$(SRC_DIR)/../dist/target/objs/core_include \
-            -I$(SRC_DIR)/../dist/target/objs/core/include \
-            -I$(SRC_DIR)/../dist/target/objs/include \
-            -I$(SRC_DIR)/../core/include \
-            -I$(SRC_DIR)/../include/ \
-            -I$(SRC_DIR)/modules \
-
-all: compile
-
-Dependent_File = odbcm_mgr.cc odbcm_utils_stub.cc
-OBJ1 = $(patsubst %.cc,$(OBJS)/%.o,$(Dependent_File))
-
-clean :
-       @(cd $(OBJS); rm -rf *.o)
-
-$(OBJ1):$(OBJS)/%.o : %.cc odbcm_common.hh odbcm_db_tableschema.hh odbcm_utils_stub.hh
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-compile :$(OBJ1)
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_common.hh b/coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_common.hh
deleted file mode 100644 (file)
index 72f9c47..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-
-#ifndef _ODBCM_COMMON_HH_
-#define _ODBCM_COMMON_HH_
-
-#include <sqlext.h>
-#include <sqltypes.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <stdio.h>
-#include <unc/keytype.h>
-#include <pfc/log.h>
-#include <sql.h>
-#include <map>
-#include <vector>
-#include <utility>
-#include <string>
-#include "../physical_common_def.hh"
-
-namespace unc {
-namespace uppl {
-
-/**number of table present in each DB*/
-/**startup database UNC_DT_STARTUP table count*/
-#define ODBCM_MAX_STARTUP_TABLES        3
-/**candidate database UNC_DT_CANDIDATE table count*/
-#define ODBCM_MAX_CANDIDATE_TABLES      3
-/**running database UNC_DT_RUNNING table count*/
-#define ODBCM_MAX_RUNNING_TABLES        3
-/**state database UNC_DT_STATE table count*/
-#define ODBCM_MAX_STATE_TABLES          5
-/**import database UNC_DT_IMPORT table count*/
-#define ODBCM_MAX_IMPORT_TABLES         6
-/**Total number of configuration tables **/
-#define ODBCM_MAX_UPPL_TABLES           3
-/**Total number of running and state tables which are stored together in
- * running database
- */
-#define ODBCM_MAX_RUNNING_STATE_TABLES  8
-/**odbc manager's connection configuration file, which consists
- * 1. server name/ip
- * 2. name of driver
- * 3. data source name (dsn)
- * 4. connection type
- * 5. port number on which the dbms server is running
- * 6. time out
- * 7. connection time out
- * 8. user login timeout
- * 9. database username
- * 10.database user's password
- */
-#define ODBCM_CONF_FILE                 "odbcm.conf"
-/**relative path of ODBCM_CONF_FILE*/
-#define ODBCM_CONF_FILE_PATH            "/"
-/**null string assign*/
-#define ODBCM_NULL_STRING ""
-
-//  UPPL table names
-#define UPPL_CTR_TABLE                  "controller_table"
-#define UPPL_CTR_DOMAIN_TABLE           "ctr_domain_table"
-#define UPPL_LOGICALPORT_TABLE          "logicalport_table"
-#define UPPL_LOGICAL_MEMBER_PORT_TABLE  "logical_member_port_table"
-#define UPPL_SWITCH_TABLE               "switch_table"
-#define UPPL_PORT_TABLE                 "port_table"
-#define UPPL_LINK_TABLE                 "link_table"
-#define UPPL_BOUNDARY_TABLE             "boundary_table"
-
-
-/**controller table Column names enumeration*/
-typedef enum {
-  CTR_NAME = 0,
-  CTR_TYPE,
-  CTR_VERSION,
-  CTR_DESCRIPTION,
-  CTR_IP_ADDRESS,
-  CTR_USER_NAME,
-  CTR_PASSWORD,
-  CTR_ENABLE_AUDIT,
-  CTR_ACTUAL_VERSION,
-  CTR_OPER_STATUS,
-  CTR_VALID,
-  CTR_CS_ROW_STATUS,
-  CTR_CS_ATTR = 12,
-  DOMAIN_NAME = 13,
-  DOMAIN_TYPE,
-  DOMAIN_DESCRIPTION,
-  DOMAIN_OP_STATUS,
-  DOMAIN_VALID,
-  DOMAIN_CS_ROW_STATUS,
-  DOMAIN_CS_ATTR = 19,
-  LP_PORT_ID = 20,
-  LP_DESCRIPTION,
-  LP_PORT_TYPE,
-  LP_SWITCH_ID,
-  LP_PHYSICAL_PORT_ID,
-  LP_OPER_DOWN_CRITERIA,
-  LP_OPER_STATUS,
-  LP_CTR_VALID = 27,
-  LMP_SWITCH_ID = 28,
-  LMP_PHYSICAL_PORT_ID,
-  LMP_LP_PORT_ID = 30,
-  SWITCH_ID = 31,
-  SWITCH_DESCRIPTION,
-  SWITCH_MODEL,
-  SWITCH_IP_ADDRESS,
-  SWITCH_IPV6_ADDRESS,
-  SWITCH_ADMIN_STATUS,
-  SWITCH_DOMAIN_NAME,
-  SWITCH_MANUFACTURER,
-  SWITCH_HARDWARE,
-  SWITCH_SOFTWARE,
-  SWITCH_ALARM_STATUS,
-  SWITCH_OPER_STATUS,
-  SWITCH_VALID = 43,
-  PORT_ID = 44,
-  PORT_NUMBER,
-  PORT_DESCRIPTION,
-  PORT_ADMIN_STATUS,
-  PORT_DIRECTION,
-  PORT_TRUNK_ALL_VLAN,
-  PORT_OPER_STATUS,
-  PORT_MAC_ADDRESS,
-  PORT_DUPLEX,
-  PORT_SPEED,
-  PORT_ALARM_STATUS,
-  PORT_LOGIC_PORT_ID,
-  PORT_VALID = 56,
-  LINK_SWITCH_ID1 = 57,
-  LINK_PORT_ID1,
-  LINK_SWITCH_ID2,
-  LINK_PORT_ID2,
-  LINK_DESCRIPTION,
-  LINK_OPER_STATUS,
-  LINK_VALID = 63,
-  BDRY_ID = 64,
-  BDRY_DESCRIPTION,
-  BDRY_CTR_NAME1,
-  BDRY_DM_NAME1,
-  BDRY_PORT_ID1,
-  BDRY_CTR_NAME2,
-  BDRY_DM_NAME2,
-  BDRY_PORT_ID2,
-  BDRY_OPER_STATUS,
-  BDRY_VALID,
-  BDRY_ROW_STATUS,
-  BDRY_ATTR = 75,
-  UNKNOWN_COLUMN
-}ODBCMTableColumns;
-
-/*
-* odbcm tables column name struct
-*/
-typedef struct {
-  const unc::uppl::ODBCMTableColumns column_id;
-  const std::string column_string;
-}OdbcmColumnName;
-
-//  UPPL tables column names
-//  controller_table columns
-#define CTR_NAME_STR            "controller_name"
-#define CTR_TYPE_STR            "type"
-#define CTR_VERSION_STR         "version"
-#define CTR_DESCRIPTION_STR     "description"
-#define CTR_IP_ADDRESS_STR      "ip_address"
-#define CTR_USER_NAME_STR       "user_name"
-#define CTR_PASSWORD_STR        "password"
-#define CTR_ENABLE_AUDIT_STR    "enable_audit"
-#define CTR_ACTUAL_VERSION_STR  "actual_version"
-#define CTR_OPER_STATUS_STR     "oper_status"
-#define CTR_VALID_STR           "valid"
-#define CTR_CS_ROW_STATUS_STR   "cs_row_status"
-#define CTR_CS_ATTR_STR         "cs_attr"
-
-// ctr_domain_table columns
-#define DOMAIN_NAME_STR          "domain_name"
-#define DOMAIN_TYPE_STR          "type"
-#define DOMAIN_DESCRIPTION_STR   "description"
-#define DOMAIN_OP_STATUS_STR     "oper_status"
-#define DOMAIN_VALID_STR         "valid"
-#define DOMAIN_CS_ROW_STATUS_STR "cs_row_status"
-#define DOMAIN_CS_ATTR_STR       "cs_attr"
-
-//  logicalport_table columns
-#define LP_PORT_ID_STR            "port_id"
-#define LP_DESCRIPTION_STR        "description"
-#define LP_PORT_TYPE_STR          "port_type"
-#define LP_SWITCH_ID_STR          "switch_id"
-#define LP_PHYSICAL_PORT_ID_STR   "physical_port_id"
-#define LP_OPER_DOWN_CRITERIA_STR "oper_down_criteria"
-#define LP_OPER_STATUS_STR        "oper_status"
-#define LP_CTR_VALID_STR          "valid"
-
-//  logical_memberport_table columns
-#define LMP_SWITCH_ID_STR        "switch_id"
-#define LMP_PHYSICAL_PORT_ID_STR "physical_port_id"
-#define LMP_LP_PORT_ID_STR       "port_id"
-
-//  switch table columns
-#define SWITCH_ID_STR           "switch_id"
-#define SWITCH_DESCRIPTION_STR  "description"
-#define SWITCH_MODEL_STR        "model"
-#define SWITCH_IP_ADDRESS_STR   "ip_address"
-#define SWITCH_IPV6_ADDRESS_STR "ipv6_address"
-#define SWITCH_ADMIN_STATUS_STR "admin_status"
-#define SWITCH_DOMAIN_NAME_STR  "domain_name"
-#define SWITCH_MANUFACTURER_STR "manufacturer"
-#define SWITCH_HARDWARE_STR     "hardware"
-#define SWITCH_SOFTWARE_STR     "software"
-#define SWITCH_ALARM_STATUS_STR "alarms_status"
-#define SWITCH_OPER_STATUS_STR  "oper_status"
-#define SWITCH_VALID_STR        "valid"
-
-//  port table columns
-#define PORT_ID_STR             "port_id"
-#define PORT_NUMBER_STR         "port_number"
-#define PORT_DESCRIPTION_STR    "description"
-#define PORT_ADMIN_STATUS_STR   "admin_status"
-#define PORT_DIRECTION_STR      "direction"
-#define PORT_TRUNK_ALL_VLAN_STR "trunk_allowed_vlan"
-#define PORT_OPER_STATUS_STR    "oper_status"
-#define PORT_MAC_ADDRESS_STR    "mac_address"
-#define PORT_DUPLEX_STR         "duplex"
-#define PORT_SPEED_STR          "speed"
-#define PORT_ALARM_STATUS_STR   "alarms_status"
-#define PORT_LOGIC_PORT_ID_STR  "logical_port_id"
-#define PORT_VALID_STR          "valid"
-
-// link_table columns
-#define LINK_SWITCH_ID1_STR     "switch_id1"
-#define LINK_PORT_ID1_STR       "port_id1"
-#define LINK_SWITCH_ID2_STR     "switch_id2"
-#define LINK_PORT_ID2_STR       "port_id2"
-#define LINK_DESCRIPTION_STR    "description"
-#define LINK_OPER_STATUS_STR    "oper_status"
-#define LINK_VALID_STR          "valid"
-
-// boundary_table columns
-#define BDRY_ID_STR             "boundary_id"
-#define BDRY_DESCRIPTION_STR    "description"
-#define BDRY_CTR_NAME1_STR      "controller_name1"
-#define BDRY_DM_NAME1_STR       "domain_name1"
-#define BDRY_PORT_ID1_STR       "logical_port_id1"
-#define BDRY_CTR_NAME2_STR      "controller_name2"
-#define BDRY_DM_NAME2_STR       "domain_name2"
-#define BDRY_PORT_ID2_STR       "logical_port_id2"
-#define BDRY_OPER_STATUS_STR    "oper_status"
-#define BDRY_VALID_STR          "valid"
-#define BDRY_ROW_STATUS_STR     "cs_row_status"
-#define BDRY_ATTR_STR           "cs_attr"
-
-#define PHY_FINI_READ_LOCK() \
-  if (PhysicalLayer::phyFiniFlag == 1) { \
-    pfc_log_info("PhysicalLayer Fini is invoked already ..!!"); \
-    return ODBCM_RC_GENERAL_ERROR; \
-  } \
-  ScopedReadWriteLock dbFiniLock(PhysicalLayer::get_phy_fini_db_lock(), \
-      PFC_FALSE); \
-  if (PhysicalLayer::phyFiniFlag == 1) { \
-    pfc_log_info("PhysicalLayer:: Fini is invoked already ..!!"); \
-    return ODBCM_RC_GENERAL_ERROR; \
-  }
-
-/**Macro to fill the DBTableSchema Object instance with given input values.
- * In the case of static access. (memory might be allocated earlier, here reuse
- * the same memory*/
-#define ODBCM_FILL_ATTRIBUTE_INFO(attr_var, \
-    attr_name, attr_value, attr_length, attr_type, attr_vector) \
-    { \
-  attr_var.table_attribute_name = attr_name; \
-  attr_var.p_table_attribute_value = reinterpret_cast<void*>(&attr_value); \
-  attr_var.table_attribute_length = attr_length;\
-  attr_var.request_attribute_type = attr_type; \
-  attr_vector.push_back(attr_var); \
-    }
-
-#define ODBCM_FILL_ATTRIBUTE_INFOS(attr_var, \
-    attr_name, attr_value, attr_length, attr_type, attr_vector) \
-    { \
-  attr_var.table_attribute_name = attr_name; \
-  attr_var.p_table_attribute_value = reinterpret_cast<void*>(attr_value); \
-  attr_var.table_attribute_length = attr_length;\
-  attr_var.request_attribute_type = attr_type; \
-  attr_vector.push_back(attr_var); \
-    }
-
-/**return type of query factory methods*/
-typedef std::string SQLQUERY;
-/* To receive all data type values from ITC
- * and the same template will be filled up during the values fetch from table*/
-template <typename T>
-struct ColumnAttrValue {
-  T value;
-};
-/**this structure will hold the table name, column names, datatype and values
- * template address.*/
-struct TableAttrSchema {
-  ODBCMTableColumns table_attribute_name;
-  //  pointer to struct TableAttrValue
-  void*               p_table_attribute_value;
-  unsigned int        table_attribute_length;
-  AttributeDataType   request_attribute_type;
-};
-/**enum of arithmetic operators */
-typedef enum {
-  UNKNOWN_OPERATOR = -1,
-  EQUAL,
-  NOT_EQUAL,
-  GREATER,
-  GREATER_EQUAL,
-  LESSER,
-  LESSER_EQUAL,
-  MULTIPLE_QUERY
-}ODBCMOperator;
-
-/* Enum to store the table_id */
-typedef enum {
-  UNKNOWN_TABLE = 0,
-  CTR_TABLE,
-  CTR_DOMAIN_TABLE,
-  LOGICALPORT_TABLE,
-  LOGICAL_MEMBERPORT_TABLE,
-  SWITCH_TABLE,
-  PORT_TABLE,
-  LINK_TABLE,
-  BOUNDARY_TABLE,
-  IS_ROW_EXISTS  // keep it last always
-}ODBCMTable;
-/**During commit all configuration operation, various states will be handled
- * internally, those are listed in this enum*/
-typedef enum {
-  CHANGE_ROWSTATUS1,
-  CHANGE_ROWSTATUS2,
-  COPY_STATE_INFO, /*from running to candidate*/
-  TRUNCATE_RUNNING,
-  COPY_CANDIDATE_TO_RUNNING,
-  COMMIT_END
-} ODBCMCommitStates;
-
-}  // namespace uppl
-}  // namespace unc
-
-#endif /* _ODBCM_COMMON_HH_*/
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_db_tableschema.hh b/coordinator/test/modules/uppl/utest/stub/ODBC/include/odbcm_db_tableschema.hh
deleted file mode 100644 (file)
index 738c17c..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-/**
- * @brief   ODBC Manager
- * @file    odbcm_db_tableschema.hh
- *
- */
-#ifndef _ODBCM_DB_TABLESCHEMA_HH_
-#define _ODBCM_DB_TABLESCHEMA_HH_
-
-#include <unc/uppl_common.h>
-#include <string>
-#include <list>
-#include <vector>
-#include "odbcm_common.hh"
-
-namespace unc {
-namespace uppl {
-
-class DBTableSchema {
-  public:
-    /*
-     * Constructor for DBTableSchema
-     */
-    DBTableSchema();
-    /*
-     * Destination for DBTableSchema
-     */
-    ~DBTableSchema();
-    /*
-     * This corresponds to table name in db
-     */
-    ODBCMTable table_name_;
-    /*
-     * This contains primary keys of the table
-     */
-    std::vector <std::string> primary_keys_;
-    /*
-     * This contains the list of database row information
-     */
-    std::list <std::vector<TableAttrSchema> > row_list_;
-    /*
-     * Return status from database
-     */
-    CsRowStatus db_return_status_;
-
-    /*
-     * Get the table name
-     */
-    ODBCMTable get_table_name();
-    /*
-     * Set the table name
-     */
-    void set_table_name(ODBCMTable table_name);
-    /*
-     * Get the vector containing primary keys
-     */
-    std::vector <std::string>  get_primary_keys();
-    /*
-     * Get the list containing all the attribute vectors
-     */
-    std::list < std::vector <TableAttrSchema> >& get_row_list();
-    /*
-     * To push the primary keys in to primary_key vector
-     */
-    void PushBackToPrimaryKeysVector(std::string attribute_name);
-    /*
-     * To push the attribute vector to the row_list_
-     */
-    void PushBackToRowList(std::vector <TableAttrSchema> attributes_vector);
-    /*
-     * To set the primary keys
-     */
-    void set_primary_keys(std::vector <std::string>);
-    /*
-     * To set the row list
-     */
-    void set_row_list(std::list <std::vector<TableAttrSchema> >);
-    /*
-     * To push the TableAttrSchema to Attribute vector
-     */
-    void PushBackToTableRowVector(TableAttrSchema);  // WIP
-    /*
-     * To free the memory in DBTableSchema
-     */
-    void FreeDBTableSchema();
-    /*
-     * Method to print the database schema information
-     */
-    void PrintDBTableSchema();
-
-  private:
-    /*
-    * To print the char buffer values in DBTableSchema
-    */
-    inline std::string Odbcm_PrintCharBuffer(uint8_t*, int, ODBCMTableColumns);
-};  // class DBTableSchema
-
-}  // namespace uppl
-}  // namespace unc
-
-#endif  // _ODBCM_DB_TABLESCHEMA_HH_
index b56d130948b179373883f074dc9d0561f5a40db5..dc6fbd4aee03af448070c6ec90fefe437ca8520e 100644 (file)
 
 #ifndef _ODBCM_MGR_HH_
 #define _ODBCM_MGR_HH_
+
 #include <iostream>
-//#include "/root/dev_july23/src/include/unc/keytype.h"
 #include <vector>
 #include <map>
 #include <string>
-#include "odbcm_common.hh"
-#include "odbcm_db_tableschema.hh"
+#include <odbcm_common.hh>
+#include <odbcm_db_tableschema.hh>
 
 namespace unc {
 namespace uppl {
+
 class QueryFactory;
 class QueryProcessor;
 class DBVarbind;
 class OdbcmConnectionHandler;
+
 /**ODBMCManager is a class, exposes the API methods to UPPL managers and
  * internal transaction coordinator (ITC)
  * - Singleton class
@@ -223,17 +225,23 @@ class ODBCManager {
     // Closes the Read Write connections
     ODBCM_RC_STATUS CloseRwConnection();
 
-  static void stub_setResultcode(ODBCManager::Method methodType ,ODBCM_RC_STATUS res_code) {
+    static void stub_setResultcode(ODBCManager::Method methodType ,ODBCM_RC_STATUS res_code) {
         method_resultcode_map.insert(std::make_pair(methodType,res_code));
     }
 
     static void stub_setSingleRecordExists(bool exists) {
-        exists_=exists;
+        exists_ = exists;
+    }
+
+    static void stub_setSiblingCount(uint32_t count) {
+        sibling_count = count;
     }
 
     static void clearStubData() {
-                method_resultcode_map.clear();
-        } 
+        method_resultcode_map.clear();
+        exists_ = false;
+        sibling_count = 0;
+    }
 
   private:
     /**constructor of ODBCManager class
@@ -276,6 +284,7 @@ class ODBCManager {
     ODBCM_RC_STATUS stub_getMappedResultCode(Method);
     static std::map<ODBCManager::Method,ODBCM_RC_STATUS> method_resultcode_map;
     static  bool exists_;
+    static uint32_t sibling_count;
 };
 }  // namespace uppl
 }  // namespace unc
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_common.hh b/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_common.hh
deleted file mode 100644 (file)
index b6daf02..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-/**
- * @brief   ODBC Manager
- * @file    odbcm_common.hh
- *
- */
-#ifndef _ODBCM_COMMON_HH_
-#define _ODBCM_COMMON_HH_
-
-#include <sqlext.h>
-#include <sqltypes.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <stdio.h>
-#include <unc/keytype.h>
-#include <pfc/log.h>
-#include <sql.h>
-#include <map>
-#include <vector>
-#include <utility>
-#include <string>
-#include "physical_common_def.hh"
-
-namespace unc {
-namespace uppl {
-
-/**number of table present in each DB*/
-/**startup database UNC_DT_STARTUP table count*/
-#define ODBCM_MAX_STARTUP_TABLES        3
-/**candidate database UNC_DT_CANDIDATE table count*/
-#define ODBCM_MAX_CANDIDATE_TABLES      3
-/**running database UNC_DT_RUNNING table count*/
-#define ODBCM_MAX_RUNNING_TABLES        3
-/**state database UNC_DT_STATE table count*/
-#define ODBCM_MAX_STATE_TABLES          5
-/**import database UNC_DT_IMPORT table count*/
-#define ODBCM_MAX_IMPORT_TABLES         6
-/**Total number of configuration tables **/
-#define ODBCM_MAX_UPPL_TABLES           3
-/**Total number of running and state tables which are stored together in
- * running database
- */
-#define ODBCM_MAX_RUNNING_STATE_TABLES  8
-/**odbc manager's connection configuration file, which consists
- * 1. server name/ip
- * 2. name of driver
- * 3. data source name (dsn)
- * 4. connection type
- * 5. port number on which the dbms server is running
- * 6. time out
- * 7. connection time out
- * 8. user login timeout
- * 9. database username
- * 10.database user's password
- */
-#define ODBCM_CONF_FILE                 "odbcm.conf"
-/**relative path of ODBCM_CONF_FILE*/
-#define ODBCM_CONF_FILE_PATH            "/"
-/**null string assign*/
-#define ODBCM_NULL_STRING ""
-
-//  UPPL table names
-#define UPPL_CTR_TABLE                  "controller_table"
-#define UPPL_CTR_DOMAIN_TABLE           "ctr_domain_table"
-#define UPPL_LOGICALPORT_TABLE          "logicalport_table"
-#define UPPL_LOGICAL_MEMBER_PORT_TABLE  "logical_member_port_table"
-#define UPPL_SWITCH_TABLE               "switch_table"
-#define UPPL_PORT_TABLE                 "port_table"
-#define UPPL_LINK_TABLE                 "link_table"
-#define UPPL_BOUNDARY_TABLE             "boundary_table"
-
-
-/**controller table Column names enumeration*/
-typedef enum {
-  CTR_NAME = 0,
-  CTR_TYPE,
-  CTR_VERSION,
-  CTR_DESCRIPTION,
-  CTR_IP_ADDRESS,
-  CTR_USER_NAME,
-  CTR_PASSWORD,
-  CTR_ENABLE_AUDIT,
-  CTR_ACTUAL_VERSION,
-  CTR_OPER_STATUS,
-  CTR_VALID,
-  CTR_CS_ROW_STATUS,
-  CTR_CS_ATTR = 12,
-  DOMAIN_NAME = 13,
-  DOMAIN_TYPE,
-  DOMAIN_DESCRIPTION,
-  DOMAIN_OP_STATUS,
-  DOMAIN_VALID,
-  DOMAIN_CS_ROW_STATUS,
-  DOMAIN_CS_ATTR = 19,
-  LP_PORT_ID = 20,
-  LP_DESCRIPTION,
-  LP_PORT_TYPE,
-  LP_SWITCH_ID,
-  LP_PHYSICAL_PORT_ID,
-  LP_OPER_DOWN_CRITERIA,
-  LP_OPER_STATUS,
-  LP_CTR_VALID = 27,
-  LMP_SWITCH_ID = 28,
-  LMP_PHYSICAL_PORT_ID,
-  LMP_LP_PORT_ID = 30,
-  SWITCH_ID = 31,
-  SWITCH_DESCRIPTION,
-  SWITCH_MODEL,
-  SWITCH_IP_ADDRESS,
-  SWITCH_IPV6_ADDRESS,
-  SWITCH_ADMIN_STATUS,
-  SWITCH_DOMAIN_NAME,
-  SWITCH_MANUFACTURER,
-  SWITCH_HARDWARE,
-  SWITCH_SOFTWARE,
-  SWITCH_ALARM_STATUS,
-  SWITCH_OPER_STATUS,
-  SWITCH_VALID = 43,
-  PORT_ID = 44,
-  PORT_NUMBER,
-  PORT_DESCRIPTION,
-  PORT_ADMIN_STATUS,
-  PORT_DIRECTION,
-  PORT_TRUNK_ALL_VLAN,
-  PORT_OPER_STATUS,
-  PORT_MAC_ADDRESS,
-  PORT_DUPLEX,
-  PORT_SPEED,
-  PORT_ALARM_STATUS,
-  PORT_LOGIC_PORT_ID,
-  PORT_VALID = 56,
-  LINK_SWITCH_ID1 = 57,
-  LINK_PORT_ID1,
-  LINK_SWITCH_ID2,
-  LINK_PORT_ID2,
-  LINK_DESCRIPTION,
-  LINK_OPER_STATUS,
-  LINK_VALID = 63,
-  BDRY_ID = 64,
-  BDRY_DESCRIPTION,
-  BDRY_CTR_NAME1,
-  BDRY_DM_NAME1,
-  BDRY_PORT_ID1,
-  BDRY_CTR_NAME2,
-  BDRY_DM_NAME2,
-  BDRY_PORT_ID2,
-  BDRY_OPER_STATUS,
-  BDRY_VALID,
-  BDRY_ROW_STATUS,
-  BDRY_ATTR = 75,
-  UNKNOWN_COLUMN
-}ODBCMTableColumns;
-
-/*
-* odbcm tables column name struct
-*/
-typedef struct {
-  const unc::uppl::ODBCMTableColumns column_id;
-  const std::string column_string;
-}OdbcmColumnName;
-
-//  UPPL tables column names
-//  controller_table columns
-#define CTR_NAME_STR            "controller_name"
-#define CTR_TYPE_STR            "type"
-#define CTR_VERSION_STR         "version"
-#define CTR_DESCRIPTION_STR     "description"
-#define CTR_IP_ADDRESS_STR      "ip_address"
-#define CTR_USER_NAME_STR       "user_name"
-#define CTR_PASSWORD_STR        "password"
-#define CTR_ENABLE_AUDIT_STR    "enable_audit"
-#define CTR_ACTUAL_VERSION_STR  "actual_version"
-#define CTR_OPER_STATUS_STR     "oper_status"
-#define CTR_VALID_STR           "valid"
-#define CTR_CS_ROW_STATUS_STR   "cs_row_status"
-#define CTR_CS_ATTR_STR         "cs_attr"
-
-// ctr_domain_table columns
-#define DOMAIN_NAME_STR          "domain_name"
-#define DOMAIN_TYPE_STR          "type"
-#define DOMAIN_DESCRIPTION_STR   "description"
-#define DOMAIN_OP_STATUS_STR     "oper_status"
-#define DOMAIN_VALID_STR         "valid"
-#define DOMAIN_CS_ROW_STATUS_STR "cs_row_status"
-#define DOMAIN_CS_ATTR_STR       "cs_attr"
-
-//  logicalport_table columns
-#define LP_PORT_ID_STR            "port_id"
-#define LP_DESCRIPTION_STR        "description"
-#define LP_PORT_TYPE_STR          "port_type"
-#define LP_SWITCH_ID_STR          "switch_id"
-#define LP_PHYSICAL_PORT_ID_STR   "physical_port_id"
-#define LP_OPER_DOWN_CRITERIA_STR "oper_down_criteria"
-#define LP_OPER_STATUS_STR        "oper_status"
-#define LP_CTR_VALID_STR          "valid"
-
-//  logical_memberport_table columns
-#define LMP_SWITCH_ID_STR        "switch_id"
-#define LMP_PHYSICAL_PORT_ID_STR "physical_port_id"
-#define LMP_LP_PORT_ID_STR       "port_id"
-
-//  switch table columns
-#define SWITCH_ID_STR           "switch_id"
-#define SWITCH_DESCRIPTION_STR  "description"
-#define SWITCH_MODEL_STR        "model"
-#define SWITCH_IP_ADDRESS_STR   "ip_address"
-#define SWITCH_IPV6_ADDRESS_STR "ipv6_address"
-#define SWITCH_ADMIN_STATUS_STR "admin_status"
-#define SWITCH_DOMAIN_NAME_STR  "domain_name"
-#define SWITCH_MANUFACTURER_STR "manufacturer"
-#define SWITCH_HARDWARE_STR     "hardware"
-#define SWITCH_SOFTWARE_STR     "software"
-#define SWITCH_ALARM_STATUS_STR "alarms_status"
-#define SWITCH_OPER_STATUS_STR  "oper_status"
-#define SWITCH_VALID_STR        "valid"
-
-//  port table columns
-#define PORT_ID_STR             "port_id"
-#define PORT_NUMBER_STR         "port_number"
-#define PORT_DESCRIPTION_STR    "description"
-#define PORT_ADMIN_STATUS_STR   "admin_status"
-#define PORT_DIRECTION_STR      "direction"
-#define PORT_TRUNK_ALL_VLAN_STR "trunk_allowed_vlan"
-#define PORT_OPER_STATUS_STR    "oper_status"
-#define PORT_MAC_ADDRESS_STR    "mac_address"
-#define PORT_DUPLEX_STR         "duplex"
-#define PORT_SPEED_STR          "speed"
-#define PORT_ALARM_STATUS_STR   "alarms_status"
-#define PORT_LOGIC_PORT_ID_STR  "logical_port_id"
-#define PORT_VALID_STR          "valid"
-
-// link_table columns
-#define LINK_SWITCH_ID1_STR     "switch_id1"
-#define LINK_PORT_ID1_STR       "port_id1"
-#define LINK_SWITCH_ID2_STR     "switch_id2"
-#define LINK_PORT_ID2_STR       "port_id2"
-#define LINK_DESCRIPTION_STR    "description"
-#define LINK_OPER_STATUS_STR    "oper_status"
-#define LINK_VALID_STR          "valid"
-
-// boundary_table columns
-#define BDRY_ID_STR             "boundary_id"
-#define BDRY_DESCRIPTION_STR    "description"
-#define BDRY_CTR_NAME1_STR      "controller_name1"
-#define BDRY_DM_NAME1_STR       "domain_name1"
-#define BDRY_PORT_ID1_STR       "logical_port_id1"
-#define BDRY_CTR_NAME2_STR      "controller_name2"
-#define BDRY_DM_NAME2_STR       "domain_name2"
-#define BDRY_PORT_ID2_STR       "logical_port_id2"
-#define BDRY_OPER_STATUS_STR    "oper_status"
-#define BDRY_VALID_STR          "valid"
-#define BDRY_ROW_STATUS_STR     "cs_row_status"
-#define BDRY_ATTR_STR           "cs_attr"
-
-#define PHY_FINI_READ_LOCK() \
-  if (PhysicalLayer::phyFiniFlag == 1) { \
-    pfc_log_info("PhysicalLayer Fini is invoked already ..!!"); \
-    return ODBCM_RC_GENERAL_ERROR; \
-  } \
-  ScopedReadWriteLock dbFiniLock(PhysicalLayer::get_phy_fini_db_lock(), \
-      PFC_FALSE); \
-  if (PhysicalLayer::phyFiniFlag == 1) { \
-    pfc_log_info("PhysicalLayer:: Fini is invoked already ..!!"); \
-    return ODBCM_RC_GENERAL_ERROR; \
-  }
-
-/**Macro to fill the DBTableSchema Object instance with given input values.
- * In the case of static access. (memory might be allocated earlier, here reuse
- * the same memory*/
-#define ODBCM_FILL_ATTRIBUTE_INFO(attr_var, \
-    attr_name, attr_value, attr_length, attr_type, attr_vector) \
-    { \
-  attr_var.table_attribute_name = attr_name; \
-  attr_var.p_table_attribute_value = reinterpret_cast<void*>(&attr_value); \
-  attr_var.table_attribute_length = attr_length;\
-  attr_var.request_attribute_type = attr_type; \
-  attr_vector.push_back(attr_var); \
-    }
-
-#define ODBCM_FILL_ATTRIBUTE_INFOS(attr_var, \
-    attr_name, attr_value, attr_length, attr_type, attr_vector) \
-    { \
-  attr_var.table_attribute_name = attr_name; \
-  attr_var.p_table_attribute_value = reinterpret_cast<void*>(attr_value); \
-  attr_var.table_attribute_length = attr_length;\
-  attr_var.request_attribute_type = attr_type; \
-  attr_vector.push_back(attr_var); \
-    }
-
-/**return type of query factory methods*/
-typedef std::string SQLQUERY;
-/* To receive all data type values from ITC
- * and the same template will be filled up during the values fetch from table*/
-template <typename T>
-struct ColumnAttrValue {
-  T value;
-};
-/**this structure will hold the table name, column names, datatype and values
- * template address.*/
-struct TableAttrSchema {
-  ODBCMTableColumns table_attribute_name;
-  //  pointer to struct TableAttrValue
-  void*               p_table_attribute_value;
-  unsigned int        table_attribute_length;
-  AttributeDataType   request_attribute_type;
-};
-/**enum of arithmetic operators */
-typedef enum {
-  UNKNOWN_OPERATOR = -1,
-  EQUAL,
-  NOT_EQUAL,
-  GREATER,
-  GREATER_EQUAL,
-  LESSER,
-  LESSER_EQUAL,
-  MULTIPLE_QUERY
-}ODBCMOperator;
-
-/* Enum to store the table_id */
-typedef enum {
-  UNKNOWN_TABLE = 0,
-  CTR_TABLE,
-  CTR_DOMAIN_TABLE,
-  LOGICALPORT_TABLE,
-  LOGICAL_MEMBERPORT_TABLE,
-  SWITCH_TABLE,
-  PORT_TABLE,
-  LINK_TABLE,
-  BOUNDARY_TABLE,
-  IS_ROW_EXISTS  // keep it last always
-}ODBCMTable;
-/**During commit all configuration operation, various states will be handled
- * internally, those are listed in this enum*/
-typedef enum {
-  CHANGE_ROWSTATUS1,
-  CHANGE_ROWSTATUS2,
-  COPY_STATE_INFO, /*from running to candidate*/
-  TRUNCATE_RUNNING,
-  COPY_CANDIDATE_TO_RUNNING,
-  COMMIT_END
-} ODBCMCommitStates;
-
-}  // namespace uppl
-}  // namespace unc
-
-#endif /* _ODBCM_COMMON_HH_*/
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_db_tableschema.hh b/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_db_tableschema.hh
deleted file mode 100644 (file)
index 738c17c..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-/**
- * @brief   ODBC Manager
- * @file    odbcm_db_tableschema.hh
- *
- */
-#ifndef _ODBCM_DB_TABLESCHEMA_HH_
-#define _ODBCM_DB_TABLESCHEMA_HH_
-
-#include <unc/uppl_common.h>
-#include <string>
-#include <list>
-#include <vector>
-#include "odbcm_common.hh"
-
-namespace unc {
-namespace uppl {
-
-class DBTableSchema {
-  public:
-    /*
-     * Constructor for DBTableSchema
-     */
-    DBTableSchema();
-    /*
-     * Destination for DBTableSchema
-     */
-    ~DBTableSchema();
-    /*
-     * This corresponds to table name in db
-     */
-    ODBCMTable table_name_;
-    /*
-     * This contains primary keys of the table
-     */
-    std::vector <std::string> primary_keys_;
-    /*
-     * This contains the list of database row information
-     */
-    std::list <std::vector<TableAttrSchema> > row_list_;
-    /*
-     * Return status from database
-     */
-    CsRowStatus db_return_status_;
-
-    /*
-     * Get the table name
-     */
-    ODBCMTable get_table_name();
-    /*
-     * Set the table name
-     */
-    void set_table_name(ODBCMTable table_name);
-    /*
-     * Get the vector containing primary keys
-     */
-    std::vector <std::string>  get_primary_keys();
-    /*
-     * Get the list containing all the attribute vectors
-     */
-    std::list < std::vector <TableAttrSchema> >& get_row_list();
-    /*
-     * To push the primary keys in to primary_key vector
-     */
-    void PushBackToPrimaryKeysVector(std::string attribute_name);
-    /*
-     * To push the attribute vector to the row_list_
-     */
-    void PushBackToRowList(std::vector <TableAttrSchema> attributes_vector);
-    /*
-     * To set the primary keys
-     */
-    void set_primary_keys(std::vector <std::string>);
-    /*
-     * To set the row list
-     */
-    void set_row_list(std::list <std::vector<TableAttrSchema> >);
-    /*
-     * To push the TableAttrSchema to Attribute vector
-     */
-    void PushBackToTableRowVector(TableAttrSchema);  // WIP
-    /*
-     * To free the memory in DBTableSchema
-     */
-    void FreeDBTableSchema();
-    /*
-     * Method to print the database schema information
-     */
-    void PrintDBTableSchema();
-
-  private:
-    /*
-    * To print the char buffer values in DBTableSchema
-    */
-    inline std::string Odbcm_PrintCharBuffer(uint8_t*, int, ODBCMTableColumns);
-};  // class DBTableSchema
-
-}  // namespace uppl
-}  // namespace unc
-
-#endif  // _ODBCM_DB_TABLESCHEMA_HH_
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_mgr.cc b/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_mgr.cc
deleted file mode 100644 (file)
index a3c4777..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-#include "include/odbcm_mgr.hh"
-
-namespace unc {
-namespace uppl {
-std::map<ODBCManager::Method,ODBCM_RC_STATUS> ODBCManager::method_resultcode_map;
-bool  ODBCManager::exists_=false;
-ODBCManager::ODBCManager(void) {
-
-}
-
-ODBCManager::~ODBCManager(void) {
-
-}
-
-ODBCM_RC_STATUS ODBCManager::stub_getMappedResultCode(ODBCManager::Method methodType) {
-
-         if (0 != method_resultcode_map.count(methodType))
-                 {
-                         return method_resultcode_map[methodType];
-                 }
-                 return ODBCM_RC_GENERAL_ERROR;
-}
-
-ODBCM_RC_STATUS ODBCManager::ODBCM_Initialize() {
- return ODBCM_RC_SUCCESS;
-}
-
-ODBCM_RC_STATUS ODBCManager::CloseRwConnection() {
-return ODBCM_RC_SUCCESS;
-}
-
-ODBCManager* ODBCManager::get_ODBCManager() {
-  /*Allocate the memory for ODBCManager only if its NULL*/
-  ODBCManager *obj; 
-  if (obj == NULL) {
-    obj = new ODBCManager();
-    if (NULL == obj) {
-      pfc_log_fatal("ODBCM::ODBCManager::get_ODBCManager: "
-          "Error in memory allocation for ODBCManager_ !!! ");
-      return NULL;
-    }
-  }
-  return obj;
-}
-ODBCM_RC_STATUS ODBCManager::OpenDBConnection(
-    OdbcmConnectionHandler *conn_obj) {
- return ODBCM_RC_SUCCESS;
-}
-
-ODBCM_RC_STATUS ODBCManager::CloseDBConnection(
-    OdbcmConnectionHandler *conn_obj) {
-return ODBCM_RC_SUCCESS;
-}
-
-std::string ODBCManager::GetTableName(ODBCMTable table_id) {
-  switch (table_id) {
-    case CTR_TABLE:
-      return UPPL_CTR_TABLE;
-    case CTR_DOMAIN_TABLE:
-      return UPPL_CTR_DOMAIN_TABLE;
-    case LOGICALPORT_TABLE:
-      return UPPL_LOGICALPORT_TABLE;
-    case LOGICAL_MEMBERPORT_TABLE:
-      return UPPL_LOGICAL_MEMBER_PORT_TABLE;
-    case SWITCH_TABLE:
-      return UPPL_SWITCH_TABLE;
-    case PORT_TABLE:
-      return UPPL_PORT_TABLE;
-    case LINK_TABLE:
-      return UPPL_LINK_TABLE;
-    case BOUNDARY_TABLE:
-      return UPPL_BOUNDARY_TABLE;
-    default:
-      return "";
-  }
-}
-
-std::string ODBCManager::GetColumnName(ODBCMTableColumns col_id) {
-  return "";
-}
-
-
-ODBCM_RC_STATUS ODBCManager::IsRowExists(unc_keytype_datatype_t/**Database type*/,
-                                DBTableSchema&
-                                /**object which carries the table,
- *                                  pkeys,column names with data type*/,
-                                 OdbcmConnectionHandler *conn_obj) {
- return stub_getMappedResultCode(ODBCManager::ISROWEXISTS);
-}
-
-ODBCM_RC_STATUS ODBCManager::CreateOneRow(unc_keytype_datatype_t/**Database type*/,
-                                 DBTableSchema&
-                                 /**object which carries the table
- *                                  ,pkeys,column names with data type*/,
-                                 OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::CREATEONEROW);
-}
-
-ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t/**Database type*/,
-                                 DBTableSchema&
-                                 /**object which carries the table,pkeys,
-                                 * column names with data type*/,
-                                 OdbcmConnectionHandler *conn_obj,
-                                 bool IsInternal ) {
-return stub_getMappedResultCode(ODBCManager::UPDATEONEROW);
-}
-
-ODBCM_RC_STATUS ODBCManager::DeleteOneRow(unc_keytype_datatype_t/**Database type*/,
-                                 DBTableSchema&
-                                 /**object which carries the table,pkeys,
-                                 * column names with data type*/,
-                                 OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::DELETEONEROW);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetOneRow(unc_keytype_datatype_t/**Database type*/,
-                              DBTableSchema&
-                              /*object which carries the table,
-                              pkeys,column names with data type*/,
-                              OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETONEROW);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetBulkRows(unc_keytype_datatype_t/**Database type*/,
-                                uint32_t,
-                                DBTableSchema&
-                                /*object which carries the table,
-                                 pkeys,column names with data type*/,
-                                unc_keytype_operation_t /**operation type*/,
-                                OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETBULKROWS);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetRowCount(unc_keytype_datatype_t/**Database type*/,
-                                std::string/** name of the table*/,
-                                uint32_t& /**return value count*/,
-                                OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETROWCOUNT);
-}
-
-ODBCM_RC_STATUS ODBCManager::ClearOneRow(unc_keytype_datatype_t/**Database type*/,
-                                DBTableSchema&
-                                /**object which carries the table,
-                                 pkeys,column names with data type*/,
-                                 OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::CLEARONEROW);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetSiblingCount(unc_keytype_datatype_t/**Database type*/,
-                                    DBTableSchema&
-                                    /**object which carries the
-                                    table,pkeys,column names with data type*/,
-                                    uint32_t& count/**return value count*/,
-                                    OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETSIBLINGCOUNT);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetSiblingCount(unc_keytype_datatype_t/**Database type*/,
-                                    DBTableSchema&
-                                    /**object which carries the
-                                    table,pkeys,column names with data type*/,
-                                    uint32_t& /**return value count*/,
-                                    std::vector<ODBCMOperator>
-                                    /**operator to decide
-                                    the filter while framing query (where
-                                    clause) */,
-                                    OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETSIBLINGCOUNT_FILTER);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetSiblingRows(unc_keytype_datatype_t/**database type */,
-                                   uint32_t/**maximum repetition count*/,
-                                   DBTableSchema&
-                                   /**object which carries the
-                                   table,pkeys,column names with data type*/,
-                                   std::vector<ODBCMOperator>
-                        /*arithmetic operators to frame read sibling query*/,
-                                  unc_keytype_operation_t
-                                  /**operation type siblingbegin/sibling*/,
-                                  OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETSIBLINGROWS);
-}
-
-ODBCM_RC_STATUS ODBCManager::GetModifiedRows(unc_keytype_datatype_t /**Database type*/,
-                                    DBTableSchema&
-                                    /**object which carries the
-                                    table,pkeys,column names with data type*/,
-                                    OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::GETMODIFIEDROWS);
-}
-
-ODBCM_RC_STATUS ODBCManager::CopyDatabase(unc_keytype_datatype_t /**Database type*/,
-                                 unc_keytype_datatype_t /**Database type*/,
-                                 OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::COPYDATABASE);
-}
-    /**To clear given key instance rows in all the tables in DB*/
-ODBCM_RC_STATUS ODBCManager::ClearOneInstance(unc_keytype_datatype_t /**Database type*/,
-                                     std::string controller_name /**keyvalue*/,
-                                     OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::CLEARONEINSTANCE);
-}
-    /**clear the entries in the database tables.*/
-ODBCM_RC_STATUS ODBCManager::ClearDatabase(unc_keytype_datatype_t /**Database type*/,
-                                          OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::CLEARDATABASE);
-}
-
-ODBCM_RC_STATUS ODBCManager::IsCandidateDirty(OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::ISCANDIDATEDIRTY);
-}
-
-ODBCM_RC_STATUS ODBCManager::CommitAllConfiguration(unc_keytype_datatype_t
-                                           /**Database type*/,
-                                           unc_keytype_datatype_t
-                                           /**Database type*/,
-                                            OdbcmConnectionHandler *conn_obj) {
-return stub_getMappedResultCode(ODBCManager::COMMITALLCONFIG);
-}
-
-}  // namespace uppl
-}  // namespace unc
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_mgr_stub.cc b/coordinator/test/modules/uppl/utest/stub/ODBC/odbcm_mgr_stub.cc
new file mode 100644 (file)
index 0000000..ece2488
--- /dev/null
@@ -0,0 +1,241 @@
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+
+#include "include/odbcm_mgr.hh"
+
+namespace unc {
+namespace uppl {
+
+ODBCManager *ODBCManager::ODBCManager_ = NULL;
+std::map<ODBCManager::Method,ODBCM_RC_STATUS> ODBCManager::method_resultcode_map;
+bool  ODBCManager::exists_=false;
+uint32_t  ODBCManager::sibling_count = 0;
+
+ODBCManager::ODBCManager(void)
+{
+}
+
+ODBCManager::~ODBCManager(void)
+{
+}
+
+ODBCM_RC_STATUS
+ODBCManager::stub_getMappedResultCode(ODBCManager::Method methodType)
+{
+  if (0 != method_resultcode_map.count(methodType)) {
+    return method_resultcode_map[methodType];
+  }
+  return ODBCM_RC_GENERAL_ERROR;
+}
+
+ODBCM_RC_STATUS
+ODBCManager::ODBCM_Initialize()
+{
+  return ODBCM_RC_SUCCESS;
+}
+
+ODBCM_RC_STATUS
+ODBCManager::CloseRwConnection()
+{
+  return ODBCM_RC_SUCCESS;
+}
+
+ODBCManager *
+ODBCManager::get_ODBCManager()
+{
+  /*Allocate the memory for ODBCManager only if its NULL*/
+  ODBCManager *obj(ODBCManager_);
+  if (obj == NULL) {
+    obj = new ODBCManager();
+    if (NULL == obj) {
+      pfc_log_fatal("ODBCM::ODBCManager::get_ODBCManager: "
+          "Error in memory allocation for ODBCManager_ !!! ");
+      return NULL;
+    }
+    ODBCManager_ = obj;
+  }
+
+  return obj;
+}
+
+ODBCM_RC_STATUS
+ODBCManager::OpenDBConnection(OdbcmConnectionHandler *conn_obj)
+{
+  return ODBCM_RC_SUCCESS;
+}
+
+ODBCM_RC_STATUS
+ODBCManager::CloseDBConnection(OdbcmConnectionHandler *conn_obj)
+{
+  return ODBCM_RC_SUCCESS;
+}
+
+std::string
+ODBCManager::GetTableName(ODBCMTable table_id)
+{
+  switch (table_id) {
+    case CTR_TABLE:
+      return UPPL_CTR_TABLE;
+    case CTR_DOMAIN_TABLE:
+      return UPPL_CTR_DOMAIN_TABLE;
+    case LOGICALPORT_TABLE:
+      return UPPL_LOGICALPORT_TABLE;
+    case LOGICAL_MEMBERPORT_TABLE:
+      return UPPL_LOGICAL_MEMBER_PORT_TABLE;
+    case SWITCH_TABLE:
+      return UPPL_SWITCH_TABLE;
+    case PORT_TABLE:
+      return UPPL_PORT_TABLE;
+    case LINK_TABLE:
+      return UPPL_LINK_TABLE;
+    case BOUNDARY_TABLE:
+      return UPPL_BOUNDARY_TABLE;
+    default:
+      return "";
+  }
+}
+
+std::string
+ODBCManager::GetColumnName(ODBCMTableColumns col_id)
+{
+  return "";
+}
+
+
+ODBCM_RC_STATUS
+ODBCManager::IsRowExists(unc_keytype_datatype_t, DBTableSchema&,
+                         OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::ISROWEXISTS);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::CreateOneRow(unc_keytype_datatype_t, DBTableSchema&,
+                          OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::CREATEONEROW);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::UpdateOneRow(unc_keytype_datatype_t, DBTableSchema&,
+                          OdbcmConnectionHandler *conn_obj, bool IsInternal)
+{
+  return stub_getMappedResultCode(ODBCManager::UPDATEONEROW);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::DeleteOneRow(unc_keytype_datatype_t, DBTableSchema&,
+                          OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::DELETEONEROW);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetOneRow(unc_keytype_datatype_t, DBTableSchema&,
+                       OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::GETONEROW);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetBulkRows(unc_keytype_datatype_t, uint32_t, DBTableSchema&,
+                         unc_keytype_operation_t,
+                         OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::GETBULKROWS);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetRowCount(unc_keytype_datatype_t, std::string,
+                         uint32_t&, OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::GETROWCOUNT);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::ClearOneRow(unc_keytype_datatype_t, DBTableSchema&,
+                         OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::CLEARONEROW);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetSiblingCount(unc_keytype_datatype_t, DBTableSchema&,
+                             uint32_t &count, OdbcmConnectionHandler *conn_obj)
+{
+  count = sibling_count;
+  return stub_getMappedResultCode(ODBCManager::GETSIBLINGCOUNT);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetSiblingCount(unc_keytype_datatype_t, DBTableSchema&,
+                             uint32_t &count, std::vector<ODBCMOperator>,
+                             OdbcmConnectionHandler *conn_obj)
+{
+  count = sibling_count;
+  return stub_getMappedResultCode(ODBCManager::GETSIBLINGCOUNT_FILTER);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetSiblingRows(unc_keytype_datatype_t, uint32_t,
+                            DBTableSchema&, std::vector<ODBCMOperator>,
+                            unc_keytype_operation_t,
+                            OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::GETSIBLINGROWS);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::GetModifiedRows(unc_keytype_datatype_t, DBTableSchema&,
+                             OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::GETMODIFIEDROWS);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::CopyDatabase(unc_keytype_datatype_t, unc_keytype_datatype_t,
+                          OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::COPYDATABASE);
+}
+
+/**To clear given key instance rows in all the tables in DB*/
+ODBCM_RC_STATUS
+ODBCManager::ClearOneInstance(unc_keytype_datatype_t,
+                              std::string controller_name,
+                              OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::CLEARONEINSTANCE);
+}
+
+/**clear the entries in the database tables.*/
+ODBCM_RC_STATUS
+ODBCManager::ClearDatabase(unc_keytype_datatype_t,
+                           OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::CLEARDATABASE);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::IsCandidateDirty(OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::ISCANDIDATEDIRTY);
+}
+
+ODBCM_RC_STATUS
+ODBCManager::CommitAllConfiguration(unc_keytype_datatype_t,
+                                    unc_keytype_datatype_t,
+                                    OdbcmConnectionHandler *conn_obj)
+{
+  return stub_getMappedResultCode(ODBCManager::COMMITALLCONFIG);
+}
+
+}  // namespace uppl
+}  // namespace unc
index fdf8f60c3dcce09cbb056fd5b22235a312190f24..decd55c0cb88e65d8f127f9a1984caac07663548 100644 (file)
  *  @brief   ODBC Manager
  *  @file    odbcm_utils.cc
  */
-#include  <sys/socket.h>
-#include  <arpa/inet.h>
-#include "odbcm_common.hh"
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <odbcm_common.hh>
 #include "odbcm_utils_stub.hh"
-#include "physical_common_def.hh"
-//#include "odbcm_db_varbind.hh"
+#include <physical_common_def.hh>
 
 namespace unc {
 namespace uppl {
index 3c7380ea5da73060933102dc2740b03f5646f5f4..ff36a95f872123c0a931e7c9e70c470c0279a279 100644 (file)
@@ -18,8 +18,8 @@
 
 #include <map>
 #include <string>
-#include "odbcm_common.hh"
-#include "odbcm_db_tableschema.hh"
+#include <odbcm_common.hh>
+#include <odbcm_db_tableschema.hh>
 
 namespace unc {
 namespace uppl {
diff --git a/coordinator/test/modules/uppl/utest/stub/ODBC/physical_common_def.hh b/coordinator/test/modules/uppl/utest/stub/ODBC/physical_common_def.hh
deleted file mode 100644 (file)
index 7349ae8..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-/**
- * @brief   Physical Common Header
- * @file    Physical_common_def.hh
- *
- */
-
-#ifndef _PHYSICAL_COMMON_DEF_HH_
-#define _PHYSICAL_COMMON_DEF_HH_
-#include <pfc/pfc.h>
-#include <unc/unc_events.h>
-#include <string>
-
-#define UPPL_IPC_NOTIFICATION_HANDLER_NAME  "UpplNotificationManager"
-#define PFCDRIVER_IPC_CHN_NAME              "drvpfcd"
-#define PFCDRIVER_IPC_SVC_NAME              "pfcdriver"
-#define VNPDRIVER_IPC_CHN_NAME              "drvvnpd"
-#define VNPDRIVER_IPC_SVC_NAME              "vnpdriver"
-#define UPLL_IPC_CHN_NAME                   "lgcnwd"
-#define UPLL_IPC_SVC_NAME                   "upll"
-#define TCLIB_MODULE_NAME                   "tclib"
-
-const unsigned int UPPL_MAX_REP_CT = 10000;
-/*
- * @brief Operation Type
- */
-
-typedef enum {
-  CREATEONEROW = 0,
-  UPDATEONEROW,
-  DELETEONEROW,
-  CLEARONEROW,
-  GETONEROW,
-  GETBULKROWS,
-  GETSIBLINGCOUNT,
-  GETSIBLINGCOUNT_FILTER,
-  GETSIBLINGROWS,
-  GETROWCOUNT,
-  COPYDATABASE,
-  CLEARDATABASE,
-  // MERGEDATABASE,
-  ISCANDIDATEDIRTY,
-  ISROWEXISTS,
-  GETMODIFIEDROWS,
-  COMMITALLCONFIG,
-  CLEARONEINSTANCE,
-  CLEARALLROWS
-}UpplDbOperationType;
-
-typedef enum {
-  ODBCM_RC_SQL_INVALID_HANDLE = -2,
-  ODBCM_RC_QUERY_FAILED = -1,
-  ODBCM_RC_SUCCESS = 0,
-  ODBCM_RC_SUCCESS_WITH_INFO,
-  ODBCM_RC_QUERY_STILL_EXECUTING = 2,
-  ODBCM_RC_FAILED,
-  ODBCM_RC_COMMON_LINK_FAILURE,
-  ODBCM_RC_CONNECTION_ERROR,
-  ODBCM_RC_CONNECTION_TIMEOUT,
-  ODBCM_RC_CONNECTION_IN_USE,
-  ODBCM_RC_SERIALIZATION_ERROR,
-  ODBCM_RC_INVALID_CONN_HANDLE,
-  ODBCM_RC_QUERY_TIMEOUT,
-  ODBCM_RC_ERROR_IN_FRAMEQUERY,
-  ODBCM_RC_INVALID_TABLE_NAME,
-  ODBCM_RC_INVALID_DB_OPERATION,
-  ODBCM_RC_PKEY_VIOLATION,
-  ODBCM_RC_MEMORY_ERROR,
-  ODBCM_RC_TABLE_NOT_FOUND,
-  ODBCM_RC_RECORD_NOT_FOUND,
-  ODBCM_RC_DATA_ERROR,
-  ODBCM_RC_RECORD_NO_MORE,
-  ODBCM_RC_NO_RECORD,
-  ODBCM_RC_ERROR_FETCHING_ROW,
-  ODBCM_RC_STMT_ERROR,
-  ODBCM_RC_DISCONNECT_ERROR,
-  ODBCM_RC_RECORD_ALREADY_EXISTS,
-  ODBCM_RC_CONN_ENV_ERROR,
-  ODBCM_RC_CONN_HANDLE_ERROR,
-  ODBCM_RC_GENERAL_ERROR,
-  ODBCM_RC_PARAM_BIND_ERROR,
-  ODBCM_RC_WRONG_PARAM,
-  ODBCM_RC_MORE_ROWS_FOUND,
-  ODBCM_RC_ROW_EXISTS,
-  ODBCM_RC_ROW_NOT_EXISTS,
-  ODBCM_RC_CANDIDATE_DIRTY,
-  ODBCM_RC_CANDIDATE_NO_DIRTY,
-  ODBCM_RC_SQL_ERROR,
-  ODBCM_RC_ROW_STATUS_NOT_FOUND,
-  ODBCM_RC_COLUMN_DOES_NOT_MATCH,
-  ODBCM_RC_PREPARED_STMT_ERROR,
-  ODBCM_RC_TYPE_ATTR_VIOLATION,
-  ODBCM_RC_INVALID_DESC,
-  ODBCM_RC_UNABLE_ESTABLISH_CONN,
-  ODBCM_RC_CONNECTION_REJECTED,
-  ODBCM_RC_INSERT_VAL_LIST_NOT_MATCHED,
-  ODBCM_RC_DATA_TRUNCATION_ERROR,
-  ODBCM_RC_VARIABLE_NOT_SUPPLIED,
-  ODBCM_RC_VALUE_OUT_OF_RANGE,
-  ODBCM_RC_DATETIME_ERROR,
-  ODBCM_RC_DIVISIBLE_ERROR,
-  ODBCM_RC_FIELD_OVERFLOW,
-  ODBCM_RC_INVALID_CHAR_SPEC,
-  ODBCM_RC_CURSOR_STATE,
-  ODBCM_RC_INVALID_CURSOR,
-  ODBCM_RC_SYNTAX_ERROR,
-  ODBCM_RC_INDEX_NOT_FOUND,
-  ODBCM_RC_COLUMN_ALREADY_EXISTS,
-  ODBCM_RC_COLUMN_NOT_FOUND,
-  ODBCM_RC_NULL_POINTER_ERROR,
-  ODBCM_RC_FUNC_SEQUENCE_ERROR,
-  ODBCM_RC_TRANSACTION_ERROR,
-  ODBCM_RC_TABLE_EXISTS,
-  ODBCM_RC_COLUMN_ALREADY,
-  ODBCM_RC_SQL_NEED_DATA = 99,
-  ODBCM_RC_SQL_NO_DATA = 100,
-  ODBCM_RC_DEFAULT
-}ODBCM_RC_STATUS;
-
-/*
- * @brief Request Attribute Datatype
- */
-typedef enum {
-  DATATYPE_UINT16 = 0,
-  DATATYPE_UINT64,
-  DATATYPE_UINT32,
-  DATATYPE_IPV4,
-  DATATYPE_IPV6,
-  DATATYPE_UINT8_ARRAY_2,
-  DATATYPE_UINT8_ARRAY_3,
-  DATATYPE_UINT8_ARRAY_6,
-  DATATYPE_UINT8_ARRAY_8,
-  DATATYPE_UINT8_ARRAY_9,
-  DATATYPE_UINT8_ARRAY_11,
-  DATATYPE_UINT8_ARRAY_16,
-  DATATYPE_UINT8_ARRAY_32,
-  DATATYPE_UINT8_ARRAY_128,
-  DATATYPE_UINT8_ARRAY_256,
-  DATATYPE_UINT8_ARRAY_257,
-  DATATYPE_UINT8_ARRAY_320
-}AttributeDataType;
-
-/*
- * @brief Transaction State
- */
-
-typedef enum {
-  TRANS_END = 0,
-  TRANS_START,
-  TRANS_START_SUCCESS,
-  VOTE_BEGIN,
-  VOTE_WAIT_DRIVER_RESULT,
-  VOTE_SUCCESS,
-  GLOBAL_COMMIT_BEGIN,
-  GLOBAL_COMMIT_WAIT_DRIVER_RESULT,
-  GLOBAL_COMMIT_DRIVER_RESULT,
-  GLOBAL_COMMIT_SUCCESS
-}TransState;
-
-/*
- *  @brief Driver Response Status
- */
-
-typedef enum {
-  SUCCESS = 0,
-  FAILURE,
-  DISCONNECT
-}DriverResponseStatus;
-
-struct physical_request_header {
-  uint32_t client_sess_id;
-  uint32_t config_id;
-  uint32_t operation;
-  uint32_t max_rep_count;
-  uint32_t option1;
-  uint32_t option2;
-  uint32_t data_type;
-  uint32_t key_type;
-};
-
-struct physical_response_header {
-  uint32_t client_sess_id;
-  uint32_t config_id;
-  uint32_t operation;
-  uint32_t max_rep_count;
-  uint32_t option1;
-  uint32_t option2;
-  uint32_t data_type;
-  uint32_t result_code;
-};
-
-struct driver_request_header {
-  uint32_t client_sess_id;
-  uint32_t config_id;
-  std::string controller_id;
-  std::string domain_id;
-  uint32_t operation;
-  uint32_t max_rep_count;
-  uint32_t option1;
-  uint32_t option2;
-  uint32_t data_type;
-  uint32_t key_type;
-};
-
-struct driver_response_header {
-  uint32_t client_sess_id;
-  uint32_t config_id;
-  std::string controller_id;
-  std::string domain_id;
-  uint32_t operation;
-  uint32_t max_rep_count;
-  uint32_t option1;
-  uint32_t option2;
-  uint32_t data_type;
-  uint32_t result_code;
-};
-
-struct driver_event_header {
-  std::string controller_id;
-  std::string domain_id;
-  uint32_t operation;
-  uint32_t data_type;
-  uint32_t key_type;
-};
-
-struct driver_alarm_header {
-  std::string controller_id;
-  std::string domain_id;
-  uint32_t operation;
-  uint32_t data_type;
-  uint32_t key_type;
-  uint32_t alarm_type;
-};
-
-struct northbound_event_header {
-  uint32_t operation;
-  uint32_t data_type;
-  uint32_t key_type;
-};
-
-struct northbound_alarm_header {
-  uint32_t operation;
-  uint32_t data_type;
-  uint32_t key_type;
-  uint32_t alarm_type;
-};
-#endif  // _PHYSICAL_COMMON_DEF_HH_
index ccae2fcf789bb4cbf5c91829d250aefe5425b3d0..36256dd2cfce633f6b200adc915272e035b15af8 100644 (file)
@@ -1,26 +1,46 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2013 NEC Corporation
  * All rights reserved.
- *
+ * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
+#ifndef        _UNC_MODULE_CLSTAT_INC_CLSTAT_API_H
+#define        _UNC_MODULE_CLSTAT_INC_CLSTAT_API_H
+
 /*
- * clstat_api.h
- *
- *  Created on: Apr 15, 2013
- *      Author: guest
+ * Definitions for APIs provided by the clstat module.
  */
 
-#ifndef CLSTAT_API_H_
-#define CLSTAT_API_H_
 #include <unc/clstat_types.h>
+#include <pfc/module.h>
+#include <pfc/event.h>
+#include <pfc/clock.h>
+
+UNC_C_BEGIN_DECL
+
+static inline const char *
+clstat_event_getsource(void)
+{
+       return "event";
+}
+
+static inline pfc_bool_t
+clstat_event_isactive(pfc_event_t event)
+{
+       return PFC_TRUE;
+}
 
-inline const char *clstat_event_getsource() {
-  return "";
+extern inline int
+clstat_event_getdeadline(pfc_event_t event, pfc_timespec_t *tsp)
+{
+       tsp->tv_sec = 0;
+       tsp->tv_nsec = 0;
+       return 0;
 }
 
+UNC_C_END_DECL
 
-#endif /* CLSTAT_API_H_ */
+#endif /* !_UNC_MODULE_CLSTAT_INC_CLSTAT_API_H */
diff --git a/coordinator/test/modules/uppl/utest/stub/clstat/event.c b/coordinator/test/modules/uppl/utest/stub/clstat/event.c
deleted file mode 100644 (file)
index 456459c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*
-*/
-
-
-
-
-#include "event.h"
-
-const char *
-clstat_event_getsource(void)
-{
-  return "";
-}
diff --git a/coordinator/test/modules/uppl/utest/stub/clstat/event.h b/coordinator/test/modules/uppl/utest/stub/clstat/event.h
deleted file mode 100644 (file)
index 12f63d7..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- *
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-
-
-const char *clstat_event_getsource(void);
diff --git a/coordinator/test/modules/uppl/utest/stub/include/VrtIfstub.hh b/coordinator/test/modules/uppl/utest/stub/include/VrtIfstub.hh
deleted file mode 100644 (file)
index 8225ea7..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*\r
-* Copyright (c) 2012-2013 NEC Corporation\r
-* All rights reserved.\r
-*\r
-* This program and the accompanying materials are made available under the\r
-* terms of the Eclipse Public License v1.0 which accompanies this\r
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-*/\r
-\r
-\r
-\r
-\r
-#include "vrt_if_momgr.hh"\r
-#include <stdio.h>\r
-#include "momgr_impl.hh"\r
-#include "ipct_st.hh"\r
-#include "unc/keytype.h"\r
-#include "config_mgr.hh"\r
-#include "dal/dal_odbc_mgr.hh"\r
-#include "dal/dal_dml_intf.hh"\r
-#include "tclib_module.hh"\r
-#include "config_mgr.hh"\r
-#include "dal_defines.hh"\r
-\r
-using namespace unc::upll::kt_momgr;\r
-\r
-  enum Method\r
-  {Read1, Read2};\r
-\r
-class VrtIfstub : public VrtIfMoMgr {\r
-public:\r
-VrtIfstub() {std::cout<<"In VrtIfConstructor \n";}\r
-  static std::map<Method, upll_rc_t> stub_result_map;\r
-\r
-upll_rc_t ReadConfigDB(ConfigKeyVal *ikey,\r
-                                  upll_keytype_datatype_t dt_type,\r
-                                  unc_keytype_operation_t op,\r
-                                  DbSubOp dbop,\r
-                                  DalDmlIntf *dmi,\r
-                                  MoMgrTables tbl){\r
-std::cout << "hellllloooooooooooooo\n";\r
-return stub_result_map[Read1];\r
-}\r
-\r
-upll_rc_t ReadConfigDB(ConfigKeyVal *ikey,\r
-                                  upll_keytype_datatype_t dt_type,\r
-                                  unc_keytype_operation_t op,\r
-                                  DbSubOp dbop,\r
-                                  uint32_t &sibling_count,\r
-                                  DalDmlIntf *dmi,\r
-                                  MoMgrTables tbl) {\r
-std::cout << "hellllloooooooooooooo\n";\r
-return stub_result_map[Read2];\r
-}\r
-\r
-const MoManager *GetMoManager(unc_key_type_t kt) {\r
- std::cout<<" Get MoManager called \n";\r
- return new VrtIfstub();\r
-}\r
-\r
-\r
-};\r
-std::map<Method, upll_rc_t> VrtIfstub::stub_result_map;\r
index bc9034e0d6a9f582199a67680900493f1fc4b54a..491bcfbbe66324c0db9296a0fbab66c7137288d9 100644 (file)
@@ -1,12 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #ifndef        _PFC_IPC_CLIENT_H
 #define        _PFC_IPC_CLIENT_H
@@ -467,6 +466,7 @@ inline int
 pfc_ipcclnt_altopen(const char *PFC_RESTRICT name,
                    pfc_ipcconn_t *PFC_RESTRICT connp)
 {
+       *connp = 1;
        return result_;
 }
 
diff --git a/coordinator/test/modules/uppl/utest/stub/include/core_include/pfc/module.h b/coordinator/test/modules/uppl/utest/stub/include/core_include/pfc/module.h
deleted file mode 100644 (file)
index 8362535..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-#ifndef        _PFC_MODULE_H
-#define        _PFC_MODULE_H
-
-/*
- * Definitions for PFC module management.
- */
-
-#include <pfc/base.h>
-#include <pfc/synch.h>
-#include <pfc/conf.h>
-#include <pfc/event.h>
-#include <pfc/moddefs.h>
-#include <pfc/modconst.h>
-#include <pfc/modevent.h>
-#include <pfc/modipc_server.h>
-#include <pfc/modipc_client.h>
-#include <pfc/debug.h>
-
-PFC_C_BEGIN_DECL
-
-/*
- * Suffix of module filename.
- */
-#define        PFC_MODULE_LIB_SUFFIX           "so"
-
-/*
- * Suffix of module configuration file.
- */
-#define        PFC_MODULE_CONF_SUFFIX          ".conf"
-#define        PFC_MODULE_CONF_SUFFIX_LEN      PFC_CONST_U(5)
-
-/*
- * Prototypes.
- */
-extern pfc_module_t    pfc_module_register(const pfc_modattr_t
-                                           *PFC_RESTRICT mattr,
-                                           pfc_cptr_t PFC_RESTRICT data);
-extern pfc_module_t    pfc_module_c_register(const pfc_modattr_t
-                                             *PFC_RESTRICT mattr,
-                                             pfc_modfunc_t init,
-                                             pfc_modfunc_t fini);
-
-extern void            __pfc_module_bootstrap(const char *name,
-                                              pfc_modboot_t func);
-
-extern pfc_bool_t      pfc_module_is_started(void);
-extern pfc_bool_t      pfc_module_hold(pfc_module_t module);
-extern void            pfc_module_release(pfc_module_t module);
-extern pfc_cfblk_t     __pfc_module_conf_getblock(pfc_module_t module,
-                                                  const char *bname);
-extern pfc_cfblk_t     __pfc_module_conf_getmap(pfc_module_t module,
-                                                const char *mname,
-                                                const char *key);
-extern int             __pfc_module_conf_getmapkeys(pfc_module_t module,
-                                                    const char *mname,
-                                                    pfc_listm_t *keysp);
-extern int             __pfc_module_conf_reload(pfc_module_t module);
-
-extern int     __pfc_module_event_add(pfc_module_t module,
-                                      pfc_evhandler_t *PFC_RESTRICT idp,
-                                      pfc_evfunc_t handler,
-                                      pfc_ptr_t PFC_RESTRICT arg,
-                                      const pfc_evmask_t *PFC_RESTRICT evmask,
-                                      uint32_t priority,
-                                      const char *PFC_RESTRICT hname);
-extern int     __pfc_module_event_post(pfc_module_t module,
-                                       const char *target, pfc_evtype_t type);
-
-extern int     __pfc_module_addhook(pfc_module_t module, pfc_modhook_t hook,
-                                    uint32_t pri);
-
-/*
- * PFC_MODULE_BUILD is defined by the build system only for PFC module build.
- */
-#ifdef PFC_MODULE_BUILD
-
-/*
- * static inline pfc_cfblk_t PFC_FATTR_ALWAYS_INLINE
- * pfc_module_conf_getblock(const char *bname)
- *     Return parameter block handle associated with the parameter block,
- *     which is defined in the module configuration file, specified by
- *     the name.
- *
- * Calling/Exit State:
- *     A valid block handle is returned on success.
- *     On error, PFC_CFBLK_INVALID is returned.
- */
-static inline pfc_cfblk_t PFC_FATTR_ALWAYS_INLINE
-pfc_module_conf_getblock(const char *bname)
-{
-       return __pfc_module_conf_getblock(PFC_MODULE_THIS_ID, bname);
-}
-
-/*
- * static inline pfc_cfblk_t PFC_FATTR_ALWAYS_INLINE
- * pfc_module_conf_getmap(const char *mname, const char *key)
- *     Return parameter map handle associated with the parameter map block,
- *     which is defined in the module configuration file, specified by
- *     the map name and key.
- *
- * Calling/Exit State:
- *     A valid block handle is returned on success.
- *     On error, PFC_CFBLK_INVALID is returned.
- */
-static inline pfc_cfblk_t PFC_FATTR_ALWAYS_INLINE
-pfc_module_conf_getmap(const char *mname, const char *key)
-{
-       return __pfc_module_conf_getmap(PFC_MODULE_THIS_ID, mname, key);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_conf_getmapkeys(const char *mname, pfc_listm_t *keysp)
- *     Create a list model instance which contains all map keys of the
- *     parameter map specified by `mname' in the module configuration file.
- *
- * Calling/Exit State:
- *     Upon successful completion, the list model instance is set to the
- *     buffer pointed by `keysp', and zero is returned.
- *     Otherwise error number which indicates the cause of error is returned.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_conf_getmapkeys(const char *mname, pfc_listm_t *keysp)
-{
-       return __pfc_module_conf_getmapkeys(PFC_MODULE_THIS_ID, mname, keysp);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_conf_reload(void)
- *     Reload module configuration file.
- *     Note that all parameter block handles obtained by
- *     pfc_module_conf_getblock() and pfc_module_conf_getmap() are discarded.
- *     You must re-obtain parameter block handles again.
- *
- * Calling/Exit State:
- *     Zero is returned on success.
- *     Otherwise error number which indicates the cause of error is returned.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_conf_reload(void)
-{
-       return __pfc_module_conf_reload(PFC_MODULE_THIS_ID);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_event_add(pfc_evhandler_t *PFC_RESTRICT idp,
- *                     pfc_evfunc_t handler, pfc_ptr_t PFC_RESTRICT arg,
- *                     const pfc_evmask_t *PFC_RESTRICT evmask,
- *                     uint32_t priority)
- *     Register module-specific event handler.
- *
- *     `handler' is a pointer to event handler, and `arg' is an arbitrary
- *     value passed to the handler. If a module-specific event is posted
- *     to this module, and its type is contained in the event mask specified
- *     by `evmask', the handler is called with specifying the event.
- *     If NULL is specified to `evmask', all events posted to this module
- *     are delivered to the handler.
- *
- * Calling/Exit State:
- *     Upon successful completion, event handler ID is set to `*idp',
- *     and zero is returned.
- *     Otherwise error number which indicates the cause of error is returned.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_event_add(pfc_evhandler_t *PFC_RESTRICT idp, pfc_evfunc_t handler,
-                    pfc_ptr_t PFC_RESTRICT arg,
-                    const pfc_evmask_t *PFC_RESTRICT evmask, uint32_t priority)
-{
-       return __pfc_module_event_add(PFC_MODULE_THIS_ID, idp, handler,
-                                     arg, evmask, priority, NULL);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_event_add_named(pfc_evhandler_t *PFC_RESTRICT idp,
- *                           pfc_evfunc_t handler, pfc_ptr_t PFC_RESTRICT arg,
- *                           const pfc_evmask_t *PFC_RESTRICT evmask,
- *                           uint32_t priority, const char *PFC_RESTRICT hname)
- *     Register module-specific event handler, with specifying handler's name.
- *
- *     `handler' is a pointer to event handler, and `arg' is an arbitrary
- *     value passed to the handler. If a module-specific event is posted
- *     to this module, and its type is contained in the event mask specified
- *     by `evmask', the handler is called with specifying the event.
- *     If NULL is specified to `evmask', all events posted to this module
- *     are delivered to the handler.
- *
- *     `hname' is a user-defined name of event handler.
- *     Currently, it is used only for event delivery logging.
- *     If NULL is specified, module name is used as handler's name.
- *
- * Calling/Exit State:
- *     Upon successful completion, event handler ID is set to `*idp',
- *     and zero is returned.
- *     Otherwise error number which indicates the cause of error is returned.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_event_add_named(pfc_evhandler_t *PFC_RESTRICT idp,
-                          pfc_evfunc_t handler, pfc_ptr_t PFC_RESTRICT arg,
-                          const pfc_evmask_t *PFC_RESTRICT evmask,
-                          uint32_t priority, const char *PFC_RESTRICT hname)
-{
-       return __pfc_module_event_add(PFC_MODULE_THIS_ID, idp, handler,
-                                     arg, evmask, priority, hname);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_event_remove(pfc_evhandler_t id, const pfc_timespec_t *timeout)
- *     Remove the module-specific event handler added by the call of
- *     pfc_module_event_add().
- *
- *     `id' must be an ID of module-specific event handler.
- *     If the handler specified by `id' is being called, the calling thread
- *     will block until the handler returns. If it does not return within
- *     the period specified by `timeout', ETIMEDOUT is returned.
- *
- * Calling/Exit State:
- *     Upon successful completion, zero is returned.
- *     Otherwise error number which indicates the cause of error is returned.
- *
- * Remarks:
- *     The event handler may not be able to reuse even if this function
- *     returns error, except for EINVAL.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_event_remove(pfc_evhandler_t id, const pfc_timespec_t *timeout)
-{
-       return pfc_event_remove_handler(id, timeout);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_event_post(const char *target, pfc_evtype_t type)
- *     Post a module-specific event of the type specified by `type'.
- *
- *     The event is delivered to only handlers added by the module specified
- *     by `target'.
- *
- * Calling/Exit State:
- *     Upon successful completion, zero is returned.
- *
- *     ENOENT is returned if an invalid module name is specified to `target'.
- *     EPERM is returned if the module specified by `target' is not loaded.
- *
- *     Otherwise error number which indicates the cause of error is returned.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_event_post(const char *target, pfc_evtype_t type)
-{
-       return __pfc_module_event_post(PFC_MODULE_THIS_ID, target, type);
-}
-
-/*
- * static inline int PFC_FATTR_ALWAYS_INLINE
- * pfc_module_addhook(pfc_modhook_t hook, uint32_t pri)
- *     Register module unload hook.
- *
- *     `hook' is a hook function to be called.
- *     `pri' is an uint32_t value which determines order of hook calls.
- *     Hook functions are called in ascending order of priority.
- *
- *     Module unload hook takes a boolean argument.
- *     PFC_TRUE is passed if the module is about to be unloaded in the PFC
- *     daemon shutdown sequence.
- *     PFC_FALSE is passed if the module is about to be unloaded by user
- *     request.
- *
- * Calling/Exit State:
- *     Upon successful completion, zero is returned.
- *     Otherwise error number which indicates the cause of error is returned.
- */
-static inline int PFC_FATTR_ALWAYS_INLINE
-pfc_module_addhook(pfc_modhook_t hook, uint32_t pri)
-{
-       return __pfc_module_addhook(PFC_MODULE_THIS_ID, hook, pri);
-}
-
-#endif /* PFC_MODULE_BUILD */
-
-PFC_C_END_DECL
-
-#endif /* !_PFC_MODULE_H */
index 8519c98e9e0220ce589482272abbe386a4250410..eff278dd96eb4e5beb26b88b51aec8902857cd8f 100644 (file)
-/*\r
-* Copyright (c) 2012-2013 NEC Corporation\r
-* All rights reserved.\r
-*\r
-* This program and the accompanying materials are made available under the\r
-* terms of the Eclipse Public License v1.0 which accompanies this\r
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-*/\r
-\r
-\r
-\r
-#include <pfc/ipc.h>\r
-#include <netinet/in.h>\r
-#include <string>\r
-#include <map>\r
-#include <list>\r
-#include <pfc/ipc_client.h>\r
-#include <pfcxx/ipc_server.hh>\r
-\r
-#ifndef _PFCXX_IPC_CLIENT_HH\r
-#define _PFCXX_IPC_CLIENT_HH\r
-\r
-namespace pfc {\r
-namespace core {\r
-namespace ipc {\r
-\r
-class ClientSession\r
-{\r
-    friend class  ::pfc::core::ipc::ServerSession;\r
-\r
-public:\r
-    /*\r
-     * Constructors.\r
-     */\r
-    ClientSession(const char *name, pfc_ipcid_t service, int &err);\r
-    ClientSession(const char *name, pfc_ipcid_t service, int &err,\r
-                  uint32_t flags);\r
-    ClientSession(const std::string &name, pfc_ipcid_t service, int &err);\r
-    ClientSession(const std::string &name, pfc_ipcid_t service, int &err,\r
-                  uint32_t flags);\r
-    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,\r
-                  int &err);\r
-    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,\r
-                  int &err, uint32_t flags);\r
-    ClientSession(pfc_ipcconn_t conn, const std::string &name,\r
-                  pfc_ipcid_t service, int &err);\r
-    ClientSession(pfc_ipcconn_t conn, const std::string &name,\r
-                  pfc_ipcid_t service, int &err, uint32_t flags);\r
-   ClientSession(pfc_ipcsess_t *sess);\r
-    explicit ClientSession();\r
-\r
-    /*\r
-     * Destructor.\r
-     */\r
-    ~ClientSession();\r
-\r
-    /*\r
-     * Instance methods.\r
-     */\r
-    int   reset(const char *name, pfc_ipcid_t service);\r
-    int   reset(const std::string &name, pfc_ipcid_t service);\r
-\r
-    int   setTimeout(const pfc_timespec_t *timeout=NULL);\r
-    int   invoke(pfc_ipcresp_t &response);\r
-    int   cancel(pfc_bool_t discard=PFC_FALSE);\r
-    int   forward(ClientSession &sess, uint32_t begin = 0,\r
-                  uint32_t end = UINT32_MAX);\r
-    int   forward(ServerSession &sess, uint32_t begin = 0,\r
-                  uint32_t end = UINT32_MAX);\r
-    int   forwardTo(ServerSession &sess, uint32_t begin = 0,\r
-                    uint32_t end = UINT32_MAX);\r
-\r
-    int   addOutput(int8_t data);\r
-    int   addOutputInt8(int8_t data);\r
-    int   addOutput(uint8_t data);\r
-    int   addOutputUint8(uint8_t data);\r
-    int   addOutput(int16_t data);\r
-    int   addOutputInt16(int16_t data);\r
-    int   addOutput(uint16_t data);\r
-    int   addOutputUint16(uint16_t data);\r
-    int   addOutput(int32_t data);\r
-    int   addOutputInt32(int32_t data);\r
-    int   addOutput(uint32_t data);\r
-    int   addOutputUint32(uint32_t data);\r
-    int   addOutput(int64_t data);\r
-    int   addOutputInt64(int64_t data);\r
-    int   addOutput(uint64_t data);\r
-    int   addOutputUint64(uint64_t data);\r
-    int   addOutput(float data);\r
-    int   addOutputFloat(float data);\r
-    int   addOutput(double data);\r
-    int   addOutputDouble(double data);\r
-    int   addOutput(struct in_addr &data);\r
-    int   addOutput(struct in6_addr &data);\r
-    int   addOutput(const char *data);\r
-    int   addOutput(const std::string &data);\r
-    int   addOutput(const uint8_t *data, uint32_t length);\r
-    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);\r
-    int   addOutput(void);\r
-    int   addOutput(key_ctr& data);\r
-    int   addOutput(val_ctr& data);\r
-    int   addOutput(key_boundary_t& data);\r
-    int addOutput(key_logical_port data);\r
-    int addOutput(val_logical_port& data);\r
-    int addOutput(val_logical_port_st& data);\r
-\r
-    int   getResponse(uint32_t index, int8_t &data);\r
-    int   getResponse(uint32_t index, uint8_t &data);\r
-    int   getResponse(uint32_t index, int16_t &data);\r
-    int   getResponse(uint32_t index, uint16_t &data);\r
-    int   getResponse(uint32_t index, int32_t &data);\r
-    int   getResponse(uint32_t index, uint32_t &data);\r
-    int   getResponse(uint32_t index, int64_t &data);\r
-    int   getResponse(uint32_t index, uint64_t &data);\r
-    int   getResponse(uint32_t index, float &data);\r
-    int   getResponse(uint32_t index, double &data);\r
-    int   getResponse(uint32_t index, struct in_addr &data);\r
-    int   getResponse(uint32_t index, struct in6_addr &data);\r
-    int   getResponse(uint32_t index, const char *&data);\r
-    int   getResponse(uint32_t index, const uint8_t *&data, uint32_t &length);\r
-    int   getResponse(uint32_t index, const pfc_ipcstdef_t &def,\r
-                      pfc_ptr_t datap);\r
-\r
-    int   getResponse(uint32_t index, key_ctr& data);\r
-    int   getResponse(uint32_t index, val_phys_path_fault_alarm_t& data);\r
-    int   getResponse(uint32_t index, key_ctr_domain_t& data);\r
-    int   getResponse(uint32_t index, key_switch_t& data);\r
-    int   getResponse(uint32_t index, key_port_t& data);\r
-    int   getResponse(uint32_t index, val_port_st& data);\r
-    int   getResponse(uint32_t index, val_switch_st& data);\r
-    int   getResponse(uint32_t index, key_link_t& data);\r
-    int   getResponse(uint32_t index, val_link_st& data);\r
-    int   getResponse(uint32_t index, val_ctr_st& data);\r
-    int   getResponse(uint32_t index, val_ctr_domain_st& data);\r
-    int   getResponse(uint32_t index, key_logical_port_t& data);\r
-    int   getResponse(uint32_t index, val_logical_port_st& data);\r
-    int   getResponse(uint32_t index, key_logical_member_port_t& data);\r
-\r
-\r
-\r
-    uint32_t getResponseCount(void);\r
-    int getResponseType(uint32_t index, pfc_ipctype_t& type);\r
-\r
-    int   getResponseStructName(uint32_t index, const char *&name);\r
-    int   getResponseStructName(uint32_t index, std::string &name);\r
-\r
-    //stubs\r
-    static void stub_setResponseStructName(uint32_t index, std::string &name);\r
-    static void clearStubData(void);\r
-    static void stub_setResponse(int result);\r
-    static void stub_setResponsetype(uint32_t index,pfc_ipctype_t ipctype );\r
-    static void stub_setClientSessionErrorCode(int result);\r
-    static void stub_setAddOutput(int result);\r
-    static void stub_setAddOutput(uint32_t result);\r
-    static void stub_setAddOutput(const char* data);\r
-    static void stub_setResponseCount(int argCount);\r
-    static void stub_setResponse( uint32_t index,uint32_t value );\r
-    static void stub_setinvoke(pfc_ipcresp_t ipcresp,int err);\r
-\r
-private:\r
-// TODO add comments\r
-// TODO keep only modifed files; rest take it from system directory\r
-// TODO keep all stubs inside stub directory\r
-// TODO all changes prefix/suffic with stub_/_stub.\r
-    //stub data\r
-    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;\r
-    static std::map<uint32_t,std::string> structNameMap;//<index,structname>\r
-    static std::map<uint32_t,uint32_t> arg_map;\r
-    static std::list<uint32_t> add_output_list;//list of addoutput values\r
-    static int addOutPut_;\r
-    static int responseResult_;\r
-    static int ClientsesErrorCode_;\r
-    static int argCount_;\r
-    static pfc_ipcresp_t ipcresp_;\r
-    static int err_;\r
-    static std::list<const char*> add_output_str;\r
-};\r
-\r
-class IpcEventMask\r
-{\r
-\r
-public:\r
-    /* Create an event mask which contains all IPC event types. */\r
-    IpcEventMask(): _mask(PFC_IPC_EVENT_MASK_FILL) {}\r
-\r
-    /* Create an event mask which contains the specified IPC event type. */\r
-    explicit IpcEventMask(pfc_ipcevtype_t type)\r
-        : _mask(PFC_IPC_EVENT_MASK_BIT(type)) {}\r
-\r
-    /* Copy constructor. */\r
-    explicit IpcEventMask(const IpcEventMask &mask) : _mask(mask._mask) {}\r
-\r
-\r
-    inline void\r
-    empty(void)\r
-    {\r
-\r
-    }\r
-\r
-\r
-    inline void\r
-    fill(void)\r
-    {\r
-\r
-    }\r
-\r
-    inline int\r
-    add(pfc_ipcevtype_t type)\r
-    {\r
-        return 0;\r
-    }\r
-\r
-    inline int\r
-    remove(pfc_ipcevtype_t type)\r
-    {\r
-        return 0;\r
-    }\r
-\r
-    inline pfc_bool_t\r
-    test(pfc_ipcevtype_t type) const\r
-    {\r
-        return true;\r
-    }\r
-    inline const pfc_ipcevmask_t *\r
-    getMask(void) const\r
-    {\r
-        return &_mask;\r
-    }\r
-\r
-private:\r
-    /* Event mask value. */\r
-    pfc_ipcevmask_t    _mask;\r
-};\r
-\r
-class IpcEventAttr\r
-{\r
-public:\r
-   IpcEventAttr()\r
-   {\r
-\r
-   }\r
-\r
-\r
-   ~IpcEventAttr()\r
-   {\r
-\r
-   }\r
-\r
-\r
-   inline void\r
-   getHostSet(const char *&name) const\r
-   {\r
-\r
-\r
-   }\r
-\r
-\r
-   inline int\r
-   setHostSet(const char *name)\r
-   {\r
-       return 0;\r
-   }\r
-\r
-   inline void\r
-   getTarget(const char *service, IpcEventMask &mask) const\r
-   {\r
-\r
-\r
-   }\r
-\r
-   inline int\r
-   addTarget(const char *service)\r
-   {\r
-       return 0;\r
-   }\r
-\r
-   inline int\r
-   addTarget(const char *service, const IpcEventMask &mask)\r
-   {\r
-       return 0;\r
-   }\r
-\r
-\r
-   inline void\r
-   resetTarget(void)\r
-   {\r
-\r
-   }\r
-\r
-   inline void\r
-   getPriority(uint32_t &priority) const\r
-   {\r
-\r
-   }\r
-\r
-   inline void\r
-   setPriority(uint32_t priority)\r
-   {\r
-\r
-   }\r
-\r
-   inline void\r
-   getLog(pfc_bool_t &log) const\r
-   {\r
-\r
-   }\r
-\r
-\r
-   inline void\r
-   setLog(pfc_bool_t log)\r
-   {\r
-\r
-   }\r
-\r
-private:\r
-   pfc_ipcevattr_t   _attr;\r
-};\r
-\r
-class IpcEvent\r
-{\r
-public:\r
-    inline pfc_ipcevid_t\r
-    getSerial(void) const\r
-    {\r
-        return pfc_ipcevid_t();\r
-    }\r
-\r
-    inline pfc_ipcevtype_t\r
-    getType(void) const\r
-    {\r
-        return pfc_ipcevtype_t();\r
-    }\r
-\r
-    inline void\r
-    getTime(pfc_timespec_t &ts) const\r
-    {\r
-        ts=pfc_timespec_t();\r
-    }\r
-\r
-    inline const char *\r
-    getChannelName(void) const\r
-    {\r
-        return "channelName";\r
-    }\r
-\r
-\r
-    inline const pfc_hostaddr_t *\r
-    getHostAddress(void) const\r
-    {\r
-       pfc_hostaddr_t* host((pfc_hostaddr_t*)malloc(sizeof( pfc_hostaddr_t)));\r
-        return host;\r
-    }\r
-\r
-    inline const char *\r
-    getServiceName(void) const\r
-    {\r
-        return "serviceName";\r
-    }\r
-\r
-    inline pfc_ipcsess_t *\r
-    getSession(void) const\r
-    {\r
-         pfc_ipcsess_t* dummy;\r
-        return dummy;\r
-    }\r
-\r
-    inline pfc_bool_t\r
-    isStateChangeEvent(void) const\r
-    {\r
-        return true;\r
-    }\r
-\r
-private:\r
-    explicit IpcEvent(pfc_ipcevent_t *event) : _event(event) {}\r
-    pfc_ipcevent_t    *_event;\r
-};\r
-\r
-class IpcEventHandler\r
-{\r
-public:\r
-    IpcEventHandler() : _id() {}\r
-    virtual ~IpcEventHandler();\r
-    inline pfc_ipcevhdlr_t\r
-    getId(void) const\r
-    {\r
-        return _id;\r
-    }\r
-\r
-    virtual void  eventHandler(const IpcEvent &event) = 0;\r
-    virtual const char  *getName(void);\r
-\r
-private:\r
-    pfc_ipcevhdlr_t    _id;\r
-};\r
-\r
-extern int  add_event_handler(const char *channel, IpcEventHandler *handler,\r
-                              const IpcEventAttr *attr = NULL);\r
-extern int  remove_event_handler(pfc_ipcevhdlr_t id);\r
-static inline int\r
-remove_event_handler(IpcEventHandler *handler)\r
-{\r
-    return 0;\r
-}\r
-\r
-}\r
-}\r
-}\r
-#endif  /* !_PFCXX_IPC_CLIENT_HH */\r
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <pfc/ipc.h>
+#include <netinet/in.h>
+#include <string>
+#include <map>
+#include <list>
+#include <pfc/ipc_client.h>
+#include "ipc_server.hh"
+
+#ifndef _PFCXX_IPC_CLIENT_HH
+#define _PFCXX_IPC_CLIENT_HH
+
+namespace pfc {
+namespace core {
+namespace ipc {
+
+class ClientSession
+{
+    friend class  ::pfc::core::ipc::ServerSession;
+
+public:
+    /*
+     * Constructors.
+     */
+    ClientSession(const char *name, pfc_ipcid_t service, int &err);
+    ClientSession(const char *name, pfc_ipcid_t service, int &err,
+                  uint32_t flags);
+    ClientSession(const std::string &name, pfc_ipcid_t service, int &err);
+    ClientSession(const std::string &name, pfc_ipcid_t service, int &err,
+                  uint32_t flags);
+    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,
+                  int &err);
+    ClientSession(pfc_ipcconn_t conn, const char *name, pfc_ipcid_t service,
+                  int &err, uint32_t flags);
+    ClientSession(pfc_ipcconn_t conn, const std::string &name,
+                  pfc_ipcid_t service, int &err);
+    ClientSession(pfc_ipcconn_t conn, const std::string &name,
+                  pfc_ipcid_t service, int &err, uint32_t flags);
+   ClientSession(pfc_ipcsess_t *sess);
+    explicit ClientSession();
+
+    /*
+     * Destructor.
+     */
+    ~ClientSession();
+
+    /*
+     * Instance methods.
+     */
+    int   reset(const char *name, pfc_ipcid_t service);
+    int   reset(const std::string &name, pfc_ipcid_t service);
+
+    int   setTimeout(const pfc_timespec_t *timeout=NULL);
+    int   invoke(pfc_ipcresp_t &response);
+    int   cancel(pfc_bool_t discard=PFC_FALSE);
+    int   forward(ClientSession &sess, uint32_t begin = 0,
+                  uint32_t end = UINT32_MAX);
+    int   forward(ServerSession &sess, uint32_t begin = 0,
+                  uint32_t end = UINT32_MAX);
+    int   forwardTo(ServerSession &sess, uint32_t begin = 0,
+                    uint32_t end = UINT32_MAX);
+
+    int   addOutput(int8_t data);
+    int   addOutputInt8(int8_t data);
+    int   addOutput(uint8_t data);
+    int   addOutputUint8(uint8_t data);
+    int   addOutput(int16_t data);
+    int   addOutputInt16(int16_t data);
+    int   addOutput(uint16_t data);
+    int   addOutputUint16(uint16_t data);
+    int   addOutput(int32_t data);
+    int   addOutputInt32(int32_t data);
+    int   addOutput(uint32_t data);
+    int   addOutputUint32(uint32_t data);
+    int   addOutput(int64_t data);
+    int   addOutputInt64(int64_t data);
+    int   addOutput(uint64_t data);
+    int   addOutputUint64(uint64_t data);
+    int   addOutput(float data);
+    int   addOutputFloat(float data);
+    int   addOutput(double data);
+    int   addOutputDouble(double data);
+    int   addOutput(struct in_addr &data);
+    int   addOutput(struct in6_addr &data);
+    int   addOutput(const char *data);
+    int   addOutput(const std::string &data);
+    int   addOutput(const uint8_t *data, uint32_t length);
+    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);
+    int   addOutput(void);
+    int   addOutput(key_ctr& data);
+    int   addOutput(val_ctr& data);
+    int   addOutput(key_boundary_t& data);
+    int addOutput(key_logical_port data);
+    int addOutput(val_logical_port& data);
+    int addOutput(val_logical_port_st& data);
+
+    int   getResponse(uint32_t index, int8_t &data);
+    int   getResponse(uint32_t index, uint8_t &data);
+    int   getResponse(uint32_t index, int16_t &data);
+    int   getResponse(uint32_t index, uint16_t &data);
+    int   getResponse(uint32_t index, int32_t &data);
+    int   getResponse(uint32_t index, uint32_t &data);
+    int   getResponse(uint32_t index, int64_t &data);
+    int   getResponse(uint32_t index, uint64_t &data);
+    int   getResponse(uint32_t index, float &data);
+    int   getResponse(uint32_t index, double &data);
+    int   getResponse(uint32_t index, struct in_addr &data);
+    int   getResponse(uint32_t index, struct in6_addr &data);
+    int   getResponse(uint32_t index, const char *&data);
+    int   getResponse(uint32_t index, const uint8_t *&data, uint32_t &length);
+    int   getResponse(uint32_t index, const pfc_ipcstdef_t &def,
+                      pfc_ptr_t datap);
+
+    int   getResponse(uint32_t index, key_ctr& data);
+    int   getResponse(uint32_t index, val_phys_path_fault_alarm_t& data);
+    int   getResponse(uint32_t index, key_ctr_domain_t& data);
+    int   getResponse(uint32_t index, key_switch_t& data);
+    int   getResponse(uint32_t index, key_port_t& data);
+    int   getResponse(uint32_t index, val_port_st& data);
+    int   getResponse(uint32_t index, val_switch_st& data);
+    int   getResponse(uint32_t index, key_link_t& data);
+    int   getResponse(uint32_t index, val_link_st& data);
+    int   getResponse(uint32_t index, val_ctr_st& data);
+    int   getResponse(uint32_t index, val_ctr_domain_st& data);
+    int   getResponse(uint32_t index, key_logical_port_t& data);
+    int   getResponse(uint32_t index, val_logical_port_st& data);
+    int   getResponse(uint32_t index, key_logical_member_port_t& data);
+
+
+
+    uint32_t getResponseCount(void);
+    int getResponseType(uint32_t index, pfc_ipctype_t& type);
+
+    int   getResponseStructName(uint32_t index, const char *&name);
+    int   getResponseStructName(uint32_t index, std::string &name);
+
+    //stubs
+    static void stub_setResponseStructName(uint32_t index, std::string &name);
+    static void clearStubData(void);
+    static void stub_setResponse(int result);
+    static void stub_setResponsetype(uint32_t index,pfc_ipctype_t ipctype );
+    static void stub_setClientSessionErrorCode(int result);
+    static void stub_setAddOutput(int result);
+    static void stub_setAddOutput(uint32_t result);
+    static void stub_setAddOutput(const char* data);
+    static void stub_setResponseCount(int argCount);
+    static void stub_setResponse( uint32_t index,uint32_t value );
+    static void stub_setinvoke(pfc_ipcresp_t ipcresp,int err);
+
+private:
+// TODO add comments
+// TODO keep only modifed files; rest take it from system directory
+// TODO keep all stubs inside stub directory
+// TODO all changes prefix/suffic with stub_/_stub.
+    //stub data
+    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;
+    static std::map<uint32_t,std::string> structNameMap;//<index,structname>
+    static std::map<uint32_t,uint32_t> arg_map;
+    static std::list<uint32_t> add_output_list;//list of addoutput values
+    static int addOutPut_;
+    static int responseResult_;
+    static int ClientsesErrorCode_;
+    static int argCount_;
+    static pfc_ipcresp_t ipcresp_;
+    static int err_;
+    static std::list<const char*> add_output_str;
+};
+
+class IpcEventMask
+{
+
+public:
+    /* Create an event mask which contains all IPC event types. */
+    IpcEventMask(): _mask(PFC_IPC_EVENT_MASK_FILL) {}
+
+    /* Create an event mask which contains the specified IPC event type. */
+    explicit IpcEventMask(pfc_ipcevtype_t type)
+        : _mask(PFC_IPC_EVENT_MASK_BIT(type)) {}
+
+    /* Copy constructor. */
+    explicit IpcEventMask(const IpcEventMask &mask) : _mask(mask._mask) {}
+
+
+    inline void
+    empty(void)
+    {
+
+    }
+
+
+    inline void
+    fill(void)
+    {
+
+    }
+
+    inline int
+    add(pfc_ipcevtype_t type)
+    {
+        return 0;
+    }
+
+    inline int
+    remove(pfc_ipcevtype_t type)
+    {
+        return 0;
+    }
+
+    inline pfc_bool_t
+    test(pfc_ipcevtype_t type) const
+    {
+        return true;
+    }
+    inline const pfc_ipcevmask_t *
+    getMask(void) const
+    {
+        return &_mask;
+    }
+
+private:
+    /* Event mask value. */
+    pfc_ipcevmask_t    _mask;
+};
+
+class IpcEventAttr
+{
+public:
+   IpcEventAttr()
+   {
+
+   }
+
+
+   ~IpcEventAttr()
+   {
+
+   }
+
+
+   inline void
+   getHostSet(const char *&name) const
+   {
+
+
+   }
+
+
+   inline int
+   setHostSet(const char *name)
+   {
+       return 0;
+   }
+
+   inline void
+   getTarget(const char *service, IpcEventMask &mask) const
+   {
+
+
+   }
+
+   inline int
+   addTarget(const char *service)
+   {
+       return 0;
+   }
+
+   inline int
+   addTarget(const char *service, const IpcEventMask &mask)
+   {
+       return 0;
+   }
+
+
+   inline void
+   resetTarget(void)
+   {
+
+   }
+
+   inline void
+   getPriority(uint32_t &priority) const
+   {
+
+   }
+
+   inline void
+   setPriority(uint32_t priority)
+   {
+
+   }
+
+   inline void
+   getLog(pfc_bool_t &log) const
+   {
+
+   }
+
+
+   inline void
+   setLog(pfc_bool_t log)
+   {
+
+   }
+
+private:
+   pfc_ipcevattr_t   _attr;
+};
+
+class IpcEvent
+{
+public:
+    inline pfc_ipcevid_t
+    getSerial(void) const
+    {
+        return pfc_ipcevid_t();
+    }
+
+    inline pfc_ipcevtype_t
+    getType(void) const
+    {
+        return pfc_ipcevtype_t();
+    }
+
+    inline void
+    getTime(pfc_timespec_t &ts) const
+    {
+        ts=pfc_timespec_t();
+    }
+
+    inline const char *
+    getChannelName(void) const
+    {
+        return "channelName";
+    }
+
+
+    inline const pfc_hostaddr_t *
+    getHostAddress(void) const
+    {
+        if (!_addr_initialized) {
+            _addr_initialized = true;
+            pfc_hostaddr_init_local(&_local_addr);
+        }
+
+        return &_local_addr;
+    }
+
+    inline const char *
+    getServiceName(void) const
+    {
+        return "serviceName";
+    }
+
+    inline pfc_ipcsess_t *
+    getSession(void) const
+    {
+        return NULL;
+    }
+
+    inline pfc_bool_t
+    isStateChangeEvent(void) const
+    {
+        return true;
+    }
+
+private:
+    static pfc_hostaddr_t  _local_addr;
+    static bool            _addr_initialized;
+
+    explicit IpcEvent(pfc_ipcevent_t *event) : _event(event) {}
+    pfc_ipcevent_t    *_event;
+};
+
+class IpcEventHandler
+{
+public:
+    IpcEventHandler() : _id() {}
+    virtual ~IpcEventHandler();
+    inline pfc_ipcevhdlr_t
+    getId(void) const
+    {
+        return _id;
+    }
+
+    virtual void  eventHandler(const IpcEvent &event) = 0;
+    virtual const char  *getName(void);
+
+private:
+    pfc_ipcevhdlr_t    _id;
+};
+
+extern int  add_event_handler(const char *channel, IpcEventHandler *handler,
+                              const IpcEventAttr *attr = NULL);
+extern int  remove_event_handler(pfc_ipcevhdlr_t id);
+static inline int
+remove_event_handler(IpcEventHandler *handler)
+{
+    return 0;
+}
+
+}
+}
+}
+#endif  /* !_PFCXX_IPC_CLIENT_HH */
index dd5f03f215738110f0f8f0694cf2f18c486936da..889c70b84382f4f3c158bcdd5f2d241039ee6627 100644 (file)
-/*\r
-* Copyright (c) 2012-2013 NEC Corporation\r
-* All rights reserved.\r
-*\r
-* This program and the accompanying materials are made available under the\r
-* terms of the Eclipse Public License v1.0 which accompanies this\r
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html\r
-*/\r
-\r
-\r
-\r
-#include <pfc/ipc.h>\r
-#include <netinet/in.h>\r
-#include <string>\r
-#include <map>\r
-#include <list>\r
-#include <vector>\r
-#include<iostream>\r
-\r
-#ifndef _PFCXX_IPC_SERVER_HH\r
-#define _PFCXX_IPC_SERVER_HH\r
-\r
-//#define uint32_t int\r
-\r
-\r
-namespace pfc {\r
-namespace core {\r
-namespace ipc {\r
-\r
-class ClientSession;\r
-class ServerCallback;\r
-class ServerEvent;\r
-\r
-/*\r
- * C++ wrapper for IPC server session instance.\r
- */\r
-class ServerSession\r
-{\r
-    friend class  ::pfc::core::ipc::ClientSession;\r
-    friend class  ::pfc::core::ipc::ServerEvent;\r
-\r
-public:\r
-    /*\r
-     * Constructor.\r
-     */\r
-    ServerSession();\r
-\r
-    /*\r
-     * Destructor.\r
-     */\r
-    virtual ~ServerSession(){\r
-\r
-    }\r
-\r
-    /*\r
-     * Instance methods.\r
-     */\r
-    int   setTimeout(const pfc_timespec_t *timeout=NULL);\r
-    int   getClientAddress(pfc_ipccladdr_t &claddr);\r
-\r
-    int   addOutput(int8_t data);\r
-    int   addOutputInt8(int8_t data);\r
-    int   addOutput(uint8_t data);\r
-    int   addOutputUint8(uint8_t data);\r
-    int   addOutput(int16_t data);\r
-    int   addOutputInt16(int16_t data);\r
-    int   addOutput(uint16_t data);\r
-    int   addOutputUint16(uint16_t data);\r
-    int   addOutput(int32_t data);\r
-    int   addOutputInt32(int32_t data);\r
-    int   addOutput(uint32_t data);\r
-    int   addOutputUint32(uint32_t data);\r
-    int   addOutput(int64_t data);\r
-    int   addOutputInt64(int64_t data);\r
-    int   addOutput(uint64_t data);\r
-    int   addOutputUint64(uint64_t data);\r
-    int   addOutput(float data);\r
-    int   addOutputFloat(float data);\r
-    int   addOutput(double data);\r
-    int   addOutputDouble(double data);\r
-    int   addOutput(struct in_addr &data);\r
-    int   addOutput(struct in6_addr &data);\r
-    int   addOutput(const char *data);\r
-    int   addOutput(const std::string &data);\r
-    int   addOutput(const uint8_t *data, uint32_t length);\r
-    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);\r
-    int   addOutput(void);\r
-\r
-    int addOutput(val_ctr_st& data);\r
-    int addOutput(val_ctr_domain_st& data);\r
-    int addOutput(val_logical_port& data);\r
-    int addOutput(val_switch& data);\r
-    int addOutput(val_port& data);\r
-    int addOutput(val_link& data);\r
-    int addOutput(val_boundary_st& data);\r
-    int addOutput(key_ctr& data);\r
-    int addOutput(val_ctr& data);\r
-    int addOutput(key_ctr_domain& data);\r
-    int addOutput(val_ctr_domain& data);\r
-    int addOutput(key_logical_port data);\r
-    int addOutput(val_logical_port_st& data);\r
-    int addOutput(key_logical_member_port data);\r
-    int addOutput(key_switch& data);\r
-    int addOutput(val_switch_st& data);\r
-    int addOutput(key_port data);\r
-    int addOutput(val_port_st& data);\r
-    int addOutput(key_link data);\r
-    int addOutput(val_link_st data);\r
-    int addOutput(key_boundary data);\r
-    int addOutput(val_boundary& data);\r
-    int addOutput(key_root& data);\r
-    int addOutput(val_path_fault_alarm_t& data);\r
-    int addOutput(val_port_st_neighbor& data);\r
-    //int addOutput(key_logical_port);\r
-\r
-\r
-\r
-    int   getArgument(uint32_t index, int8_t &data);\r
-    int   getArgument(uint32_t index, uint8_t &data);\r
-    int   getArgument(uint32_t index, int16_t &data);\r
-    int   getArgument(uint32_t index, uint16_t &data);\r
-    int   getArgument(uint32_t index, int32_t &data);\r
-    int   getArgument(uint32_t index, uint32_t &data);\r
-    int   getArgument(uint32_t index, int64_t &data);\r
-    int   getArgument(uint32_t index, uint64_t &data);\r
-    int   getArgument(uint32_t index, float &data);\r
-    int   getArgument(uint32_t index, double &data);\r
-    int   getArgument(uint32_t index, struct in_addr &data);\r
-    int   getArgument(uint32_t index, struct in6_addr &data);\r
-    int   getArgument(uint32_t index, const char *&data);\r
-    int   getArgument(uint32_t index, const uint8_t *&data, uint32_t &length);\r
-    int   getArgument(uint32_t index, const pfc_ipcstdef_t &def,pfc_ptr_t datap);\r
-\r
-    int getArgument(int index, key_ctr_t& key);\r
-    int getArgument(int index, val_ctr_t& key);\r
-    int getArgument(int index, key_ctr_domain_t& key);\r
-    int getArgument(int index, key_boundary_t& key);\r
-    int getArgument(int index, val_boundary_t& key);\r
-    int getArgument(int index, val_ctr_domain_t& key);\r
-    int getArgument(int index, key_logical_port_t& key);\r
-    int getArgument(int index, val_logical_port_st_t& key);\r
-    int getArgument(int index, key_logical_member_port_t& key);\r
-    int getArgument(int index, key_switch_t& key);\r
-    int getArgument(int index, val_switch_st_t& key);\r
-    int getArgument(int index, key_port_t& key);\r
-    int getArgument(int index, val_port_st_t& key);\r
-    int getArgument(int index, key_link_t& key);\r
-    int getArgument(int index, val_link_st_t& key);\r
-\r
-\r
-    uint32_t getArgCount(void);\r
-    int   getArgType(uint32_t index, pfc_ipctype_t &type);\r
-    int   getArgStructName(uint32_t index, const char *&name);\r
-    int   getArgStructName(uint32_t index, std::string &name);\r
-\r
-    int   setCallback(pfc_ipcsrvcb_type_t type, ServerCallback *cbp);\r
-    void  unsetCallback(pfc_ipcsrvcb_type_t type);\r
-    void  clearCallbacks(void);\r
-\r
-    //stub functions\r
-    static void stub_setArgCount(uint32_t argCount);\r
-    static void stub_setArgStructName(uint32_t index, std::string &name);\r
-    static void stub_setArgument(int result);\r
-    static void stub_setArgument( uint32_t index,uint32_t value );\r
-    static void clearStubData();\r
-    static void stub_setArgType(uint32_t index, pfc_ipctype_t ipctype);\r
-    static void stub_setAddOutput(int result);\r
-    static void stub_setAddOutput(uint32_t value);\r
-\r
-private:\r
-    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;\r
-    static std::map<uint32_t,std::string> structNameMap;\r
-    static std::map<uint32_t,uint32_t> arg_map;\r
-    static std::vector<uint32_t> add_output_list;\r
-    static bool addOutPut_;\r
-    static int result_;\r
-    static uint32_t argCount_;\r
-};\r
-\r
-class ServerEvent\r
-    : public ServerSession\r
-{\r
-public:\r
-    ServerEvent(const char *name, pfc_ipcevtype_t type, int &err)\r
-        : ServerSession()\r
-    {\r
-       std::cout<<" ServerEvent(const char *name, pfc_ipcevtype_t type, int &err) "<<std::endl;\r
-        err = serverEventErr_;\r
-    }\r
-\r
-    ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)\r
-        : ServerSession()\r
-    {\r
-       std::cout<<" ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)"<<std::endl;\r
-        err = serverEventErr_;\r
-    }\r
-\r
-    ServerEvent(uint8_t type, int &err)\r
-           : ServerSession()\r
-    {\r
-       err = serverEventErr_;\r
-    }\r
-\r
-    ~ServerEvent()\r
-    {\r
-\r
-    }\r
-\r
-    inline int\r
-    post(void)\r
-    {\r
-       std::cout<<" post(void) "<<std::endl;\r
-        return postResult_;\r
-    }\r
-\r
-    inline int\r
-    postTo(pfc_ipccladdr_t &claddr)\r
-    {\r
-\r
-        return 0;\r
-    }\r
-\r
-    static void clearStubData();\r
-    static void stub_setserverEventErr(int err);\r
-    static void stub_setPostResult(int result);\r
-private:\r
-    static int serverEventErr_;\r
-    static int postResult_;\r
-};\r
-\r
-class ServerCallback\r
-{\r
-public:\r
-\r
-    ServerCallback(ServerSession &sess) : _sess(&sess), _refcnt(0) {}\r
-    virtual ~ServerCallback();\r
-    virtual void  callback(pfc_ipcsrvcb_type_t type) = 0;\r
-    inline ServerSession &\r
-    getSession(void)\r
-    {\r
-        return *_sess;\r
-    }\r
-\r
-private:\r
-    ServerSession  *_sess;\r
-    uint32_t  _refcnt;\r
-};\r
-\r
-}\r
-}\r
-}\r
-\r
-#endif  /* !_PFCXX_IPC_SERVER_HH */\r
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <pfc/ipc.h>
+#include <netinet/in.h>
+#include <string>
+#include <map>
+#include <list>
+#include <vector>
+#include <iostream>
+
+#ifndef _PFCXX_IPC_SERVER_HH
+#define _PFCXX_IPC_SERVER_HH
+
+namespace pfc {
+namespace core {
+namespace ipc {
+
+class ClientSession;
+class ServerCallback;
+class ServerEvent;
+
+/*
+ * C++ wrapper for IPC server session instance.
+ */
+class ServerSession
+{
+    friend class  ::pfc::core::ipc::ClientSession;
+    friend class  ::pfc::core::ipc::ServerEvent;
+
+public:
+    /*
+     * Constructor.
+     */
+    ServerSession();
+
+    /*
+     * Destructor.
+     */
+    virtual ~ServerSession(){
+
+    }
+
+    /*
+     * Instance methods.
+     */
+    int   setTimeout(const pfc_timespec_t *timeout=NULL);
+    int   getClientAddress(pfc_ipccladdr_t &claddr);
+
+    int   addOutput(int8_t data);
+    int   addOutputInt8(int8_t data);
+    int   addOutput(uint8_t data);
+    int   addOutputUint8(uint8_t data);
+    int   addOutput(int16_t data);
+    int   addOutputInt16(int16_t data);
+    int   addOutput(uint16_t data);
+    int   addOutputUint16(uint16_t data);
+    int   addOutput(int32_t data);
+    int   addOutputInt32(int32_t data);
+    int   addOutput(uint32_t data);
+    int   addOutputUint32(uint32_t data);
+    int   addOutput(int64_t data);
+    int   addOutputInt64(int64_t data);
+    int   addOutput(uint64_t data);
+    int   addOutputUint64(uint64_t data);
+    int   addOutput(float data);
+    int   addOutputFloat(float data);
+    int   addOutput(double data);
+    int   addOutputDouble(double data);
+    int   addOutput(struct in_addr &data);
+    int   addOutput(struct in6_addr &data);
+    int   addOutput(const char *data);
+    int   addOutput(const std::string &data);
+    int   addOutput(const uint8_t *data, uint32_t length);
+    int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);
+    int   addOutput(void);
+
+    int addOutput(val_ctr_st& data);
+    int addOutput(val_ctr_domain_st& data);
+    int addOutput(val_logical_port& data);
+    int addOutput(val_switch& data);
+    int addOutput(val_port& data);
+    int addOutput(val_link& data);
+    int addOutput(val_boundary_st& data);
+    int addOutput(key_ctr& data);
+    int addOutput(val_ctr& data);
+    int addOutput(key_ctr_domain& data);
+    int addOutput(val_ctr_domain& data);
+    int addOutput(key_logical_port data);
+    int addOutput(val_logical_port_st& data);
+    int addOutput(key_logical_member_port data);
+    int addOutput(key_switch& data);
+    int addOutput(val_switch_st& data);
+    int addOutput(key_port data);
+    int addOutput(val_port_st& data);
+    int addOutput(key_link data);
+    int addOutput(val_link_st data);
+    int addOutput(key_boundary data);
+    int addOutput(val_boundary& data);
+    int addOutput(key_root& data);
+    int addOutput(val_path_fault_alarm_t& data);
+    int addOutput(val_port_st_neighbor& data);
+    //int addOutput(key_logical_port);
+
+
+
+    int   getArgument(uint32_t index, int8_t &data);
+    int   getArgument(uint32_t index, uint8_t &data);
+    int   getArgument(uint32_t index, int16_t &data);
+    int   getArgument(uint32_t index, uint16_t &data);
+    int   getArgument(uint32_t index, int32_t &data);
+    int   getArgument(uint32_t index, uint32_t &data);
+    int   getArgument(uint32_t index, int64_t &data);
+    int   getArgument(uint32_t index, uint64_t &data);
+    int   getArgument(uint32_t index, float &data);
+    int   getArgument(uint32_t index, double &data);
+    int   getArgument(uint32_t index, struct in_addr &data);
+    int   getArgument(uint32_t index, struct in6_addr &data);
+    int   getArgument(uint32_t index, const char *&data);
+    int   getArgument(uint32_t index, const uint8_t *&data, uint32_t &length);
+    int   getArgument(uint32_t index, const pfc_ipcstdef_t &def,pfc_ptr_t datap);
+
+    int getArgument(int index, key_ctr_t& key);
+    int getArgument(int index, val_ctr_t& key);
+    int getArgument(int index, key_ctr_domain_t& key);
+    int getArgument(int index, key_boundary_t& key);
+    int getArgument(int index, val_boundary_t& key);
+    int getArgument(int index, val_ctr_domain_t& key);
+    int getArgument(int index, key_logical_port_t& key);
+    int getArgument(int index, val_logical_port_st_t& key);
+    int getArgument(int index, key_logical_member_port_t& key);
+    int getArgument(int index, key_switch_t& key);
+    int getArgument(int index, val_switch_st_t& key);
+    int getArgument(int index, key_port_t& key);
+    int getArgument(int index, val_port_st_t& key);
+    int getArgument(int index, key_link_t& key);
+    int getArgument(int index, val_link_st_t& key);
+
+
+    uint32_t getArgCount(void);
+    int   getArgType(uint32_t index, pfc_ipctype_t &type);
+    int   getArgStructName(uint32_t index, const char *&name);
+    int   getArgStructName(uint32_t index, std::string &name);
+
+    int   setCallback(pfc_ipcsrvcb_type_t type, ServerCallback *cbp);
+    void  unsetCallback(pfc_ipcsrvcb_type_t type);
+    void  clearCallbacks(void);
+
+    //stub functions
+    static void stub_setArgCount(uint32_t argCount);
+    static void stub_setArgStructName(uint32_t index, std::string &name);
+    static void stub_setArgument(int result);
+    static void stub_setArgument( uint32_t index,uint32_t value );
+    static void clearStubData();
+    static void stub_setArgType(uint32_t index, pfc_ipctype_t ipctype);
+    static void stub_setAddOutput(int result);
+    static void stub_setAddOutput(uint32_t value);
+
+private:
+    static std::map<uint32_t,pfc_ipctype_t > arg_parameters;
+    static std::map<uint32_t,std::string> structNameMap;
+    static std::map<uint32_t,uint32_t> arg_map;
+    static std::vector<uint32_t> add_output_list;
+    static bool addOutPut_;
+    static int result_;
+    static uint32_t argCount_;
+};
+
+class ServerEvent
+    : public ServerSession
+{
+public:
+    ServerEvent(const char *name, pfc_ipcevtype_t type, int &err)
+        : ServerSession()
+    {
+       std::cout<<" ServerEvent(const char *name, pfc_ipcevtype_t type, int &err) "<<std::endl;
+        err = serverEventErr_;
+    }
+
+    ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)
+        : ServerSession()
+    {
+       std::cout<<" ServerEvent(std::string &name, pfc_ipcevtype_t type, int &err)"<<std::endl;
+        err = serverEventErr_;
+    }
+
+    ServerEvent(uint8_t type, int &err)
+           : ServerSession()
+    {
+       err = serverEventErr_;
+    }
+
+    ~ServerEvent()
+    {
+
+    }
+
+    inline int
+    post(void)
+    {
+       std::cout<<" post(void) "<<std::endl;
+        return postResult_;
+    }
+
+    inline int
+    postTo(pfc_ipccladdr_t &claddr)
+    {
+
+        return 0;
+    }
+
+    static void clearStubData();
+    static void stub_setserverEventErr(int err);
+    static void stub_setPostResult(int result);
+private:
+    static int serverEventErr_;
+    static int postResult_;
+};
+
+class ServerCallback
+{
+public:
+
+    ServerCallback(ServerSession &sess) : _sess(&sess), _refcnt(0) {}
+    virtual ~ServerCallback();
+    virtual void  callback(pfc_ipcsrvcb_type_t type) = 0;
+    inline ServerSession &
+    getSession(void)
+    {
+        return *_sess;
+    }
+
+private:
+    ServerSession  *_sess;
+    uint32_t  _refcnt;
+};
+
+}
+}
+}
+
+#endif  /* !_PFCXX_IPC_SERVER_HH */
index 4456334cffbac46e7e64c8abf4afab544924f358..c3ec9c2c2ba9e82ff824253d9fdb5e7525ce2dc6 100644 (file)
@@ -1,12 +1,11 @@
 /*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 
 #ifndef        _PFCXX_MODULE_HH
 #define        _PFCXX_MODULE_HH
  */
 
 #include <pfc/module.h>
-//#include <pfcxx/conf.hh>
 #include <pfc/log.h>
-#include <cxx/pfcxx/conf.hh>
-#include <cxx/pfcxx/event.hh>
-#include "cxx/pfcxx/ipc_client.hh"
-#include<string>
-/*const char * pfc_module_conf_getblock(const char * bname){
+#include <pfcxx/conf.hh>
+#include <pfcxx/event.hh>
+#include <pfcxx/ipc_client.hh>
+#include <string>
 
-   return "";
-}
-const char* pfc_module_conf_getmap(const char* name,const char* keyv) {
-return "";
-}*/
 namespace pfc {
 namespace core {
 
@@ -47,8 +39,7 @@ public:
     }
 
     static Module *getInstanceByType(const char *tname) {
-
-       return capaModule;
+       return NULL;
     }
 
     static inline pfc_bool_t
@@ -181,10 +172,8 @@ private:
     std::string _name;
     pfc_module_t _module;
 protected:
-    static Module* capaModule;
-    static Module* tcLib;
-    static Module* PhysicalLayer;
-
+    static Module *tcLib;
+    static Module *physical;
 };
 
 /*
@@ -193,58 +182,58 @@ protected:
 extern pfc_module_t    module_register(const pfc_modattr_t *mattr,
                                         pfc_modfac_t factory,
                                         const char *tname);
-#define PFC_MODULE_IPC_DECL(module_classi,physical) \
 
+#define PFC_MODULE_IPC_DECL(module_classi,physical)
+#define        PFC_MODULE_DECL(module_class)
+
+
+/*
+ * The ModuleConfBlock instance represents a bunch of parameters defined in
+ * the module configuration file.
+ * This class is only available in module source code.
+ */
 class ModuleConfBlock
 {
 public:
     /*
- *      * Create a block handle instance associated with a parameter block
- *           * in the module configuration file, specified by the block name.
- *                */
-    ModuleConfBlock(const char *bname)
-         {}
-
-    ModuleConfBlock(const std::string &bname)
- {}
+     * Create a block handle instance associated with a parameter block
+     * in the module configuration file, specified by the block name.
+     */
+    ModuleConfBlock(const char *bname) {}
+    ModuleConfBlock(const std::string &bname) {}
 
     /*
- *      * Create a block handle instance associated with a parameter map block
- *           * in the module configuration file, specified by the map name and its key.
- *                */
-    ModuleConfBlock(const char *mname, const char *key)
- {}
-
-   ModuleConfBlock(const std::string &mname, const std::string &key)
- {}
+     * Create a block handle instance associated with a parameter map block
+     * in the module configuration file, specified by the map name and its key.
+     */
+    ModuleConfBlock(const char *mname, const char *key) {}
+    ModuleConfBlock(const std::string &mname, const std::string &key) {}
+
     inline uint8_t
     getByte(const char *name, uint8_t defvalue)
     {
-        return static_cast<uint8_t>(0);
+        return defvalue;
     }
 
     inline uint8_t
     getByte(const std::string &name, uint8_t defvalue)
     {
-
-        return static_cast<uint8_t>(0);
+        return defvalue;
     }
 
-    /*
- *      * Return a C-styled string value.
- *           */
     inline const char *
     getString(const char *name, const char *defvalue)
     {
-        return "dummy";
+        return defvalue;
     }
 
     inline const char *
     getString(const std::string &name, const char *defvalue)
     {
-        return "dummy";
+        return defvalue;
     }
-   inline int
+
+    inline int
     arraySize(const char *name)
     {
         return 0;
@@ -259,29 +248,29 @@ public:
      inline uint32_t
     getUint32(const char *name, uint32_t defvalue)
     {
-        return static_cast<uint32_t>(0);
+        return defvalue;
     }
 
     inline uint32_t
     getUint32(const std::string &name, uint32_t defvalue)
     {
-        return static_cast<uint32_t>(0);
+        return defvalue;
     }
 
     inline uint8_t
     getByteAt(const char *name, uint32_t index, uint8_t defvalue)
     {
-        return static_cast<uint8_t>(0);
+        return defvalue;
     }
 
     inline uint8_t
     getByteAt(const std::string &name, uint32_t index, uint8_t defvalue)
     {
-        return static_cast<uint8_t>(0);
+        return defvalue;
     }
-
 };
+
 }
 }
-#endif
 
+#endif
diff --git a/coordinator/test/modules/uppl/utest/stub/include/stub_momgr.hh b/coordinator/test/modules/uppl/utest/stub/include/stub_momgr.hh
deleted file mode 100644 (file)
index 4c14708..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-/*
- * stub_momgr_impl.hh
- *
- *  Created on: Feb 27, 2013
- *      Author: guest
- */
-
-#ifndef STUB_MOMGR_IMPL_HH_
-#define STUB_MOMGR_IMPL_HH_
-
-#include <limits.h>
-#include <gtest/gtest.h>
-#include "momgr_intf.hh"
-#include "pfc/event.h"
-#include "cxx/pfcxx/synch.hh"
-#include "unc/keytype.h"
-
-#include "upll_errno.h"
-#include "dal/dal_dml_intf.hh"
-#include "ipc_util.hh"
-#include "cxx/pfcxx/module.hh"
-#include "capa_module_stub.hh"
-#include "ctrlr_mgr.hh"
-#include "ipct_st.hh"
-#include "dal/dal_dml_intf.hh"
-
-using std::string;
-using std::list;
-using std::set;
-using unc::upll::ipc_util::IpcReqRespHeader;
-using unc::upll::ipc_util::ConfigKeyVal;
-using unc::upll::ipc_util::ConfigNotification;
-using unc::upll::dal::DalDmlIntf;
-
-
-using ::testing::TestWithParam;
-using namespace unc::upll::ipc_util;
-using ::testing::Values;
-
-using namespace unc::upll::config_momgr;
-
-class StubMoMgr : public MoManager
-{
-public:
-       virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                           uint32_t session_id, uint32_t config_id,
-                                           UpdateCtrlrPhase phase,
-                                           set<string> *affected_ctrlr_set,
-                                           DalDmlIntf *dmi,
-                                           ConfigKeyVal **err_ckv ) {
-               ConfigKeyVal* configKeyVal(new ConfigKeyVal(UNC_KT_FLOWLIST_ENTRY,IpctSt::kIpcInvalidStNum));
-               *err_ckv = configKeyVal;
-               if ( phase == kUpllUcpDelete )
-               {
-                       return ( session_id == 0)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-               }
-               else if ( phase == kUpllUcpCreate )
-               {
-                       return ( config_id == 0)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-               }
-               else if (phase == kUpllUcpUpdate )
-                       std::cout<<"affected_ctrlr_set->size() "<< affected_ctrlr_set->size()<<std::endl;
-                       return ( affected_ctrlr_set->size() == 0 )? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t TxVote(unc_key_type_t keytype, DalDmlIntf *dmi, ConfigKeyVal **err_ckv ) {
-                return UPLL_RC_SUCCESS;
-       }
-
-       virtual  upll_rc_t TxVoteCtrlrStatus(
-                       unc_key_type_t keytype,
-             list<CtrlrVoteStatus*> *ctrlr_vote_status,
-             DalDmlIntf *dmi) {
-                 return UPLL_RC_SUCCESS;
-       }
-
-
-virtual  upll_rc_t AuditUpdateController(unc_key_type_t, const char*, uint32_t, uint32_t, unc::upll::config_momgr::UpdateCtrlrPhase, bool*, unc::upll::dal::DalDmlIntf*){
- return UPLL_RC_SUCCESS;
-}
-
-       virtual upll_rc_t TxCopyCandidateToRunning(
-                       unc_key_type_t keytype,
-                       list<CtrlrCommitStatus*> *ctrlr_commit_status,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t TxEnd(unc_key_type_t keytype, DalDmlIntf *dmi){
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t CreateMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t CreateImportMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi, const char *ctrlr_id,const char *domain_id) {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-                 return UPLL_RC_SUCCESS;
-       }
-
-       /*virtual upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi, const char *ctrlr_id) {
-               return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-       }*/
-
-       virtual upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       bool begin, DalDmlIntf *dal)
-       {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t ReadSiblingCount(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t ControlMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-       }
-
-       virtual upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                       uint32_t session_id, uint32_t config_id,
-                       UpdateCtrlrPhase phase,
-                       DalDmlIntf *dmi)  {
-               if ( phase == kUpllUcpDelete )
-                       {
-                               return ( session_id == 0)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-                       }
-                       else if ( phase == kUpllUcpCreate )
-                       {
-                               return ( config_id == 10)? UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS;
-                       }
-                       else if (phase == kUpllUcpUpdate )
-
-                               return UPLL_RC_SUCCESS;
-         }
-           // virtual upll_rc_t AuditVote(const char *ctrlr_id) = 0;
-       virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
-                       CtrlrVoteStatus *vote_satus,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-           }
-       virtual upll_rc_t AuditCommitCtrlrStatus(unc_key_type_t keytype,
-                       CtrlrCommitStatus *commit_satus,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-           }
-       virtual upll_rc_t AuditEnd(unc_key_type_t keytype, const char *ctrlr_id,
-                       DalDmlIntf *dmi) {
-               std::string cntrl_id(ctrlr_id);
-               return ( 0 == cntrl_id.compare("success"))?UPLL_RC_SUCCESS:UPLL_RC_ERR_GENERIC;
-       }
-
-       virtual upll_rc_t MergeValidate(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                       ConfigKeyVal *conflict_ckv,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-
-       virtual upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                       DalDmlIntf *dmi) {
-               return UPLL_RC_SUCCESS;
-       }
-       virtual upll_rc_t ImportClear(unc_key_type_t keytype,
-                       const char *ctrlr_id,
-                                       DalDmlIntf *dmi) {
-                return UPLL_RC_SUCCESS;
-            }
-
-    virtual upll_rc_t CopyRunningToStartup(unc_key_type_t kt,
-               DalDmlIntf *dmi) {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t ClearStartup(unc_key_type_t kt, DalDmlIntf *dmi) {
-                  return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t LoadStartup(unc_key_type_t kt, DalDmlIntf *dmi) {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t CopyRunningToCandidate(unc_key_type_t kt,
-               DalDmlIntf *dmi) {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t IsCandidateDirty(unc_key_type_t kt, bool *dirty,
-               DalDmlIntf *dmi)   {
-       return UPLL_RC_SUCCESS;
-    }
-    virtual void UpplNotificationHandler(pfc_event_t event, pfc_ptr_t arg) {
-
-    }
-    virtual void DriverNotificationHandler(pfc_event_t event, pfc_ptr_t arg)  {
-
-    }
-};
-
-
-#endif /* STUB_MOMGR_IMPL_HH_ */
diff --git a/coordinator/test/modules/uppl/utest/stub/ipc_client_server/Makefile b/coordinator/test/modules/uppl/utest/stub/ipc_client_server/Makefile
deleted file mode 100644 (file)
index 94b25ce..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that includes ipc stub to run unit tests for UPPL module.
-##
-
-CPPFLAGS = -g
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-STUB_DIR =..
-INCLUDE =   -I$(STUB_DIR)/include \
-                               -I$(STUB_DIR)/include/cxx \
-            -I$(STUB_DIR)/include/cxx/pfcxx \
-                               -I$(SRC_DIR)/upll \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-                               -I$(SRC_DIR)/../dist/target/objs/core_include \
-                                   -I$(SRC_DIR)/../dist/target/objs/include \
-                                   -I$(SRC_DIR)/../core/include \
-                               -I$(SRC_DIR)/../core/include\cxx \
-                                               -I$(SRC_DIR)/../core/include\cxx\pfcxx \
-                               -I$(SRC_DIR)/../include/ \
-            -I$(SRC_DIR)/upll/include \
-                                   -I$(SRC_DIR)/ODBC \
-
-all: compile
-
-clean :
-       @(cd $(OBJS); rm -rf $(OBJS)/ipc_client.o ipc_server.o)
-
-DEPENDENT_FILES = ipc_server.cc ipc_client.cc module.cc alarm.cc 
-OBJ1 = $(patsubst %.cc,$(OBJS)/%.o,$(DEPENDENT_FILES))
-
-$(OBJ1):$(OBJS)/%.o : ./%.cc 
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-compile : $(OBJ1)
-
-             
-
diff --git a/coordinator/test/modules/uppl/utest/stub/ipc_client_server/_cfdef_uppl_ctr_capability.c b/coordinator/test/modules/uppl/utest/stub/ipc_client_server/_cfdef_uppl_ctr_capability.c
deleted file mode 100644 (file)
index 2e8bded..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-
-/*
- * Generated by cfdefc. DO NOT EDIT!!
- */
-
-#include <pfc/conf_parser.h>
-
-/*
- * Definitions for parameters in parameter blocks.
- */
-static const pfc_cfdef_param_t _cfdef_params_block_version_list[] = {
-       {
-               .cfdp_name      = "version",
-               .cfdp_min       = (uint64_t)0ULL,
-               .cfdp_max       = (uint64_t)1023ULL,
-               .cfdp_type      = PFC_CFTYPE_STRING,
-               .cfdp_nelems    = PFC_CFPARAM_NELEMS_VARLEN,
-               .cfdp_flags     = (0),
-       }
-};
-
-static const pfc_cfdef_param_t _cfdef_params_block_kt_cap_map_list[] = {
-       {
-               .cfdp_name      = "kt_map_name",
-               .cfdp_min       = (uint64_t)0ULL,
-               .cfdp_max       = (uint64_t)1023ULL,
-               .cfdp_type      = PFC_CFTYPE_STRING,
-               .cfdp_nelems    = PFC_CFPARAM_NELEMS_VARLEN,
-               .cfdp_flags     = (0),
-       }
-};
-
-static const pfc_cfdef_param_t _cfdef_params_map_kt_cap[] = {
-       {
-               .cfdp_name      = "key_type",
-               .cfdp_min       = (uint64_t)0x0ULL,
-               .cfdp_max       = (uint64_t)0xffffffffULL,
-               .cfdp_type      = PFC_CFTYPE_UINT32,
-               .cfdp_nelems    = PFC_CFPARAM_NELEMS_SCALAR,
-               .cfdp_flags     = (0),
-       },
-       {
-               .cfdp_name      = "attribute_name",
-               .cfdp_min       = (uint64_t)0ULL,
-               .cfdp_max       = (uint64_t)1023ULL,
-               .cfdp_type      = PFC_CFTYPE_STRING,
-               .cfdp_nelems    = PFC_CFPARAM_NELEMS_VARLEN,
-               .cfdp_flags     = (0),
-       },
-       {
-               .cfdp_name      = "version_supported",
-               .cfdp_min       = (uint64_t)0ULL,
-               .cfdp_max       = (uint64_t)1023ULL,
-               .cfdp_type      = PFC_CFTYPE_STRING,
-               .cfdp_nelems    = PFC_CFPARAM_NELEMS_VARLEN,
-               .cfdp_flags     = (0),
-       },
-       {
-               .cfdp_name      = "scalability_num",
-               .cfdp_min       = (uint64_t)0x0ULL,
-               .cfdp_max       = (uint64_t)0xffffffffULL,
-               .cfdp_type      = PFC_CFTYPE_UINT32,
-               .cfdp_nelems    = PFC_CFPARAM_NELEMS_SCALAR,
-               .cfdp_flags     = (0),
-       }
-};
-
-/*
- * Definitions for parameter blocks.
- */
-static const pfc_cfdef_block_t _cfdef_blocks[] = {
-       {
-               .cfdb_name      = "version_list",
-               .cfdb_params    = _cfdef_params_block_version_list,
-               .cfdb_nparams   = 1,
-               .cfdb_flags     = (0),
-       },
-       {
-               .cfdb_name      = "kt_cap_map_list",
-               .cfdb_params    = _cfdef_params_block_kt_cap_map_list,
-               .cfdb_nparams   = 1,
-               .cfdb_flags     = (0),
-       },
-       {
-               .cfdb_name      = "kt_cap",
-               .cfdb_params    = _cfdef_params_map_kt_cap,
-               .cfdb_nparams   = 4,
-               .cfdb_flags     = (PFC_CFBF_MAP),
-       }
-};
-
-/*
- * Definition for the configuration file.
- */
-const pfc_cfdef_t      ctr_cap_cfdef  = {
-       .cfd_block      = _cfdef_blocks,
-       .cfd_nblocks    = 3,
-};
diff --git a/coordinator/test/modules/uppl/utest/stub/ipc_client_server/ipc_client.cc b/coordinator/test/modules/uppl/utest/stub/ipc_client_server/ipc_client.cc
deleted file mode 100644 (file)
index e80652a..0000000
+++ /dev/null
@@ -1,929 +0,0 @@
-/*
-* Copyright (c) 2012-2013 NEC Corporation
-* All rights reserved.
-*
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0 which accompanies this
-* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-*/
-
-
-/*
- * C++ utilities for PFC IPC client.
- */
-
-#include <string>
-#include <pfc/ipc.h>
-#include <pfcxx/ipc_client.hh>
-#include <iostream>
-#include <pfc/ipc_client.h>
-
-namespace pfc {
-namespace core {
-namespace ipc {
-
-std::map<uint32_t,pfc_ipctype_t > ClientSession::arg_parameters;
-std::map<uint32_t,std::string> ClientSession::structNameMap;
-std::map<uint32_t,uint32_t> ClientSession::arg_map;
-std::list<uint32_t> ClientSession::add_output_list;
-int ClientSession::addOutPut_;
-int ClientSession::responseResult_;
-int ClientSession::ClientsesErrorCode_;
-int ClientSession::argCount_;
-pfc_ipcresp_t  ClientSession::ipcresp_;
-int ClientSession::err_;
-std::list<const char*> ClientSession::add_output_str;
-
-
-ClientSession::ClientSession(const char* /*name*/, pfc_ipcid_t /*service*/, int &err)
-{
-    err = 0;
-}
-
-
-ClientSession::ClientSession(const char* /*name*/, pfc_ipcid_t /*service*/, int &err,
-                             uint32_t /*flags*/)
-{
-    err = 0;
-}
-
-ClientSession::ClientSession(const std::string& /*name*/, pfc_ipcid_t /*service*/,
-                             int &err)
-{
-    err = 0;
-}
-
-ClientSession::ClientSession(const std::string& /*name*/, pfc_ipcid_t /*service*/,
-                             int &err, uint32_t /*flags*/)
-{
-    err = 0;
-}
-
-ClientSession::ClientSession(pfc_ipcconn_t /*conn*/, const char* /*name*/,
-                             pfc_ipcid_t service, int &err)
-{
-       if(service > 0 && service <=3 )
-       {
-               err = 0;
-       }
-       else {  err = 1; }
-
-}
-
-ClientSession::ClientSession(pfc_ipcconn_t /*conn*/, const char* /*name*/,
-                             pfc_ipcid_t /*service*/, int &err, uint32_t /*flags*/)
-{
-    err = 0;
-}
-
-ClientSession::ClientSession(pfc_ipcconn_t /*conn*/, const std::string& /*name*/,
-                             pfc_ipcid_t /*service*/, int &err)
-{
-    err = 0;
-}
-
-
-ClientSession::ClientSession(pfc_ipcconn_t /*conn*/, const std::string& /*name*/,
-                             pfc_ipcid_t /*service*/, int &err, uint32_t /*flags*/)
-{
-    err = 0;
-}
-
- void
-ClientSession::stub_setClientSessionErrorCode(int result)
-{
-       ClientsesErrorCode_ = result;
-}
-
-
-ClientSession::ClientSession()
-{
-}
-
-ClientSession::ClientSession(pfc_ipcsess_t *sess)
-{
-}
-
-/*
- * Destructor of the IPC client session instance.
- */
-
-ClientSession::~ClientSession()
-{
-       arg_parameters.clear();
-}
-
- int
-ClientSession::reset(const char* /*name*/, pfc_ipcid_t /*service*/)
-{
-    return 0;
-}
-
- int
-ClientSession::reset(const std::string& /*name*/, pfc_ipcid_t /*service*/)
-{
-    return 0;
-}
-
- int
-ClientSession::setTimeout(const pfc_timespec_t* /*timeout*/)
-{
-    return 0;
-}
-
- int
-ClientSession::invoke(pfc_ipcresp_t& response)
-{
-       response=ipcresp_;
-       return err_;
-}
-
-void ClientSession::stub_setinvoke(pfc_ipcresp_t ipcresp,int err)
-{
-        ipcresp_=ipcresp;
-        err_=err;
-}
- int
-ClientSession::cancel(pfc_bool_t /*discard*/)
-{
-    return 0;
-}
-
- int
-ClientSession::forward(ClientSession &sess, uint32_t begin, uint32_t end)
-{
-    return 0;
-}
-
- int
-ClientSession::forward(ServerSession &sess, uint32_t begin, uint32_t end)
-{
-    return 0;
-}
-
- int
-ClientSession::forwardTo(ServerSession &sess, uint32_t begin, uint32_t end)
-{
-    return 0;
-}
-
-// Signed 8-bit value.
- int
-ClientSession::addOutput(int8_t /*data*/)
-{
-    return addOutPut_;
-}
- int
- ClientSession::addOutput(void)
- {
-     return addOutPut_;
- }
- int
-ClientSession::addOutputInt8(int8_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Unsigned 8-bit value.
- int
-ClientSession::addOutput(uint8_t /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputUint8(uint8_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Signed 16-bit value.
- int
-ClientSession::addOutput(int16_t /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputInt16(int16_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Unsigned 16-bit value.
- int
-ClientSession::addOutput(uint16_t /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputUint16(uint16_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Signed 32-bit value.
- int
-ClientSession::addOutput(int32_t /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputInt32(int32_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Unsigned 32-bit value.
- int
-ClientSession::addOutput(uint32_t data)
-{
-       for (std::list<uint32_t>::iterator it=add_output_list.begin(); it != add_output_list.end(); ++it)
-       {
-               uint32_t data_l = *it;
-               if( data == data_l )
-               {
-                       return 0;
-               }
-       }
-       return 1;
-}
-
-
-int
-ClientSession::addOutput(key_ctr&)
-{
-return addOutPut_;
-}
-
-int
-ClientSession::addOutput(val_ctr&)
-{
-return addOutPut_;
-}
-
-int
-ClientSession::addOutput(key_boundary_t&)
-{
-return addOutPut_;
-}
-
-int
-ClientSession::addOutput(key_logical_port)
-{
-return addOutPut_;
-}
-
-int
-ClientSession::addOutput(val_logical_port&)
-{
-return addOutPut_;
-}
-
-int
-ClientSession::addOutput(val_logical_port_st&)
-{
-return addOutPut_;
-}
-
- void
-ClientSession::stub_setAddOutput(uint32_t data)
-{
-       add_output_list.push_front(data);
-}
-
-
- int
-ClientSession::addOutputUint32(uint32_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Signed 64-bit value.
- int
-ClientSession::addOutput(int64_t /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputInt64(int64_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Unsigned 64-bit value.
- int
-ClientSession::addOutput(uint64_t /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputUint64(uint64_t /*data*/)
-{
-    return addOutPut_;
-}
-
-// Single precision floating point.
- int
-ClientSession::addOutput(float /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputFloat(float /*data*/)
-{
-    return addOutPut_;
-}
-
-// Double precision floating point.
- int
-ClientSession::addOutput(double /*data*/)
-{
-    return addOutPut_;
-}
-
- int
-ClientSession::addOutputDouble(double /*data*/)
-{
-    return addOutPut_;
-}
-
-// IPv4 address.
- int
-ClientSession::addOutput(struct in_addr& /*data*/)
-{
-    return addOutPut_;
-}
-
-// IPv6 address.
- int
-ClientSession::addOutput(struct in6_addr& /*data*/)
-{
-    return addOutPut_;
-}
-
-// String. (pointer)
- int
-ClientSession::addOutput(const char* data)
-{
-   std::cout<<"data"<<data<<std::endl;
-     for (std::list<const char*>::iterator it=add_output_str.begin(); it != add_output_str.end(); ++it)
-        {
-                const char* data_l = *it;
-               std::string str(data);
-                if( 0 == str.compare(data_l) )
-                {
-                        return 0;
-                }
-        }
-        return 1;
-}
-
-
-void ClientSession::stub_setAddOutput(const char* data)
-{
-     add_output_str.push_front(data);
-}
-
-// String. (std::string)
- int
-ClientSession::addOutput(const std::string& /*data*/)
-{
-    return addOutPut_;
-}
-
-// Binary data.
- int
-ClientSession::addOutput(const uint8_t* /**data*/, uint32_t /*length*/)
-{
-    return addOutPut_;
-}
-
-// IPC structure specified by pfc_ipcstdef_t.
- int
-ClientSession::addOutput(const pfc_ipcstdef_t& /*def*/, pfc_cptr_t /*data*/)
-{
-    return addOutPut_;
-}
-
- void
-ClientSession::stub_setAddOutput( int result)
-{
-       addOutPut_ = result;
-}
-
-// Signed 8-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, int8_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Unsigned 8-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, uint8_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Signed 16-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, int16_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Unsigned 16-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, uint16_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Signed 32-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, int32_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Unsigned 32-bit integer.
- int
-ClientSession::getResponse(uint32_t index, uint32_t& data)
-{
-        if (0 != arg_map.count(index))
-        {
-                data = arg_map[index];
-                return 0;
-        }
-        return 1;
-}
-
-// Signed 64-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, int64_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Unsigned 64-bit integer.
- int
-ClientSession::getResponse(uint32_t /*index*/, uint64_t& /*data*/)
-{
-    return responseResult_;
-}
-
-// Single precision floating point.
- int
-ClientSession::getResponse(uint32_t /*index*/, float& /*data*/)
-{
-    return responseResult_;
-}
-
-// Double precision floating point.
- int
-ClientSession::getResponse(uint32_t /*index*/, double& /*data*/)
-{
-    return responseResult_;
-}
-
-// IPv4 address.
- int
-ClientSession::getResponse(uint32_t /*index*/, struct in_addr& /*data*/)
-{
-    return responseResult_;
-}
-
-// IPv6 address.
- int
-ClientSession::getResponse(uint32_t /*index*/, struct in6_addr& /*data*/)
-{
-    return responseResult_;
-}
-
- int
-ClientSession::getResponse(uint32_t /*index*/, const char*& /*data*/)
-{
-    return responseResult_;
-}
-
- int
-ClientSession::getResponse(uint32_t /*index*/, const uint8_t*& /*data*/,
-                           uint32_t& /*length*/)
-{
-    return responseResult_;
-}
-
- int
-ClientSession::getResponse(uint32_t /*index*/, const pfc_ipcstdef_t& /*def*/,
-                           pfc_ptr_t /*datap*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, key_ctr& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_phys_path_fault_alarm_t& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/,  key_ctr_domain_t& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, key_switch_t& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, key_port_t& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_port_st& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_switch_st& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, key_link_t& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_link_st& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_ctr_st& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_ctr_domain_st& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, key_logical_port_t& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, val_logical_port_st& /*data*/)
-{
-    return responseResult_;
-}
- int
-ClientSession::getResponse(uint32_t /*index*/, key_logical_member_port_t& /*data*/)
-{
-    return responseResult_;
-}
-
-void
-ClientSession::stub_setResponse(int result)
-{
-  responseResult_ = result;
-}
-
-void
-ClientSession::stub_setResponse( uint32_t index,uint32_t value )
-{
-       arg_map.insert(std::make_pair(index,value) );
-}
-
-uint32_t
-ClientSession::getResponseCount(void)
-{
-       return argCount_ ;
-}
-
-void
-ClientSession::stub_setResponseCount(int argCount)
-{
-       argCount_=argCount;
-}
-
- int
-ClientSession::getResponseType(uint32_t index, pfc_ipctype_t& type)
-{
-       if (0 != arg_parameters.count(index))
-       {
-               type = arg_parameters[index];
-               return 0;
-       }
-       return 1;
-}
-
- void
-ClientSession::stub_setResponsetype(uint32_t index,pfc_ipctype_t ipctype )
-{
-       std::cout<<" index"<<index<<std::endl;
-       arg_parameters.insert(std::make_pair(index,ipctype) );
-}
-
- int
-ClientSession::getResponseStructName(uint32_t index, const char*& name)
-{
-       if (0 != structNameMap.count(index))
-       {
-               name = structNameMap[index].c_str();
-               return 0;
-       }
-       return 1;
-}
-
- int
-ClientSession::getResponseStructName(uint32_t index, std::string& name)
-{
-       if (0 != structNameMap.count(index))
-               {
-                       name = structNameMap[index];
-                       return 0;
-               }
-               return 1;
-}
-
- void
-ClientSession::stub_setResponseStructName(uint32_t index, std::string& name)
-{
-       structNameMap.insert(std::make_pair(index,name));
-}
-
- void
-ClientSession::clearStubData(void)
-{
-       arg_parameters.clear();
-       structNameMap.clear();
-       arg_map.clear();
-       add_output_list.clear();
-        add_output_str.clear();
-}
-
-//class IpcEventAttr;
-//class IpcEventHandler;
-//class IpcEventMask
-//{
-//    friend class  ::pfc::core::ipc::IpcEventAttr;
-//
-//public:
-//    /* Create an event mask which contains all IPC event types. */
-//    IpcEventMask(): _mask(PFC_IPC_EVENT_MASK_FILL) {}
-//
-//    explicit IpcEventMask(pfc_ipcevtype_t type)
-//        : _mask(PFC_IPC_EVENT_MASK_BIT(type)) {}
-//
-//
-//    explicit IpcEventMask(const IpcEventMask &mask) : _mask(mask._mask) {}
-//
-//     void
-//    empty(void)
-//    {
-//
-//    }
-//
-//     void
-//    fill(void)
-//    {
-//
-//    }
-//
-//     int
-//    add(pfc_ipcevtype_t /*type*/)
-//    {
-//        return 0;
-//    }
-//
-//     int
-//    remove(pfc_ipcevtype_t /*type*/)
-//    {
-//        return 0;
-//    }
-//
-//     pfc_bool_t
-//    test(pfc_ipcevtype_t /*type*/) const
-//    {
-//        return true;
-//    }
-//
-//     const pfc_ipcevmask_t *
-//    getMask(void) const
-//    {
-//        return &_mask;
-//    }
-//
-//private:
-//    /* Event mask value. */
-//    pfc_ipcevmask_t    _mask;
-//};
-//
-//class IpcEventAttr
-//{
-//public:
-//    IpcEventAttr()
-//    {
-//
-//    }
-//
-//
-//    ~IpcEventAttr()
-//    {
-//
-//    }
-//
-//     void
-//    getHostSet(const char */*&name*/) const
-//    {
-//
-//    }
-//
-//     int
-//    setHostSet(const char* /*name*/)
-//    {
-//        return 0;
-//    }
-//
-//     void
-//    getTarget(const char* /*service*/, IpcEventMask& /*mask*/) const
-//    {
-//
-//    }
-//
-//     int
-//    addTarget(const char* /*service*/)
-//    {
-//        return 0;
-//    }
-//
-//     int
-//    addTarget(const char* /*service*/, const IpcEventMask& /*mask*/)
-//    {
-//        return 0;
-//    }
-//
-//     void
-//    resetTarget(void)
-//    {
-//
-//    }
-//
-//     void
-//    getPriority(uint32_t& /*priority*/) const
-//    {
-//
-//    }
-//
-//     void
-//    setPriority(uint32_t /*priority*/)
-//    {
-//
-//    }
-//
-//     void
-//    getLog(pfc_bool_t& /*log*/) const
-//    {
-//
-//    }
-//
-//     void
-//    setLog(pfc_bool_t /*log*/)
-//    {
-//
-//    }
-//
-//private:
-//    pfc_ipcevattr_t   _attr;
-//};
-//
-/*class IpcEvent
-{
-public:
-     pfc_ipcevid_t
-    getSerial(void) const
-    {
-        return 0;
-    }
-
-    pfc_ipcevtype_t
-    gettype(void) const
-    {
-        return 0;
-   }
-
-     void
-    getTime(pfc_timespec_t& ts*) const
-    {
-
-    }
-
-     const char *
-    getChannelName(void) const
-    {
-        return "dummy";
-    }
-
-     const pfc_hostaddr_t *
-    getHostAddress(void) const
-    {
-        return new pfc_hostaddr_t();
-    }
-
-     const char *
-    getServiceName(void) const
-    {
- //       return "dummy";
-//    }
-
-
-//    pfc_ipcsess_t *
-//    getSession(void) const
-//    {
-//     pfc_ipcsess_t* sst;
-//        return sst;
-//            }
-
-//     pfc_bool_t
-//    isStateChangeEvent(void) const
-//    {
-//        return true;
- //   }
-
-//private:
-
-//    explicit IpcEvent(pfc_ipcevent_t* event) : _event(event) {}
-
-//    pfc_ipcevent_t    *_event;
-//};
-//
-//
-//class IpcEventHandler
-//{
-//public:
-//    IpcEventHandler() : _id() {}
-//
-//    virtual ~IpcEventHandler()
-//    {
-//
-//    }
-//
-//     pfc_ipcevhdlr_t
-//    getId(void) const
-//    {
-//        return _id;
-//    }
-//
-//    void  eventHandler(const IpcEvent &event)
-//    {
-//
-//    }
-//
-//    const char  *getName(void)
-//    {
-//     return "dummy";
-//    }
-//
-//private:
-//    /* Handler's identifier. */
-//    pfc_ipcevhdlr_t    _id;
-//};
-//
-//static  int
-//remove_event_handler(IpcEventHandler *handler)
-//{
-//    if (PFC_EXPECT_FALSE(handler == NULL)) {
-//        return EINVAL;
-//    }
-//
-//    return 0;
-//}
-//
-//static  int
-//add_event_handler(const char *channel, IpcEventHandler *handler,
-//        const IpcEventAttr *attr = NULL)
-//{
-//    if (PFC_EXPECT_FALSE(handler == NULL)) {
-//        return EINVAL;
-//    }
-//
-//    return 0;
-//}
-
-}       // ipc
-}       // core
-}       // pfc
diff --git a/coordinator/test/modules/uppl/utest/stub/ipc_client_server/module.cc b/coordinator/test/modules/uppl/utest/stub/ipc_client_server/module.cc
deleted file mode 100644 (file)
index 00213da..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-
-#include "cxx/pfcxx/module.hh"
-
-namespace pfc {
-namespace core {
-
-Module* Module::capaModule=NULL;
-Module* Module::tcLib=NULL;
-Module* Module::PhysicalLayer=NULL;
-
-
- Module*  Module::getModule(const char* moduleName) {
-        if (!strcmp(moduleName,"uppl"))
-        {
-                return PhysicalLayer;
-        }
-        else if(!strcmp(moduleName,"tclib"))
-        {
-                return tcLib;
-        }
-        else
-        {
-                return NULL;
-        }
-
- }
-
-}
-}
diff --git a/coordinator/test/modules/uppl/utest/stub/misc/ipc_client.cc b/coordinator/test/modules/uppl/utest/stub/misc/ipc_client.cc
new file mode 100644 (file)
index 0000000..04c0aa8
--- /dev/null
@@ -0,0 +1,684 @@
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/*
+ * C++ utilities for PFC IPC client.
+ */
+
+#include <string>
+#include <pfc/ipc.h>
+#include <pfcxx/ipc_client.hh>
+#include <iostream>
+#include <pfc/ipc_client.h>
+
+namespace pfc {
+namespace core {
+namespace ipc {
+
+std::map<uint32_t,pfc_ipctype_t > ClientSession::arg_parameters;
+std::map<uint32_t,std::string> ClientSession::structNameMap;
+std::map<uint32_t,uint32_t> ClientSession::arg_map;
+std::list<uint32_t> ClientSession::add_output_list;
+int ClientSession::addOutPut_;
+int ClientSession::responseResult_;
+int ClientSession::ClientsesErrorCode_;
+int ClientSession::argCount_;
+pfc_ipcresp_t  ClientSession::ipcresp_;
+int ClientSession::err_;
+std::list<const char*> ClientSession::add_output_str;
+
+pfc_hostaddr_t IpcEvent::_local_addr;
+bool  IpcEvent::_addr_initialized = false;
+
+ClientSession::ClientSession(const char* name, pfc_ipcid_t service, int &err)
+{
+  err = 0;
+}
+
+ClientSession::ClientSession(const char* name, pfc_ipcid_t service,
+                             int &err, uint32_t flags)
+{
+  err = 0;
+}
+
+ClientSession::ClientSession(const std::string& name, pfc_ipcid_t service,
+                             int &err)
+{
+  err = 0;
+}
+
+ClientSession::ClientSession(const std::string& name, pfc_ipcid_t service,
+                             int &err, uint32_t flags)
+{
+    err = 0;
+}
+
+ClientSession::ClientSession(pfc_ipcconn_t conn, const char* name,
+                             pfc_ipcid_t service, int &err)
+{
+  if (service > 0 && service <= 3) {
+    err = 0;
+  }
+  else {
+    err = EINVAL;
+  }
+}
+
+ClientSession::ClientSession(pfc_ipcconn_t conn, const char* name,
+                             pfc_ipcid_t service, int &err, uint32_t flags)
+{
+  err = 0;
+}
+
+ClientSession::ClientSession(pfc_ipcconn_t conn, const std::string& name,
+                             pfc_ipcid_t service, int &err)
+{
+  err = 0;
+}
+
+ClientSession::ClientSession(pfc_ipcconn_t conn, const std::string& name,
+                             pfc_ipcid_t service, int &err, uint32_t flags)
+{
+  err = 0;
+}
+
+void
+ClientSession::stub_setClientSessionErrorCode(int result)
+{
+  ClientsesErrorCode_ = result;
+}
+
+ClientSession::ClientSession()
+{
+}
+
+ClientSession::ClientSession(pfc_ipcsess_t *sess)
+{
+}
+
+/*
+ * Destructor of the IPC client session instance.
+ */
+ClientSession::~ClientSession()
+{
+  arg_parameters.clear();
+}
+
+int
+ClientSession::reset(const char* name, pfc_ipcid_t service)
+{
+  return 0;
+}
+
+int
+ClientSession::reset(const std::string& name, pfc_ipcid_t service)
+{
+  return 0;
+}
+
+int
+ClientSession::setTimeout(const pfc_timespec_t* timeout)
+{
+  return 0;
+}
+
+int
+ClientSession::invoke(pfc_ipcresp_t& response)
+{
+  response = ipcresp_;
+  return err_;
+}
+
+void ClientSession::stub_setinvoke(pfc_ipcresp_t ipcresp,int err)
+{
+        ipcresp_=ipcresp;
+        err_=err;
+}
+int
+ClientSession::cancel(pfc_bool_t discard)
+{
+  return 0;
+}
+
+int
+ClientSession::forward(ClientSession &sess, uint32_t begin, uint32_t end)
+{
+  return 0;
+}
+
+ int
+ClientSession::forward(ServerSession &sess, uint32_t begin, uint32_t end)
+{
+  return 0;
+}
+
+ int
+ClientSession::forwardTo(ServerSession &sess, uint32_t begin, uint32_t end)
+{
+  return 0;
+}
+
+// Signed 8-bit value.
+int
+ClientSession::addOutput(int8_t data)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(void)
+{
+  return addOutPut_;
+}
+int
+ClientSession::addOutputInt8(int8_t data)
+{
+  return addOutPut_;
+}
+
+// Unsigned 8-bit value.
+int
+ClientSession::addOutput(uint8_t data)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputUint8(uint8_t data)
+{
+  return addOutPut_;
+}
+
+// Signed 16-bit value.
+int
+ClientSession::addOutput(int16_t data)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputInt16(int16_t data)
+{
+  return addOutPut_;
+}
+
+// Unsigned 16-bit value.
+int
+ClientSession::addOutput(uint16_t data)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputUint16(uint16_t data)
+{
+  return addOutPut_;
+}
+
+// Signed 32-bit value.
+int
+ClientSession::addOutput(int32_t /*data*/)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputInt32(int32_t /*data*/)
+{
+  return addOutPut_;
+}
+
+// Unsigned 32-bit value.
+int
+ClientSession::addOutput(uint32_t data)
+{
+  for (std::list<uint32_t>::iterator it(add_output_list.begin());
+       it != add_output_list.end(); ++it) {
+    uint32_t data_l = *it;
+    if (data == data_l) {
+      return 0;
+    }
+  }
+  return 1;
+}
+
+int
+ClientSession::addOutput(key_ctr&)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(val_ctr&)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(key_boundary_t&)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(key_logical_port)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(val_logical_port&)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(val_logical_port_st&)
+{
+  return addOutPut_;
+}
+
+ void
+ClientSession::stub_setAddOutput(uint32_t data)
+{
+  add_output_list.push_front(data);
+}
+
+ int
+ClientSession::addOutputUint32(uint32_t /*data*/)
+{
+  return addOutPut_;
+}
+
+// Signed 64-bit value.
+int
+ClientSession::addOutput(int64_t /*data*/)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputInt64(int64_t /*data*/)
+{
+  return addOutPut_;
+}
+
+// Unsigned 64-bit value.
+int
+ClientSession::addOutput(uint64_t /*data*/)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputUint64(uint64_t /*data*/)
+{
+  return addOutPut_;
+}
+
+// Single precision floating point.
+int
+ClientSession::addOutput(float /*data*/)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputFloat(float /*data*/)
+{
+  return addOutPut_;
+}
+
+// Double precision floating point.
+int
+ClientSession::addOutput(double /*data*/)
+{
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutputDouble(double /*data*/)
+{
+  return addOutPut_;
+}
+
+// IPv4 address.
+int
+ClientSession::addOutput(struct in_addr& /*data*/)
+{
+  return addOutPut_;
+}
+
+// IPv6 address.
+int
+ClientSession::addOutput(struct in6_addr& /*data*/)
+{
+  return addOutPut_;
+}
+
+// String. (pointer)
+int
+ClientSession::addOutput(const char* data)
+{
+  for (std::list<const char*>::iterator it(add_output_str.begin());
+       it != add_output_str.end(); ++it) {
+    const char* data_l = *it;
+    std::string str(data);
+    if (str.compare(data_l) == 0) {
+      return 0;
+    }
+  }
+  return 1;
+}
+
+void
+ClientSession::stub_setAddOutput(const char* data)
+{
+  add_output_str.push_front(data);
+}
+
+// String. (std::string)
+int
+ClientSession::addOutput(const std::string& data)
+{
+  return addOutPut_;
+}
+
+// Binary data.
+int
+ClientSession::addOutput(const uint8_t* data, uint32_t length)
+{
+  return addOutPut_;
+}
+
+// IPC structure specified by pfc_ipcstdef_t.
+int
+ClientSession::addOutput(const pfc_ipcstdef_t& def, pfc_cptr_t data)
+{
+  return addOutPut_;
+}
+
+void
+ClientSession::stub_setAddOutput(int result)
+{
+  addOutPut_ = result;
+}
+
+// Signed 8-bit integer.
+int
+ClientSession::getResponse(uint32_t index, int8_t& data)
+{
+  return responseResult_;
+}
+
+// Unsigned 8-bit integer.
+int
+ClientSession::getResponse(uint32_t index, uint8_t& data)
+{
+  return responseResult_;
+}
+
+// Signed 16-bit integer.
+int
+ClientSession::getResponse(uint32_t index, int16_t& data)
+{
+  return responseResult_;
+}
+
+// Unsigned 16-bit integer.
+int
+ClientSession::getResponse(uint32_t index, uint16_t& data)
+{
+  return responseResult_;
+}
+
+// Signed 32-bit integer.
+int
+ClientSession::getResponse(uint32_t index, int32_t& data)
+{
+  return responseResult_;
+}
+
+// Unsigned 32-bit integer.
+int
+ClientSession::getResponse(uint32_t index, uint32_t& data)
+{
+  if (arg_map.count(index) != 0) {
+    data = arg_map[index];
+    return 0;
+  }
+  return 1;
+}
+
+// Signed 64-bit integer.
+int
+ClientSession::getResponse(uint32_t index, int64_t& data)
+{
+  return responseResult_;
+}
+
+// Unsigned 64-bit integer.
+int
+ClientSession::getResponse(uint32_t index, uint64_t& data)
+{
+  return responseResult_;
+}
+
+// Single precision floating point.
+int
+ClientSession::getResponse(uint32_t index, float& data)
+{
+  return responseResult_;
+}
+
+// Double precision floating point.
+int
+ClientSession::getResponse(uint32_t index, double& data)
+{
+  return responseResult_;
+}
+
+// IPv4 address.
+int
+ClientSession::getResponse(uint32_t index, struct in_addr& data)
+{
+  return responseResult_;
+}
+
+// IPv6 address.
+int
+ClientSession::getResponse(uint32_t index, struct in6_addr& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, const char*& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, const uint8_t*& data,
+                           uint32_t& length)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, const pfc_ipcstdef_t& def,
+                           pfc_ptr_t datap)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, key_ctr& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_phys_path_fault_alarm_t& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index,  key_ctr_domain_t& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, key_switch_t& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, key_port_t& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_port_st& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_switch_st& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, key_link_t& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_link_st& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_ctr_st& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_ctr_domain_st& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, key_logical_port_t& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, val_logical_port_st& data)
+{
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(uint32_t index, key_logical_member_port_t& data)
+{
+  return responseResult_;
+}
+
+void
+ClientSession::stub_setResponse(int result)
+{
+  responseResult_ = result;
+}
+
+void
+ClientSession::stub_setResponse(uint32_t index,uint32_t value)
+{
+  arg_map.insert(std::make_pair(index,value) );
+}
+
+uint32_t
+ClientSession::getResponseCount(void)
+{
+  return argCount_;
+}
+
+void
+ClientSession::stub_setResponseCount(int argCount)
+{
+  argCount_=argCount;
+}
+
+ int
+ClientSession::getResponseType(uint32_t index, pfc_ipctype_t& type)
+{
+  if (arg_parameters.count(index) != 0) {
+    type = arg_parameters[index];
+    return 0;
+  }
+  return 1;
+}
+
+void
+ClientSession::stub_setResponsetype(uint32_t index,pfc_ipctype_t ipctype)
+{
+  arg_parameters.insert(std::make_pair(index,ipctype) );
+}
+
+int
+ClientSession::getResponseStructName(uint32_t index, const char*& name)
+{
+  if (structNameMap.count(index) != 0) {
+    name = structNameMap[index].c_str();
+    return 0;
+  }
+  return 1;
+}
+
+int
+ClientSession::getResponseStructName(uint32_t index, std::string& name)
+{
+  if (structNameMap.count(index) != 0) {
+    name = structNameMap[index];
+    return 0;
+  }
+  return 1;
+}
+
+void
+ClientSession::stub_setResponseStructName(uint32_t index, std::string& name)
+{
+  structNameMap.insert(std::make_pair(index,name));
+}
+
+void
+ClientSession::clearStubData(void)
+{
+  arg_parameters.clear();
+  structNameMap.clear();
+  arg_map.clear();
+  add_output_list.clear();
+  add_output_str.clear();
+}
+
+}       // ipc
+}       // core
+}       // pfc
diff --git a/coordinator/test/modules/uppl/utest/stub/misc/module.cc b/coordinator/test/modules/uppl/utest/stub/misc/module.cc
new file mode 100644 (file)
index 0000000..b0194b6
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2012-2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include <string.h>
+#include <pfcxx/module.hh>
+
+namespace pfc {
+namespace core {
+
+Module* Module::physical = NULL;
+Module* Module::tcLib = NULL;
+
+Module *
+Module::getModule(const char* moduleName) {
+  if (!strcmp(moduleName, "uppl")) {
+    return physical;
+  }
+  if (!strcmp(moduleName, "tclib")) {
+    return tcLib;
+  }
+
+  return NULL;
+}
+
+}
+}
diff --git a/coordinator/test/modules/uppl/utest/stub/tclib_module/Makefile b/coordinator/test/modules/uppl/utest/stub/tclib_module/Makefile
deleted file mode 100644 (file)
index 80d4bbd..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright (c) 2013 NEC Corporation
-# All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0 which accompanies this
-# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-#
-
-##
-## Makefile that includes tclib module stub to run unit tests for UPPL module.
-##
-
-
-
-
-
-CPPFLAGS = -g 
-
-OBJS=../stub_objs
-
-SRC_DIR = ../../../../../../modules
-STUB_DIR =..
-INCLUDE =   -I$(STUB_DIR)/include \
-                                   -I$(STUB_DIR)/include/cxx \
-            -I$(STUB_DIR)/include/cxx/pfcxx \
-                               -I$(SRC_DIR)/../core/include \
-                               -I$(SRC_DIR)/../include \
-            -I$(SRC_DIR)/../core/libs/libpfc_ipc \
-                                   -I$(SRC_DIR)/../dist/target/objs/core_include \
-            -I$(SRC_DIR)/../dist/target/objs/core/include \
-                                   -I$(SRC_DIR)/../dist/target/objs/include \
-            -I$(SRC_DIR)/upll/include \
-                               -I$(SRC_DIR)/dal \
-
-
-all: $(OBJS)/tclib_module.o
-
-clean :
-       @(cd $(OBJS); rm -rf $(OBJ) tclib_module.o)
-
-$(OBJS)/tclib_module.o :tclib_module.cc tclib_module.hh
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
-
-       
-
-
-             
-
index 343512a67fcc8648ef783b41344133e62e78d0ac..9c06863b03289e8d3444fbc88efc10197cf90506 100644 (file)
@@ -1,12 +1,11 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
+* Copyright (c) 2012-2013 NEC Corporation
+* All rights reserved.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this
+* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+*/
 
 #include "tclib_module.hh"
 
@@ -20,6 +19,18 @@ unc_keytype_ctrtype_t TcLibModule::controllerType;
 uint32_t TcLibModule::keyIndex;
 TcLibInterface* TcLibModule::pTcLibInterface_=0;
 
+static TcLibModule  theInstance(NULL);
+
+void
+TcLibModule::stub_loadtcLibModule(void) {
+    pfc::core::Module::tcLib = &theInstance;
+}
+
+void
+TcLibModule::stub_unloadtcLibModule(void) {
+    pfc::core::Module::tcLib = NULL;
+}
+
 TcApiCommonRet TcLibModule::TcLibRegisterHandler(TcLibInterface* handler) {
        pTcLibInterface_ = handler;
         return stub_getMappedResultCode(TcLibModule::REGISTER);
index bbf7f4be0e3ff6e00c666b07b9bbc6b6a87c1d7d..23c94aad046d454499f41272c766c2b650dbb7ea 100644 (file)
@@ -1,20 +1,20 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
+* Copyright (c) 2012-2013 NEC Corporation
+* All rights reserved.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this
+* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+*/
 
 
 #ifndef _UNC_TCLIB_MODULE_HH_
 #define _UNC_TCLIB_MODULE_HH_
 
-#include "cxx/pfcxx/module.hh"
-#include <cxx/pfcxx/synch.hh>
+#include <pfcxx/module.hh>
+#include <pfcxx/synch.hh>
 #include <uncxx/tclib/tclib_interface.hh>
-#include "tclib_struct_defs.hh"
+#include <tclib_struct_defs.hh>
 #include <string>
 
 namespace unc {
@@ -23,80 +23,72 @@ namespace tclib {
 class TcLibInterface;
 
 class TcLibModule : public pfc::core::Module {
- public:
-
-       enum TCApiCommonRet {
-               REGISTER,
-               AUDIT_CONTROLLER,
-               VALIDATE_UPDATE,
-               READ_KEY_VAL,
-               WRITE_CONTROLLER,
-               WRITE_KEY_VALUE,
-               IS_READ_KEY,
-               IS_WRITE_KEY,
-               KEY_INDEX,
-
-       };
-
-       enum TCCommonRet {
-               VALIDATE_OPER_TYPE,
-               VALIDATE_COMMIT_OPER,
-               VALIDATE_AUDIT_OPER,
-               VALIDATE_UPLL_COMMIT,
-               VALIDATE_DRIVER_COMMIT,
-               VALIDATE_UPLL_AUDIT,
-               VALIDATE_DRIVER_AUDIT,
-               UPDATE_CONTROLLER_KEY,
-               NOTIFY_SESSION_CONFIG,
-               COMMIT_TRANS_START,
-               COMMIT_VOTE_GLOBAL,
-               COMMIT_TRANS,
-               COMMIT_DRIVER_VOTE,
-               COMMIT_DRIVER_RESULT,
-               COMMIT_GLOBAL_ABORT,
-               AUDIT_TRANS_START,
-               AUDIT_VOTE_GLOBAL,
-               AUDIT_TRANS,
-               AUDIT_DRIVER_VOTE,
-               AUDIT_DRIVER_RESULT,
-               AUDIT_GLOBAL_ABORT,
-               SAVE_CONFIGURATION,
-               CLEAR_START_UP,
-               ABORT_CANDIDATE,
-               AUDIT_CONFIG,
-               SET_UP,
-               SET_UP_COMPLETE,
-       };
-
-  TcLibModule(const pfc_modattr_t *mattr):
-         pfc::core::Module(mattr){
-
+public:
+  enum TCApiCommonRet {
+    REGISTER,
+    AUDIT_CONTROLLER,
+    VALIDATE_UPDATE,
+    READ_KEY_VAL,
+    WRITE_CONTROLLER,
+    WRITE_KEY_VALUE,
+    IS_READ_KEY,
+    IS_WRITE_KEY,
+    KEY_INDEX,
+  };
+
+  enum TCCommonRet {
+    VALIDATE_OPER_TYPE,
+    VALIDATE_COMMIT_OPER,
+    VALIDATE_AUDIT_OPER,
+    VALIDATE_UPLL_COMMIT,
+    VALIDATE_DRIVER_COMMIT,
+    VALIDATE_UPLL_AUDIT,
+    VALIDATE_DRIVER_AUDIT,
+    UPDATE_CONTROLLER_KEY,
+    NOTIFY_SESSION_CONFIG,
+    COMMIT_TRANS_START,
+    COMMIT_VOTE_GLOBAL,
+    COMMIT_TRANS,
+    COMMIT_DRIVER_VOTE,
+    COMMIT_DRIVER_RESULT,
+    COMMIT_GLOBAL_ABORT,
+    AUDIT_TRANS_START,
+    AUDIT_VOTE_GLOBAL,
+    AUDIT_TRANS,
+    AUDIT_DRIVER_VOTE,
+    AUDIT_DRIVER_RESULT,
+    AUDIT_GLOBAL_ABORT,
+    SAVE_CONFIGURATION,
+    CLEAR_START_UP,
+    ABORT_CANDIDATE,
+    AUDIT_CONFIG,
+    SET_UP,
+    SET_UP_COMPLETE,
+  };
+
+  TcLibModule(const pfc_modattr_t *mattr) : pfc::core::Module(mattr) {
   }
 
   ~TcLibModule() {
-
   }
 
-
   pfc_bool_t init() {
-         return true;
+    return true;
   }
 
-
   pfc_bool_t fini() {
-         return true;
+    return true;
   }
 
   pfc_ipcresp_t ipcService(pfc::core::ipc::ServerSession& sess,
                            pfc_ipcid_t service) {
-         return pfc_ipcresp_t();
-}
+    return pfc_ipcresp_t();
+  }
 
   TcApiCommonRet TcLibRegisterHandler(TcLibInterface* handler);
 
   TcApiCommonRet TcLibAuditControllerRequest(std::string controller_id);
 
-
   TcApiCommonRet TcLibValidateUpdateMsg(uint32_t sessionid, uint32_t configid);
 
   TcApiCommonRet TcLibReadKeyValueDataInfo(std::string controller_id,
@@ -117,56 +109,41 @@ class TcLibModule : public pfc::core::Module {
                                             void* key_data,
                                             void* value_data);
 
- private:
-
+private:
   TcCommonRet ValidateOperTypeSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateCommitOperSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateAuditOperSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateUpllUpplCommitSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateDriverCommitSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateUpllUpplAuditSequence(TcMsgOperType oper_type);
 
-
   TcCommonRet ValidateDriverAuditSequence(TcMsgOperType oper_type);
 
-
   TcApiCommonRet IsReadKeyValueAllowed();
 
   TcApiCommonRet IsWriteKeyValueAllowed();
 
-
   TcCommonRet UpdateControllerKeyList();
 
   TcCommonRet NotifySessionConfig();
 
-
   TcCommonRet CommitTransStartEnd(TcMsgOperType oper_type,
                                   TcCommitTransactionMsg commit_trans_msg);
 
-
   TcCommonRet CommitVoteGlobal(TcMsgOperType oper_type,
                                   TcCommitTransactionMsg commit_trans_msg);
 
-
   TcCommonRet CommitTransaction();
 
-
   TcCommonRet CommitDriverVoteGlobal();
 
-
   TcCommonRet CommitDriverResult();
 
-
   TcCommonRet CommitGlobalAbort();
 
   TcCommonRet AuditTransStartEnd(TcMsgOperType oper_type,
@@ -187,7 +164,6 @@ class TcLibModule : public pfc::core::Module {
 
   TcCommonRet SaveConfiguaration();
 
-
   TcCommonRet ClearStartup();
 
   TcCommonRet AbortCandidate();
@@ -208,40 +184,35 @@ class TcLibModule : public pfc::core::Module {
 
   //stub Methods
   static inline void Stub_setDriverId(unc_keytype_ctrtype_t driverid ) {
-         driverId = driverid;
+    driverId = driverid;
   }
 
   static inline void stub_setControllerType(unc_keytype_ctrtype_t cntrlrType) {
-         controllerType = cntrlrType;
+    controllerType = cntrlrType;
   }
 
   static inline void stub_setKeyIndex(uint32_t index) {
-         keyIndex = index;
-  }
-
-  static void stub_setTcCommonRetcode(TcLibModule::TCCommonRet methodType ,TcCommonRet res_code) {
-         method_tccommon_map.insert(std::make_pair(methodType,res_code));
+    keyIndex = index;
   }
 
-  static void stub_setTCApiCommonRetcode(TcLibModule::TCApiCommonRet methodType,TcApiCommonRet res_code) {
-         method_tcapi_map.insert(std::make_pair(methodType,res_code));
+  static void stub_setTcCommonRetcode(TcLibModule::TCCommonRet methodType,
+                                      TcCommonRet res_code) {
+    method_tccommon_map.insert(std::make_pair(methodType,res_code));
   }
 
-  static void stub_loadtcLibModule() {
-         const pfc_modattr_t *attr;
-         tcLib=static_cast<pfc::core::Module*>( new TcLibModule(attr) );
+  static void stub_setTCApiCommonRetcode(TcLibModule::TCApiCommonRet methodType,
+                                         TcApiCommonRet res_code) {
+    method_tcapi_map.insert(std::make_pair(methodType,res_code));
   }
 
-  static void stub_unloadtcLibModule() {
-         tcLib=NULL;
-  }
+  static void stub_loadtcLibModule(void);
+  static void stub_unloadtcLibModule(void);
 
   static void stub_clearTcLibStubData() {
-         method_tccommon_map.clear();
-         method_tcapi_map.clear();
-
+    method_tccommon_map.clear();
+    method_tcapi_map.clear();
   }
- private:
+
   static TcApiCommonRet stub_getMappedResultCode(TcLibModule::TCApiCommonRet);
   static TcCommonRet stub_getMappedResultCode(TcLibModule::TCCommonRet);
 
diff --git a/coordinator/test/modules/uppl/utest/stub/tclib_module/tclib_struct_defs.hh b/coordinator/test/modules/uppl/utest/stub/tclib_module/tclib_struct_defs.hh
deleted file mode 100644 (file)
index bedba35..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-
-
-#include "../../../../../../modules/tclib/include/tclib_struct_defs.hh"
-
diff --git a/coordinator/test/modules/uppl/utest/ut_stub.h b/coordinator/test/modules/uppl/utest/ut_stub.h
new file mode 100644 (file)
index 0000000..d30756e
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef        _TEST_UPPL_UT_STUB_H
+#define        _TEST_UPPL_UT_STUB_H
+
+/*
+ * Include stub header files.
+ */
+
+#include "stub/include/core_include/pfc/ipc_client.h"
+#include "stub/clstat/clstat_api.h"
+
+#ifdef __cplusplus
+#include "stub/include/cxx/pfcxx/ipc_server.hh"
+#include "stub/include/cxx/pfcxx/ipc_client.hh"
+#include "stub/include/cxx/pfcxx/module.hh"
+#include "stub/ODBC/include/odbcm_mgr.hh"
+#include "stub/tclib_module/tclib_module.hh"
+#endif /* __cplusplus */
+
+#endif /* !_TEST_UPPL_UT_STUB_H */
diff --git a/coordinator/test/modules/uppl/utest/ut_util.hh b/coordinator/test/modules/uppl/utest/ut_util.hh
new file mode 100644 (file)
index 0000000..649fa0d
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef        _TEST_UPPL_UT_UTIL_HH
+#define        _TEST_UPPL_UT_UTIL_HH
+
+/*
+ * Miscellaneous utility.
+ */
+#include <stdlib.h>
+#include <string.h>
+#include <gtest/gtest.h>
+
+namespace unc {
+namespace uppl {
+namespace test {
+
+/*
+ * Base class for test environment.
+ */
+class UpplTestEnv
+  : public ::testing::Test
+{
+protected:
+  virtual void  SetUp();
+  virtual void  TearDown();
+};
+
+}  // test
+}  // uppl
+}  // unc
+
+#endif /* !_TEST_UPPL_UT_UTIL_HH */
diff --git a/coordinator/test/modules/uppl/utest/util.cc b/coordinator/test/modules/uppl/utest/util.cc
new file mode 100644 (file)
index 0000000..5680ede
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2013 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/*
+ * misc.cc - Miscellaneous utilities.
+ */
+
+#include <pfcxx/ipc_server.hh>
+#include <tclib_module.hh>
+#include "PhysicalLayerStub.hh"
+#include "ut_util.hh"
+
+using namespace unc::uppl::test;
+using namespace unc::tclib;
+using namespace pfc::core::ipc;
+
+/*
+ * Set up test environment.
+ */
+void
+UpplTestEnv::SetUp()
+{
+  TcLibModule::stub_loadtcLibModule();
+  TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,
+                                          TC_API_COMMON_SUCCESS);
+
+  PhysicalLayerStub::loadphysicallayer();
+}
+
+/*
+ * Clean up test environment.
+ */
+void
+UpplTestEnv::TearDown()
+{
+  ServerSession::clearStubData();
+  ODBCManager::clearStubData();
+  PhysicalLayerStub::unloadphysicallayer();
+  TcLibModule::stub_unloadtcLibModule();
+}