From 7e7b65da1b0fbb6da20ac1e37a66bd9c8ed4c0e0 Mon Sep 17 00:00:00 2001 From: Scott Graham Date: Thu, 15 Jan 2015 10:00:09 -0800 Subject: [PATCH] win: Add implementation of ExecutablePath R=mark@chromium.org BUG=crashpad:1 Review URL: https://codereview.chromium.org/852773004 --- util/test/executable_path_test.cc | 7 ++++++- util/test/executable_path_win.cc | 29 +++++++++++++++++++++++++++++ util/util.gyp | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 util/test/executable_path_win.cc diff --git a/util/test/executable_path_test.cc b/util/test/executable_path_test.cc index 4c282fac..54374e34 100644 --- a/util/test/executable_path_test.cc +++ b/util/test/executable_path_test.cc @@ -15,6 +15,7 @@ #include "util/test/executable_path.h" #include "base/files/file_path.h" +#include "build/build_config.h" #include "gtest/gtest.h" namespace crashpad { @@ -24,7 +25,11 @@ namespace { TEST(ExecutablePath, ExecutablePath) { base::FilePath executable_path = ExecutablePath(); base::FilePath executable_name = executable_path.BaseName(); - EXPECT_EQ(FILE_PATH_LITERAL("util_test"), executable_name.value()); +#if defined(OS_WIN) + EXPECT_EQ(FILE_PATH_LITERAL("util_test.exe"), executable_name.value()); +#else + EXPECT_EQ("util_test", executable_name.value()); +#endif // OS_WIN } } // namespace diff --git a/util/test/executable_path_win.cc b/util/test/executable_path_win.cc new file mode 100644 index 00000000..024478d7 --- /dev/null +++ b/util/test/executable_path_win.cc @@ -0,0 +1,29 @@ +// Copyright 2015 The Crashpad Authors. All rights reserved. +// +// 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 "util/test/executable_path.h" + +#include + +namespace crashpad { +namespace test { + +base::FilePath ExecutablePath() { + wchar_t executable_path[_MAX_PATH]; + GetModuleFileName(nullptr, executable_path, sizeof(executable_path)); + return base::FilePath(executable_path); +} + +} // namespace test +} // namespace crashpad diff --git a/util/util.gyp b/util/util.gyp index eb4ff15f..5a54a683 100644 --- a/util/util.gyp +++ b/util/util.gyp @@ -205,6 +205,7 @@ 'test/errors.h', 'test/executable_path.h', 'test/executable_path_mac.cc', + 'test/executable_path_win.cc', 'test/mac/dyld.h', 'test/mac/mach_errors.cc', 'test/mac/mach_errors.h',