| Index: base/scoped_native_library_unittest.cc
|
| ===================================================================
|
| --- base/scoped_native_library_unittest.cc (revision 0)
|
| +++ base/scoped_native_library_unittest.cc (revision 0)
|
| @@ -0,0 +1,30 @@
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "base/scoped_native_library.h"
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +// Tests whether or not a function pointer retrieved via ScopedNativeLibrary
|
| +// is available only in a scope.
|
| +TEST(ScopedNativeLibrary, Basic) {
|
| +#if defined(OS_WIN)
|
| + // Get the pointer to DirectDrawCreate() from "ddraw.dll" and verify it
|
| + // is valid only in this scope.
|
| + // FreeLibrary() doesn't actually unload a DLL until its reference count
|
| + // becomes zero, i.e. this function pointer is still valid if the DLL used
|
| + // in this test is also used by another part of this executable.
|
| + // So, this test uses "ddraw.dll", which is not used by Chrome at all but
|
| + // installed on all versions of Windows.
|
| + FARPROC test_function;
|
| + {
|
| + FilePath path(base::GetNativeLibraryName(L"ddraw"));
|
| + base::ScopedNativeLibrary library(path);
|
| + test_function = reinterpret_cast<FARPROC>(
|
| + library.GetFunctionPointer("DirectDrawCreate"));
|
| + EXPECT_EQ(0, IsBadCodePtr(test_function));
|
| + }
|
| + EXPECT_NE(0, IsBadCodePtr(test_function));
|
| +#endif
|
| +}
|
|
|
| Property changes on: base\scoped_native_library_unittest.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|