[Unittest] add hwmem test
authorYelin Jeong <yelini.jeong@samsung.com>
Thu, 14 Jul 2022 08:10:05 +0000 (17:10 +0900)
committer추지호/NPU Lab(SR)/삼성전자 <jiho.chu@samsung.com>
Wed, 20 Jul 2022 04:22:45 +0000 (13:22 +0900)
This patch adds unittests with larger hwmem test and have integer value.

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

index 62a97bd2564ccc4067b2c0f4d54dc61c06dffb0c..73694b6946c08dc293a6e2ebd12d6d713a175f8d 100644 (file)
@@ -334,6 +334,71 @@ TEST (ne_core_hwmem_test, hwmem_external) {
   delete external;
 }
 
+/**
+ * @brief check impl methods, HWmemExternal with large size value
+ */
+TEST (ne_core_hwmem_test, hwmem_external_large_size) {
+  INIT_TEST_DRIVER_API ();
+
+  size_t size = 0x10000;
+  HWmem *hwmem;
+
+  hwmem = new HWmem (new HWmemDevice);
+  hwmem->setDriverAPI (api.get ());
+  ASSERT_EQ (hwmem->alloc (size), 0);
+
+  char *buf = hwmem->getData ();
+  for (size_t i = 0; i < size; i++) buf[i] = i % INT8_MAX;
+
+  HWmem *external;
+
+  external = new HWmem (new HWmemExternal);
+  external->setDriverAPI (api.get ());
+  external->setSize (hwmem->getSize ());
+  external->setDmabuf (hwmem->getDmabuf ());
+
+  buf = external->getData ();
+  EXPECT_NE (external->getData (), nullptr);
+  for (size_t i = 0; i < size; i++) EXPECT_EQ (buf[i], (char) (i % INT8_MAX));
+
+  delete hwmem;
+  delete external;
+}
+
+/**
+ * @brief check impl methods, HWmemExternal with int value
+ */
+TEST (ne_core_hwmem_test, hwmem_external_int_val) {
+  INIT_TEST_DRIVER_API ();
+
+  size_t size = 0x10000;
+  HWmem *hwmem;
+
+  hwmem = new HWmem (new HWmemDevice);
+  hwmem->setDriverAPI (api.get ());
+  ASSERT_EQ (hwmem->alloc (size), 0);
+
+  char *buf_ = hwmem->getData ();
+  int *buf = reinterpret_cast<int *> (buf_);
+  for (size_t i = 0; i < size / sizeof (int); i++) buf[i] = UINT32_MAX - (i % UINT32_MAX);
+
+  HWmem *external;
+
+  external = new HWmem (new HWmemExternal);
+  external->setDriverAPI (api.get ());
+  external->setSize (hwmem->getSize ());
+  external->setDmabuf (hwmem->getDmabuf ());
+
+  buf_ = external->getData ();
+  buf = reinterpret_cast<int *> (buf_);
+  EXPECT_NE (external->getData (), nullptr);
+  for (size_t i = 0; i < size / sizeof (int); i++)
+    EXPECT_EQ (buf[i], (int) (UINT32_MAX - (i % UINT32_MAX)));
+
+  delete hwmem;
+  delete external;
+}
+
 /**
  * @brief check impl methods, HWmemExternal, with error handling
  */