[Bug/Test] Bug fix in ne-handler unittest when obtaining data pointers
authorDongju Chae <dongju.chae@samsung.com>
Tue, 3 Sep 2019 12:11:36 +0000 (21:11 +0900)
committer함명주/On-Device Lab(SR)/Principal Engineer/삼성전자 <myungjoo.ham@samsung.com>
Wed, 4 Sep 2019 10:03:16 +0000 (19:03 +0900)
This commit fixes bugs in ne-handler unittest, which obtained data pointers without activating their hwmems.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
src/core/ne-mem.h
src/test/unittests/ne_core_handler_test.cpp

index dc90d9a..c602564 100644 (file)
@@ -61,6 +61,7 @@ int hwmem_get_offset (const hwmem *hwmem, uint64_t *offset);
  * @param[in] hwmem the hwmem instance
  * @param[out] ptr the data pointer
  * @return 0 if no error, otherwise a negative error value
+ * @note this can be called only if the hwmem is activated
  */
 int hwmem_get_data (const hwmem *hwmem, void **ptr);
 
index 7b32e24..ef6c901 100644 (file)
@@ -51,10 +51,13 @@ static int generate_model (hwmem *mem, int model_num)
   meta.program_size = OFFSET_SIZE;
   meta.weight_size = OFFSET_SIZE;
 
+  EXPECT_EQ (hwmem_activate(mem), 0);
   EXPECT_EQ (hwmem_get_data(mem, &ptr), 0);
 
   memcpy (ptr, &meta, NPUBIN_META_SIZE);
 
+  EXPECT_EQ (hwmem_deactivate(mem), 0);
+
   return 0;
 }
 
@@ -150,14 +153,18 @@ TEST (ne_core_handler_test, start_stop_operation)
 
   ASSERT_EQ (GET_MEM()->alloc (NPUBIN_META_SIZE, &mem[0]), 0);
   ASSERT_EQ (generate_model (mem[0], 0), 0);
-  EXPECT_EQ (hwmem_get_data(mem[0], &ptr[0]), 0);
+
   ASSERT_EQ (GET_MEM()->alloc (NPUBIN_META_SIZE, &mem[1]), 0);
   ASSERT_EQ (generate_model (mem[1], 1), 0);
-  EXPECT_EQ (hwmem_get_data(mem[1], &ptr[1]), 0);
 
+  /** registerModel() activates its hwmem */
   EXPECT_EQ (host_handle->registerModel(mem[0], &id[0], &version[0]), 0);
   EXPECT_EQ (host_handle->registerModel(mem[1], &id[1], &version[1]), 0);
 
+  /** ptr[] is now valid */
+  EXPECT_EQ (hwmem_get_data(mem[0], &ptr[0]), 0);
+  EXPECT_EQ (hwmem_get_data(mem[1], &ptr[1]), 0);
+
   /** stop not started/configured models */
   EXPECT_LE (host_handle->setOpMode(NPUINPUT_STOP, true, id[0], version[0],
         test_cb, ptr[0]), 0);
@@ -196,6 +203,7 @@ TEST (ne_core_handler_test, start_stop_operation)
   state = buffer_get_state (buffer_ptr);
   EXPECT_EQ (state, BUFFER_STATE_EMPTY);
 
+  /** unregisterModel() deactivates its hwmem */
   EXPECT_EQ (host_handle->unregisterModel(id[0], version[0]), 0);
   EXPECT_EQ (host_handle->unregisterModel(id[1], version[1]), 0);
 
@@ -218,4 +226,3 @@ main (int argc, char **argv)
 
   return ret;
 }
-