Commit 9190f49c by Jamie Madill Committed by Commit Bot

GN: Make new angle_test_utils target.

This source set target lets other targets import the test utils without needing to export them. They get built into angle_util. They also get compiled into the various tests and samples. The change also fixes export issues. Moves some of the GN logic into the util/ subfolder. Bug: angleproject:3162 Bug: chromium:1030192 Change-Id: If99d201092ad8541c0de60b3bd893ac9b5875270 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1968259Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 390c4952
......@@ -249,25 +249,6 @@ config("angle_common_config") {
}
}
if (is_win && !angle_is_winuwp) {
angle_source_set("angle_stack_walker") {
sources = [
"util/windows/third_party/StackWalker/src/StackWalker.cpp",
"util/windows/third_party/StackWalker/src/StackWalker.h",
]
if (is_clang) {
cflags_cc = [
"-Wno-c++98-compat-extra-semi",
"-Wno-missing-declarations",
"-Wno-switch",
]
} else {
cflags_cc = [ "/wd4740" ]
}
}
}
angle_source_set("angle_system_utils") {
sources = angle_system_utils_sources
}
......@@ -1109,17 +1090,16 @@ foreach(is_shared_library,
deps = [
":angle_common",
":angle_util_loader_headers",
"util:angle_test_utils",
]
public_deps = []
libs = []
if (is_win && !angle_is_winuwp) {
sources += util_win_sources
deps += [ ":angle_stack_walker" ]
}
if (is_linux) {
sources += util_linux_sources
libs += [
"rt",
"dl",
......
......@@ -330,6 +330,7 @@ template("angle_test") {
deps += _googletest_deps + [
"$angle_root:angle_common",
"$angle_root:includes",
"$angle_root/util:angle_test_utils",
]
if (build_with_chromium) {
......
......@@ -16,7 +16,7 @@ config("sample_util_config") {
include_dirs = [ "sample_util" ]
}
angle_static_library("sample_util") {
angle_source_set("sample_util") {
testonly = true
sources = [
"sample_util/SampleApplication.cpp",
......@@ -35,6 +35,7 @@ angle_static_library("sample_util") {
"../:angle_common",
"../:angle_util",
"../:angle_util_loader_headers",
"../util:angle_test_utils",
]
configs += [ "../:library_name_config" ]
public_configs = [
......
......@@ -814,6 +814,7 @@ if (build_angle_deqp_tests && !is_fuchsia) {
deps += [
":angle_deqp_libtester",
"$angle_root:angle_util",
"$angle_root/util:angle_test_utils",
]
suppressed_configs += deqp_undefine_configs
......
# Copyright 2019 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("../gni/angle.gni")
if (is_win && !angle_is_winuwp) {
angle_source_set("angle_stack_walker") {
sources = [
"windows/third_party/StackWalker/src/StackWalker.cpp",
"windows/third_party/StackWalker/src/StackWalker.h",
]
if (is_clang) {
cflags_cc = [
"-Wno-c++98-compat-extra-semi",
"-Wno-missing-declarations",
"-Wno-switch",
]
} else {
cflags_cc = [ "/wd4740" ]
}
}
}
config("angle_test_util_config") {
include_dirs = [ ".." ]
}
angle_source_set("angle_test_utils") {
public_configs = [ ":angle_test_util_config" ]
deps = [
"$angle_root:angle_common",
]
sources = [
"Timer.cpp",
"Timer.h",
"test_utils.cpp",
"test_utils.h",
]
if (is_win) {
sources += [
"windows/test_utils_win.cpp",
"windows/win32/test_utils_win32.cpp",
]
if (!angle_is_winuwp) {
deps += [ ":angle_stack_walker" ]
}
} else {
sources += [
"posix/crash_handler_posix.cpp",
"posix/test_utils_posix.cpp",
]
}
}
......@@ -7,9 +7,7 @@
#ifndef SAMPLE_UTIL_TIMER_H
#define SAMPLE_UTIL_TIMER_H
#include "util/util_export.h"
class ANGLE_UTIL_EXPORT Timer final
class Timer final
{
public:
Timer();
......
......@@ -15,56 +15,51 @@
#include "common/angleutils.h"
#include "util/Timer.h"
#include "util/util_export.h"
namespace angle
{
// Cross platform equivalent of the Windows Sleep function
ANGLE_UTIL_EXPORT void Sleep(unsigned int milliseconds);
void Sleep(unsigned int milliseconds);
ANGLE_UTIL_EXPORT void SetLowPriorityProcess();
void SetLowPriorityProcess();
// Write a debug message, either to a standard output or Debug window.
ANGLE_UTIL_EXPORT void WriteDebugMessage(const char *format, ...);
void WriteDebugMessage(const char *format, ...);
// Set thread affinity and priority.
ANGLE_UTIL_EXPORT bool StabilizeCPUForBenchmarking();
bool StabilizeCPUForBenchmarking();
// Set a crash handler to print stack traces.
using CrashCallback = std::function<void()>;
ANGLE_UTIL_EXPORT void InitCrashHandler(CrashCallback *callback);
ANGLE_UTIL_EXPORT void TerminateCrashHandler();
void InitCrashHandler(CrashCallback *callback);
void TerminateCrashHandler();
// Print a stack back trace.
ANGLE_UTIL_EXPORT void PrintStackBacktrace();
void PrintStackBacktrace();
// Get temporary directory.
ANGLE_UTIL_EXPORT bool GetTempDir(char *tempDirOut, uint32_t maxDirNameLen);
bool GetTempDir(char *tempDirOut, uint32_t maxDirNameLen);
// Creates a temporary file. The full path is placed in |path|, and the
// function returns true if was successful in creating the file. The file will
// be empty and all handles closed after this function returns.
ANGLE_UTIL_EXPORT bool CreateTemporaryFile(char *tempFileNameOut, uint32_t maxFileNameLen);
bool CreateTemporaryFile(char *tempFileNameOut, uint32_t maxFileNameLen);
// Same as CreateTemporaryFile but the file is created in |dir|.
ANGLE_UTIL_EXPORT bool CreateTemporaryFileInDir(const char *dir,
char *tempFileNameOut,
uint32_t maxFileNameLen);
bool CreateTemporaryFileInDir(const char *dir, char *tempFileNameOut, uint32_t maxFileNameLen);
// Deletes a file or directory.
ANGLE_UTIL_EXPORT bool DeleteFile(const char *path);
bool DeleteFile(const char *path);
// Reads a file contents into a string.
ANGLE_UTIL_EXPORT bool ReadEntireFileToString(const char *filePath,
char *contentsOut,
uint32_t maxLen);
bool ReadEntireFileToString(const char *filePath, char *contentsOut, uint32_t maxLen);
// Compute a file's size.
ANGLE_UTIL_EXPORT bool GetFileSize(const char *filePath, uint32_t *sizeOut);
bool GetFileSize(const char *filePath, uint32_t *sizeOut);
class ANGLE_UTIL_EXPORT ProcessHandle;
class ProcessHandle;
class ANGLE_UTIL_EXPORT Process : angle::NonCopyable
class Process : angle::NonCopyable
{
public:
virtual bool started() = 0;
......@@ -78,7 +73,7 @@ class ANGLE_UTIL_EXPORT Process : angle::NonCopyable
const std::string &getStderr() const { return mStderr; }
protected:
friend class ANGLE_UTIL_EXPORT ProcessHandle;
friend class ProcessHandle;
virtual ~Process();
Timer mTimer;
......@@ -86,7 +81,7 @@ class ANGLE_UTIL_EXPORT Process : angle::NonCopyable
std::string mStderr;
};
class ANGLE_UTIL_EXPORT ProcessHandle final : angle::NonCopyable
class ProcessHandle final : angle::NonCopyable
{
public:
ProcessHandle();
......@@ -115,11 +110,11 @@ class ANGLE_UTIL_EXPORT ProcessHandle final : angle::NonCopyable
//
// On success, returns a Process pointer with started() == true.
// On failure, returns a Process pointer with started() == false.
ANGLE_UTIL_EXPORT Process *LaunchProcess(const std::vector<const char *> &args,
bool captureStdout,
bool captureStderr);
Process *LaunchProcess(const std::vector<const char *> &args,
bool captureStdout,
bool captureStderr);
ANGLE_UTIL_EXPORT int NumberOfProcessors();
int NumberOfProcessors();
} // namespace angle
......
......@@ -12,8 +12,6 @@ util_sources = [
"util/random_utils.h",
"util/shader_utils.cpp",
"util/shader_utils.h",
"util/test_utils.cpp",
"util/test_utils.h",
"util/util_export.h",
"util/util_gl.h",
"util/Event.h",
......@@ -25,13 +23,9 @@ util_sources = [
"util/OSPixmap.h",
"util/OSWindow.cpp",
"util/OSWindow.h",
"util/Timer.h",
"util/Timer.cpp",
]
util_win_sources = [
"util/windows/test_utils_win.cpp",
"util/windows/win32/test_utils_win32.cpp",
"util/windows/win32/Win32Pixmap.cpp",
"util/windows/win32/Win32Pixmap.h",
"util/windows/win32/Win32Window.cpp",
......@@ -43,13 +37,6 @@ if (current_os != "winuwp") {
util_win_shared_sources = [ "util/windows/WGLWindow.cpp" ]
}
util_posix_sources = [
"util/posix/crash_handler_posix.cpp",
"util/posix/test_utils_posix.cpp",
]
util_linux_sources = util_posix_sources
util_x11_sources = [
"util/x11/X11Pixmap.cpp",
"util/x11/X11Pixmap.h",
......@@ -57,10 +44,10 @@ util_x11_sources = [
"util/x11/X11Window.h",
]
util_fuchsia_sources = util_posix_sources + [
"util/fuchsia/ScenicWindow.cpp",
"util/fuchsia/ScenicWindow.h",
]
util_fuchsia_sources = [
"util/fuchsia/ScenicWindow.cpp",
"util/fuchsia/ScenicWindow.h",
]
util_ozone_sources = [
"util/ozone/OzonePixmap.cpp",
......@@ -68,17 +55,17 @@ util_ozone_sources = [
"util/ozone/OzoneWindow.h",
]
util_osx_sources = util_posix_sources + [
"util/osx/OSXPixmap.mm",
"util/osx/OSXPixmap.h",
"util/osx/OSXWindow.mm",
"util/osx/OSXWindow.h",
]
util_osx_sources = [
"util/osx/OSXPixmap.mm",
"util/osx/OSXPixmap.h",
"util/osx/OSXWindow.mm",
"util/osx/OSXWindow.h",
]
util_android_sources = util_posix_sources + [
"util/android/AndroidPixmap.cpp",
"util/android/AndroidWindow.cpp",
"util/android/AndroidWindow.h",
"util/android/third_party/android_native_app_glue.c",
"util/android/third_party/android_native_app_glue.h",
]
util_android_sources = [
"util/android/AndroidPixmap.cpp",
"util/android/AndroidWindow.cpp",
"util/android/AndroidWindow.h",
"util/android/third_party/android_native_app_glue.c",
"util/android/third_party/android_native_app_glue.h",
]
......@@ -11,13 +11,11 @@
#include <windows.h>
#include <array>
#include "util/random_utils.h"
namespace angle
{
void SetLowPriorityProcess()
{
SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS);
::SetPriorityClass(::GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS);
}
bool StabilizeCPUForBenchmarking()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment