diff options
Diffstat (limited to 'parallel-libs/streamexecutor/lib')
| -rw-r--r-- | parallel-libs/streamexecutor/lib/Kernel.cpp | 24 | ||||
| -rw-r--r-- | parallel-libs/streamexecutor/lib/unittests/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | parallel-libs/streamexecutor/lib/unittests/KernelTest.cpp | 93 |
3 files changed, 3 insertions, 124 deletions
diff --git a/parallel-libs/streamexecutor/lib/Kernel.cpp b/parallel-libs/streamexecutor/lib/Kernel.cpp index fa0992003a6..1f4218c4df3 100644 --- a/parallel-libs/streamexecutor/lib/Kernel.cpp +++ b/parallel-libs/streamexecutor/lib/Kernel.cpp @@ -20,26 +20,8 @@ namespace streamexecutor { -KernelBase::KernelBase(Device *Dev, const std::string &Name, - const std::string &DemangledName, - std::unique_ptr<KernelInterface> Implementation) - : TheDevice(Dev), Name(Name), DemangledName(DemangledName), - Implementation(std::move(Implementation)) {} - -KernelBase::~KernelBase() = default; - -Expected<KernelBase> KernelBase::create(Device *Dev, - const MultiKernelLoaderSpec &Spec) { - auto MaybeImplementation = Dev->getKernelImplementation(Spec); - if (!MaybeImplementation) { - return MaybeImplementation.takeError(); - } - std::string Name = Spec.getKernelName(); - std::string DemangledName = - llvm::symbolize::LLVMSymbolizer::DemangleName(Name, nullptr); - KernelBase Instance(Dev, Name, DemangledName, - std::move(*MaybeImplementation)); - return std::move(Instance); -} +KernelBase::KernelBase(llvm::StringRef Name) + : Name(Name), DemangledName(llvm::symbolize::LLVMSymbolizer::DemangleName( + Name, nullptr)) {} } // namespace streamexecutor diff --git a/parallel-libs/streamexecutor/lib/unittests/CMakeLists.txt b/parallel-libs/streamexecutor/lib/unittests/CMakeLists.txt index 3b414e342d9..e12b675f2c4 100644 --- a/parallel-libs/streamexecutor/lib/unittests/CMakeLists.txt +++ b/parallel-libs/streamexecutor/lib/unittests/CMakeLists.txt @@ -9,16 +9,6 @@ target_link_libraries( add_test(DeviceTest device_test) add_executable( - kernel_test - KernelTest.cpp) -target_link_libraries( - kernel_test - streamexecutor - ${GTEST_BOTH_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT}) -add_test(KernelTest kernel_test) - -add_executable( kernel_spec_test KernelSpecTest.cpp) target_link_libraries( diff --git a/parallel-libs/streamexecutor/lib/unittests/KernelTest.cpp b/parallel-libs/streamexecutor/lib/unittests/KernelTest.cpp deleted file mode 100644 index a19ebfb96bd..00000000000 --- a/parallel-libs/streamexecutor/lib/unittests/KernelTest.cpp +++ /dev/null @@ -1,93 +0,0 @@ -//===-- KernelTest.cpp - Tests for Kernel objects -------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// This file contains the unit tests for the code in Kernel. -/// -//===----------------------------------------------------------------------===// - -#include <cassert> - -#include "streamexecutor/Device.h" -#include "streamexecutor/Kernel.h" -#include "streamexecutor/KernelSpec.h" -#include "streamexecutor/PlatformInterfaces.h" - -#include "llvm/ADT/STLExtras.h" - -#include "gtest/gtest.h" - -namespace { - -namespace se = ::streamexecutor; - -// A Device that returns a dummy KernelInterface. -// -// During construction it creates a unique_ptr to a dummy KernelInterface and it -// also stores a separate copy of the raw pointer that is stored by that -// unique_ptr. -// -// The expectation is that the code being tested will call the -// getKernelImplementation method and will thereby take ownership of the -// unique_ptr, but the copy of the raw pointer will stay behind in this mock -// object. The raw pointer copy can then be used to identify the unique_ptr in -// its new location (by comparing the raw pointer with unique_ptr::get), to -// verify that the unique_ptr ended up where it was supposed to be. -class MockDevice : public se::Device { -public: - MockDevice() - : se::Device(nullptr), Unique(llvm::make_unique<se::KernelInterface>()), - Raw(Unique.get()) {} - - // Moves the unique pointer into the returned se::Expected instance. - // - // Asserts that it is not called again after the unique pointer has been moved - // out. - se::Expected<std::unique_ptr<se::KernelInterface>> - getKernelImplementation(const se::MultiKernelLoaderSpec &) override { - assert(Unique && "MockDevice getKernelImplementation should not be " - "called more than once"); - return std::move(Unique); - } - - // Gets the copy of the raw pointer from the original unique pointer. - const se::KernelInterface *getRaw() const { return Raw; } - -private: - std::unique_ptr<se::KernelInterface> Unique; - const se::KernelInterface *Raw; -}; - -// Test fixture class for typed tests for KernelBase.getImplementation. -// -// The only purpose of this class is to provide a name that types can be bound -// to in the gtest infrastructure. -template <typename T> class GetImplementationTest : public ::testing::Test {}; - -// Types used with the GetImplementationTest fixture class. -typedef ::testing::Types<se::KernelBase, se::TypedKernel<>, - se::TypedKernel<int>> - GetImplementationTypes; - -TYPED_TEST_CASE(GetImplementationTest, GetImplementationTypes); - -// Tests that the kernel create functions properly fetch the implementation -// pointers for the kernel objects they construct from the passed-in -// Device objects. -TYPED_TEST(GetImplementationTest, SetImplementationDuringCreate) { - se::MultiKernelLoaderSpec Spec; - MockDevice Dev; - - auto MaybeKernel = TypeParam::create(&Dev, Spec); - EXPECT_TRUE(static_cast<bool>(MaybeKernel)); - se::KernelInterface *Implementation = MaybeKernel->getImplementation(); - EXPECT_EQ(Dev.getRaw(), Implementation); -} - -} // namespace |

