summaryrefslogtreecommitdiffstats
path: root/parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp
diff options
context:
space:
mode:
authorJason Henline <jhen@google.com>2016-08-24 19:42:03 +0000
committerJason Henline <jhen@google.com>2016-08-24 19:42:03 +0000
commit3053bbf3b27151b88f7ca87fb61d0610cdc9e4a8 (patch)
tree52f8099d0b1f1f39b939aa8ef5f0dc4985eb201f /parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp
parent4a080de057ae920ee1745c60495bfa60eaedfb73 (diff)
downloadbcm5719-llvm-3053bbf3b27151b88f7ca87fb61d0610cdc9e4a8.tar.gz
bcm5719-llvm-3053bbf3b27151b88f7ca87fb61d0610cdc9e4a8.zip
[StreamExecutor] Fix allocateDeviceMemory
Summary: The return value from PlatformExecutor::allocateDeviceMemory needs to be converted from Expected<GlobalDeviceMemoryBase> to Expected<GlobalDeviceMemory<T>> in Executor::allocateDeviceMemory. A similar bug is also fixed for Executor::allocateHostMemory. Thanks to jprice for identifying this bug. Reviewers: jprice, jlebar Subscribers: parallel_libs-commits Differential Revision: https://reviews.llvm.org/D23849 llvm-svn: 279658
Diffstat (limited to 'parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp')
-rw-r--r--parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp b/parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp
index d2d03fb6c88..b6719d303ec 100644
--- a/parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp
+++ b/parallel-libs/streamexecutor/lib/unittests/ExecutorTest.cpp
@@ -54,6 +54,14 @@ public:
return se::Error::success();
}
+ se::Error registerHostMemory(void *, size_t) override {
+ return se::Error::success();
+ }
+
+ se::Error unregisterHostMemory(void *) override {
+ return se::Error::success();
+ }
+
se::Error synchronousCopyD2H(const se::GlobalDeviceMemoryBase &DeviceSrc,
size_t SrcByteOffset, void *HostDst,
size_t DstByteOffset,
@@ -131,6 +139,25 @@ public:
using llvm::ArrayRef;
using llvm::MutableArrayRef;
+TEST_F(ExecutorTest, AllocateAndFreeDeviceMemory) {
+ se::Expected<se::GlobalDeviceMemory<int>> MaybeMemory =
+ Executor.allocateDeviceMemory<int>(10);
+ EXPECT_TRUE(static_cast<bool>(MaybeMemory));
+ EXPECT_NO_ERROR(Executor.freeDeviceMemory(*MaybeMemory));
+}
+
+TEST_F(ExecutorTest, AllocateAndFreeHostMemory) {
+ se::Expected<int *> MaybeMemory = Executor.allocateHostMemory<int>(10);
+ EXPECT_TRUE(static_cast<bool>(MaybeMemory));
+ EXPECT_NO_ERROR(Executor.freeHostMemory(*MaybeMemory));
+}
+
+TEST_F(ExecutorTest, RegisterAndUnregisterHostMemory) {
+ std::vector<int> Data(10);
+ EXPECT_NO_ERROR(Executor.registerHostMemory(Data.data(), 10));
+ EXPECT_NO_ERROR(Executor.unregisterHostMemory(Data.data()));
+}
+
// D2H tests
TEST_F(ExecutorTest, SyncCopyD2HToMutableArrayRefByCount) {
OpenPOWER on IntegriCloud