Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: base/scoped_native_library_unittest.cc

Issue 2048523002: Fix base::GetNativeLibraryName() for Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@native_lib_clean
Patch Set: Address comments, merge variables. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/scoped_native_library.h" 5 #include "base/scoped_native_library.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 #if defined(OS_WIN) 10 #if defined(OS_WIN)
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/strings/utf_string_conversions.h"
12 #endif 13 #endif
13 14
14 namespace base { 15 namespace base {
15 16
16 // Tests whether or not a function pointer retrieved via ScopedNativeLibrary 17 // Tests whether or not a function pointer retrieved via ScopedNativeLibrary
17 // is available only in a scope. 18 // is available only in a scope.
18 TEST(ScopedNativeLibrary, Basic) { 19 TEST(ScopedNativeLibrary, Basic) {
19 #if defined(OS_WIN) 20 #if defined(OS_WIN)
20 // Get the pointer to DirectDrawCreate() from "ddraw.dll" and verify it 21 // Get the pointer to DirectDrawCreate() from "ddraw.dll" and verify it
21 // is valid only in this scope. 22 // is valid only in this scope.
22 // FreeLibrary() doesn't actually unload a DLL until its reference count 23 // FreeLibrary() doesn't actually unload a DLL until its reference count
23 // becomes zero, i.e. function pointer is still valid if the DLL used 24 // becomes zero, i.e. function pointer is still valid if the DLL used
24 // in this test is also used by another part of this executable. 25 // in this test is also used by another part of this executable.
25 // So, this test uses "ddraw.dll", which is not used by Chrome at all but 26 // So, this test uses "ddraw.dll", which is not used by Chrome at all but
26 // installed on all versions of Windows. 27 // installed on all versions of Windows.
27 const char kFunctionName[] = "DirectDrawCreate"; 28 const char kFunctionName[] = "DirectDrawCreate";
28 NativeLibrary native_library; 29 NativeLibrary native_library;
29 { 30 {
30 FilePath path(GetNativeLibraryName(L"ddraw")); 31 FilePath path(base::ASCIIToUTF16(GetNativeLibraryName("ddraw")));
Mark Mentovai 2016/06/13 19:29:03 FilePath::FromUTF16Unsafe()?
Lei Zhang 2016/06/13 21:30:34 I might as well skip the ASCIIToUTF16() bit and us
31 native_library = LoadNativeLibrary(path, NULL); 32 native_library = LoadNativeLibrary(path, NULL);
32 ScopedNativeLibrary library(native_library); 33 ScopedNativeLibrary library(native_library);
33 EXPECT_TRUE(library.is_valid()); 34 EXPECT_TRUE(library.is_valid());
34 EXPECT_EQ(native_library, library.get()); 35 EXPECT_EQ(native_library, library.get());
35 FARPROC test_function = 36 FARPROC test_function =
36 reinterpret_cast<FARPROC>(library.GetFunctionPointer(kFunctionName)); 37 reinterpret_cast<FARPROC>(library.GetFunctionPointer(kFunctionName));
37 EXPECT_EQ(0, IsBadCodePtr(test_function)); 38 EXPECT_EQ(0, IsBadCodePtr(test_function));
38 EXPECT_EQ( 39 EXPECT_EQ(
39 GetFunctionPointerFromNativeLibrary(native_library, kFunctionName), 40 GetFunctionPointerFromNativeLibrary(native_library, kFunctionName),
40 test_function); 41 test_function);
41 } 42 }
42 EXPECT_EQ(NULL, 43 EXPECT_EQ(NULL,
43 GetFunctionPointerFromNativeLibrary(native_library, kFunctionName)); 44 GetFunctionPointerFromNativeLibrary(native_library, kFunctionName));
44 #endif 45 #endif
45 } 46 }
46 47
47 } // namespace base 48 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698