aboutsummaryrefslogtreecommitdiffstats
path: root/emulator/opengl/shared/emugl/common/shared_library_unittest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'emulator/opengl/shared/emugl/common/shared_library_unittest.cpp')
-rw-r--r--emulator/opengl/shared/emugl/common/shared_library_unittest.cpp164
1 files changed, 0 insertions, 164 deletions
diff --git a/emulator/opengl/shared/emugl/common/shared_library_unittest.cpp b/emulator/opengl/shared/emugl/common/shared_library_unittest.cpp
deleted file mode 100644
index cb74efa..0000000
--- a/emulator/opengl/shared/emugl/common/shared_library_unittest.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (C) 2014 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "emugl/common/shared_library.h"
-
-#include <gtest/gtest.h>
-
-#include <string>
-
-#include <limits.h>
-#include <string.h>
-
-// Hack to get the current executable's full path.
-namespace testing {
-namespace internal {
-
-extern std::string g_executable_path;
-
-} // namespace internal
-} // namespace testing
-
-namespace emugl {
-
-namespace {
-
-// Return the name/path of the test shared library to load.
-// Note that this doesn't include a platform-specific extension.
-// This assumes that the test shared library is under the lib/ sub-directory
-// of the current executable's path!
-std::string GetTestLibraryName() {
- static const char kSubDir[] = "lib/";
-#ifdef __x86_64__
- static const char kLibraryPrefix[] = "lib64";
-#else
- static const char kLibraryPrefix[] = "lib";
-#endif
- static const char kTestLibrarySuffix[] = "emugl_test_shared_library";
-
- const char* exec_path = testing::internal::g_executable_path.c_str();
-
-#ifdef _WIN32
- const char* p = strrchr(exec_path, '/');
- const char* p2 = strrchr(exec_path, '\\');
- if (p2) {
- if (!p || p2 > p) {
- p = p2;
- }
- }
-#else
- const char* p = strrchr(exec_path, '/');
-#endif
-
- std::string path;
-
- if (!p) {
- path = "./";
- } else {
- path = std::string(exec_path, p - exec_path + 1U);
- }
- path += kSubDir;
- path += kLibraryPrefix;
- path += kTestLibrarySuffix;
- printf("Library path: %s\n", path.c_str());
- return path;
-}
-
-class SharedLibraryTest : public testing::Test {
-public:
- SharedLibraryTest() {
- // Locate the shared library
- mLibraryPath = GetTestLibraryName();
- }
-
- ~SharedLibraryTest() {}
-
- const char* library_path() const { return mLibraryPath.c_str(); }
-
-private:
- std::string mLibraryPath;
-};
-
-class ScopedSharedLibrary {
-public:
- explicit ScopedSharedLibrary(SharedLibrary* lib) : mLib(lib) {}
- ~ScopedSharedLibrary() {
- delete mLib;
- }
- SharedLibrary* get() const { return mLib; }
-
- SharedLibrary* operator->() { return mLib; }
-
- void release() {
- delete mLib;
- mLib = NULL;
- }
-
-private:
- SharedLibrary* mLib;
-};
-
-} // namespace
-
-TEST_F(SharedLibraryTest, Open) {
- ScopedSharedLibrary lib(SharedLibrary::open(library_path()));
- EXPECT_TRUE(lib.get());
-}
-
-TEST_F(SharedLibraryTest, OpenLibraryWithExtension) {
- std::string path = library_path();
-
- // test extension append
- ScopedSharedLibrary libNoExtension(SharedLibrary::open(path.c_str()));
- EXPECT_TRUE(libNoExtension.get());
- libNoExtension.release();
-
-#ifdef _WIN32
- path += ".dll";
-#elif defined(__APPLE__)
- // try to open the library without an extension
-
- path += ".dylib";
-#else
- path += ".so";
-#endif
-
- // test open with prepended extension
- ScopedSharedLibrary lib(SharedLibrary::open(path.c_str()));
- EXPECT_TRUE(lib.get());
-}
-
-#ifdef __APPLE__
-TEST_F(SharedLibraryTest, OpenLibraryWithoutExtension) {
- const char* library = "/System/Library/Frameworks/OpenGL.framework/OpenGL";
- ScopedSharedLibrary lib(SharedLibrary::open(library));
- EXPECT_TRUE(lib.get());
-}
-#endif
-
-TEST_F(SharedLibraryTest, FindSymbol) {
- ScopedSharedLibrary lib(SharedLibrary::open(library_path()));
- EXPECT_TRUE(lib.get());
-
- if (lib.get()) {
- typedef int (*FooFunction)(void);
-
- FooFunction foo_func = reinterpret_cast<FooFunction>(
- lib->findSymbol("foo_function"));
- EXPECT_TRUE(foo_func);
- EXPECT_EQ(42, (*foo_func)());
- }
-}
-
-} // namespace emugl