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

Unified Diff: base/win/pe_image_unittest.cc

Issue 1446363003: Deleted OS_WIN and all Windows specific files from base. (Closed) Base URL: https://github.com/domokit/mojo.git@base_tests
Patch Set: Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/win/pe_image_test.cc ('k') | base/win/registry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/win/pe_image_unittest.cc
diff --git a/base/win/pe_image_unittest.cc b/base/win/pe_image_unittest.cc
deleted file mode 100644
index 28b65a4e0ba6102ff10161af4edcf8d7f7d6eb27..0000000000000000000000000000000000000000
--- a/base/win/pe_image_unittest.cc
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright (c) 2012 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.
-
-// This file contains unit tests for PEImage.
-#include <algorithm>
-#include <vector>
-
-#include "base/files/file_path.h"
-#include "base/path_service.h"
-#include "base/win/pe_image.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace base {
-namespace win {
-
-namespace {
-
-// Just counts the number of invocations.
-bool ImportsCallback(const PEImage& image,
- LPCSTR module,
- DWORD ordinal,
- LPCSTR name,
- DWORD hint,
- PIMAGE_THUNK_DATA iat,
- PVOID cookie) {
- int* count = reinterpret_cast<int*>(cookie);
- (*count)++;
- return true;
-}
-
-// Just counts the number of invocations.
-bool SectionsCallback(const PEImage& image,
- PIMAGE_SECTION_HEADER header,
- PVOID section_start,
- DWORD section_size,
- PVOID cookie) {
- int* count = reinterpret_cast<int*>(cookie);
- (*count)++;
- return true;
-}
-
-// Just counts the number of invocations.
-bool RelocsCallback(const PEImage& image,
- WORD type,
- PVOID address,
- PVOID cookie) {
- int* count = reinterpret_cast<int*>(cookie);
- (*count)++;
- return true;
-}
-
-// Just counts the number of invocations.
-bool ImportChunksCallback(const PEImage& image,
- LPCSTR module,
- PIMAGE_THUNK_DATA name_table,
- PIMAGE_THUNK_DATA iat,
- PVOID cookie) {
- int* count = reinterpret_cast<int*>(cookie);
- (*count)++;
- return true;
-}
-
-// Just counts the number of invocations.
-bool DelayImportChunksCallback(const PEImage& image,
- PImgDelayDescr delay_descriptor,
- LPCSTR module,
- PIMAGE_THUNK_DATA name_table,
- PIMAGE_THUNK_DATA iat,
- PIMAGE_THUNK_DATA bound_iat,
- PIMAGE_THUNK_DATA unload_iat,
- PVOID cookie) {
- int* count = reinterpret_cast<int*>(cookie);
- (*count)++;
- return true;
-}
-
-// Just counts the number of invocations.
-bool ExportsCallback(const PEImage& image,
- DWORD ordinal,
- DWORD hint,
- LPCSTR name,
- PVOID function,
- LPCSTR forward,
- PVOID cookie) {
- int* count = reinterpret_cast<int*>(cookie);
- (*count)++;
- return true;
-}
-
-} // namespace
-
-// Tests that we are able to enumerate stuff from a PE file, and that
-// the actual number of items found matches an expected value.
-TEST(PEImageTest, EnumeratesPE) {
- base::FilePath pe_image_test_path;
- ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &pe_image_test_path));
- pe_image_test_path = pe_image_test_path.Append(FILE_PATH_LITERAL("pe_image"));
-
-#if defined(ARCH_CPU_64_BITS)
- pe_image_test_path =
- pe_image_test_path.Append(FILE_PATH_LITERAL("pe_image_test_64.dll"));
- const int sections = 6;
- const int imports_dlls = 2;
- const int delay_dlls = 2;
- const int exports = 2;
- const int imports = 69;
- const int delay_imports = 2;
- const int relocs = 632;
-#else
- pe_image_test_path =
- pe_image_test_path.Append(FILE_PATH_LITERAL("pe_image_test_32.dll"));
- const int sections = 5;
- const int imports_dlls = 2;
- const int delay_dlls = 2;
- const int exports = 2;
- const int imports = 66;
- const int delay_imports = 2;
- const int relocs = 1586;
-#endif
-
- HMODULE module = LoadLibrary(pe_image_test_path.value().c_str());
- ASSERT_TRUE(NULL != module);
-
- PEImage pe(module);
- int count = 0;
- EXPECT_TRUE(pe.VerifyMagic());
-
- pe.EnumSections(SectionsCallback, &count);
- EXPECT_EQ(sections, count);
-
- count = 0;
- pe.EnumImportChunks(ImportChunksCallback, &count);
- EXPECT_EQ(imports_dlls, count);
-
- count = 0;
- pe.EnumDelayImportChunks(DelayImportChunksCallback, &count);
- EXPECT_EQ(delay_dlls, count);
-
- count = 0;
- pe.EnumExports(ExportsCallback, &count);
- EXPECT_EQ(exports, count);
-
- count = 0;
- pe.EnumAllImports(ImportsCallback, &count);
- EXPECT_EQ(imports, count);
-
- count = 0;
- pe.EnumAllDelayImports(ImportsCallback, &count);
- EXPECT_EQ(delay_imports, count);
-
- count = 0;
- pe.EnumRelocs(RelocsCallback, &count);
- EXPECT_EQ(relocs, count);
-
- FreeLibrary(module);
-}
-
-// Tests that we can locate an specific exported symbol, by name and by ordinal.
-TEST(PEImageTest, RetrievesExports) {
- HMODULE module = LoadLibrary(L"advapi32.dll");
- ASSERT_TRUE(NULL != module);
-
- PEImage pe(module);
- WORD ordinal;
-
- EXPECT_TRUE(pe.GetProcOrdinal("RegEnumKeyExW", &ordinal));
-
- FARPROC address1 = pe.GetProcAddress("RegEnumKeyExW");
- FARPROC address2 = pe.GetProcAddress(reinterpret_cast<char*>(ordinal));
- EXPECT_TRUE(address1 != NULL);
- EXPECT_TRUE(address2 != NULL);
- EXPECT_TRUE(address1 == address2);
-
- FreeLibrary(module);
-}
-
-// Test that we can get debug id out of a module.
-TEST(PEImageTest, GetDebugId) {
- HMODULE module = LoadLibrary(L"advapi32.dll");
- ASSERT_TRUE(NULL != module);
-
- PEImage pe(module);
- GUID guid = {0};
- DWORD age = 0;
- EXPECT_TRUE(pe.GetDebugId(&guid, &age));
-
- GUID empty_guid = {0};
- EXPECT_TRUE(!IsEqualGUID(empty_guid, guid));
- EXPECT_NE(0U, age);
- FreeLibrary(module);
-}
-
-} // namespace win
-} // namespace base
« no previous file with comments | « base/win/pe_image_test.cc ('k') | base/win/registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698