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
*/