diff options
author | Mike Klein <mtklein@chromium.org> | 2017-08-15 21:16:18 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-16 01:49:07 +0000 |
commit | c667dff58dc4b16faf30c34e98a118c6a1c1f987 (patch) | |
tree | b1b8bd77c302c131d7205b11bf3ef8796017cf20 | |
parent | ecf78acaa0d5319adf575e6f624993b16d83824c (diff) |
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>
-rw-r--r-- | BUILD.gn | 7 | ||||
-rw-r--r-- | gn/BUILD.gn | 7 | ||||
-rw-r--r-- | gn/tests.gni | 1 | ||||
-rw-r--r-- | tests/ExceptionTest.cpp | 19 |
4 files changed, 33 insertions, 1 deletions
@@ -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 } } diff --git a/gn/BUILD.gn b/gn/BUILD.gn index 7be1617d23..06cff4e4a7 100644 --- a/gn/BUILD.gn +++ b/gn/BUILD.gn @@ -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 = [] diff --git a/gn/tests.gni b/gn/tests.gni index c2f3759cd2..51d1d08ce7 100644 --- a/gn/tests.gni +++ b/gn/tests.gni @@ -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", diff --git a/tests/ExceptionTest.cpp b/tests/ExceptionTest.cpp new file mode 100644 index 0000000000..85e6dcae65 --- /dev/null +++ b/tests/ExceptionTest.cpp @@ -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); +} |