Turn on exceptions in test tools.

This allows us to test things that, e.g., throw std::bad_alloc.

Change-Id: I6409159b89f1d93d403b1a1f40539cf2531a8b68
Reviewed-on: https://skia-review.googlesource.com/34982
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This commit is contained in:
Mike Klein 2017-08-15 21:16:18 -04:00 committed by Skia Commit-Bot
parent ecf78acaa0
commit c667dff58d
4 changed files with 33 additions and 1 deletions

View File

@ -883,6 +883,9 @@ if (skia_enable_tools) {
":skia_private",
]
configs -= [ "//gn:no_exceptions" ]
configs += [ "//gn:yes_exceptions" ]
if (!defined(deps)) {
deps = []
}
@ -896,6 +899,8 @@ if (skia_enable_tools) {
shared_library("lib" + target_name) {
forward_variables_from(invoker, "*", [ "is_shared_library" ])
configs += [ ":skia_private" ]
configs -= [ "//gn:no_exceptions" ]
configs += [ "//gn:yes_exceptions" ]
testonly = true
}
} else {
@ -903,6 +908,8 @@ if (skia_enable_tools) {
executable(_executable) {
forward_variables_from(invoker, "*", [ "is_shared_library" ])
configs += [ ":skia_private" ]
configs -= [ "//gn:no_exceptions" ]
configs += [ "//gn:yes_exceptions" ]
testonly = true
}
}

View File

@ -258,11 +258,16 @@ config("default") {
}
config("no_exceptions") {
# Exceptions are disabled by default on Windows. (Use /EHsc to enable them.)
# Exceptions are disabled by default on Windows. (Use :yes_exceptions to enable them.)
if (!is_win) {
cflags_cc = [ "-fno-exceptions" ]
}
}
config("yes_exceptions") {
if (is_win) {
cflags_cc = [ "/EHsc" ]
}
}
config("warnings") {
cflags = []

View File

@ -62,6 +62,7 @@ tests_sources = [
"$_tests/EGLImageTest.cpp",
"$_tests/EmptyPathTest.cpp",
"$_tests/EncodeTest.cpp",
"$_tests/ExceptionTest.cpp",
"$_tests/ExifTest.cpp",
"$_tests/F16StagesTest.cpp",
"$_tests/FillPathTest.cpp",

19
tests/ExceptionTest.cpp Normal file
View File

@ -0,0 +1,19 @@
/*
* Copyright 2017 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "Test.h"
// Just a little meta-test that our test tools can compile and link with exceptions enabled.
DEF_TEST(Exceptions, r) {
bool exception_caught = false;
try {
throw 42;
} catch (...) {
exception_caught = true;
}
REPORTER_ASSERT(r, exception_caught);
}