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