[Coverage] Increase code Coverage
authoryelini-jeong <yelini.jeong@samsung.com>
Mon, 15 Nov 2021 08:39:22 +0000 (17:39 +0900)
committer채동주/On-Device Lab(SR)/Staff Engineer/삼성전자 <dongju.chae@samsung.com>
Tue, 16 Nov 2021 02:59:27 +0000 (11:59 +0900)
This patch increases coverage of npu memory blocks.

Signed-off-by: yelini-jeong <yelini.jeong@samsung.com>
tests/unittests/ne_core_mem_test.cc

index 83e44b043769e8df66a754d90cb09cdc6450fa70..8776a04a5ae26fe77d5f8516d693079f45f55dba 100644 (file)
@@ -88,6 +88,58 @@ TEST (ne_core_mem_test, create_instance_no_api_n) {
   EXPECT_EQ (mem.get (), nullptr);
 }
 
+/**
+ * @brief test 0 size error handling
+ */
+TEST (ne_core_mem_test, memory_invalid_args_n) {
+  std::unique_ptr<DriverAPI> api = DriverAPI::createDriverAPI (NPUCOND_TRIV2_CONN_SOCIP, 0);
+  ASSERT_NE (api.get (), nullptr);
+
+  /**
+   * 'resv_mem_size' decides which memory allocator will be used.
+   * 'resv_mem_size' = 0: MemDefault.
+   */
+  ASSERT_EQ (setenv ("NE_RESV_MEM_SIZE", "0", 1), 0);
+  ASSERT_EQ (Conf::getInstance ().getResvMemSize (), (size_t) 0);
+
+  std::unique_ptr<MemAllocator> mem = MemAllocator::createInstance (api.get ());
+  EXPECT_NE (mem.get (), nullptr);
+
+  void *addr;
+
+  /** invalid arguments */
+  EXPECT_EQ (mem->allocMemory (0, &addr), -EINVAL);
+
+  int dmabuf = mem->allocMemory (4 * K, &addr);
+  EXPECT_GE (dmabuf, 0);
+
+  /** invalid arguments */
+  EXPECT_NE (mem->deallocMemory (dmabuf, 0, addr), 0);
+}
+
+/**
+ * @brief test nullptr error handling
+ */
+TEST (ne_core_mem_test, alloc_no_impl_n) {
+  std::unique_ptr<DriverAPI> api = DriverAPI::createDriverAPI (NPUCOND_TRIV2_CONN_SOCIP, 0);
+  ASSERT_NE (api.get (), nullptr);
+
+  /**
+   * 'resv_mem_size' decides which memory allocator will be used.
+   * 'resv_mem_size' = 0: MemDefault.
+   */
+  ASSERT_EQ (setenv ("NE_RESV_MEM_SIZE", "0", 1), 0);
+  ASSERT_EQ (Conf::getInstance ().getResvMemSize (), (size_t) 0);
+
+  std::unique_ptr<MemAllocator> mem = MemAllocator::createInstance (api.get ());
+  EXPECT_NE (mem.get (), nullptr);
+
+  HWmemImpl *impl = nullptr;
+  EXPECT_EQ (mem->allocModel (impl), nullptr);
+  EXPECT_EQ (mem->allocBuffer (impl), nullptr);
+  EXPECT_EQ (mem->allocSegmentTable (impl), nullptr);
+}
+
 /**
  * @brief main function for unit test
  */