diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2018-10-02 10:28:38 -0700 |
---|---|---|
committer | Aina Niemetz <aina.niemetz@gmail.com> | 2018-10-02 10:28:38 -0700 |
commit | 8519233cec9501f31aa1789eff60cb802c8df450 (patch) | |
tree | 60c87d9fe4c59ac565b3fdd66710229f58bc6a44 /test/unit/util/assert_white.h | |
parent | 64a0e3f1e4a5a8e3070eeadae0f6942b290c2974 (diff) |
Fix "catching polymorphic type by value" warnings (#2556)
When using the `TS_ASSERT_THROWS` marco from CxxTest, we have to make
sure that we use a reference type for the exception, otherwise the unit
test tries to catch the exception by value, resulting in "catching
polymorphic type by value" warnings.
Diffstat (limited to 'test/unit/util/assert_white.h')
-rw-r--r-- | test/unit/util/assert_white.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/test/unit/util/assert_white.h b/test/unit/util/assert_white.h index 41d97b65b..e45d15296 100644 --- a/test/unit/util/assert_white.h +++ b/test/unit/util/assert_white.h @@ -29,22 +29,22 @@ public: void testAssert() { #ifdef CVC4_ASSERTIONS - TS_ASSERT_THROWS( Assert(false), AssertionException ); - TS_ASSERT_THROWS( AssertArgument(false, "x"), AssertArgumentException ); + TS_ASSERT_THROWS(Assert(false), AssertionException&); + TS_ASSERT_THROWS(AssertArgument(false, "x"), AssertArgumentException&); #else /* CVC4_ASSERTIONS */ TS_ASSERT_THROWS_NOTHING( Assert(false) ); TS_ASSERT_THROWS_NOTHING( AssertArgument(false, "x") ); #endif /* CVC4_ASSERTIONS */ TS_ASSERT_THROWS_NOTHING( Assert(true) ); - TS_ASSERT_THROWS( AlwaysAssert(false), AssertionException ); - TS_ASSERT_THROWS( Unreachable(), UnreachableCodeException ); - TS_ASSERT_THROWS( Unhandled(), UnhandledCaseException ); - TS_ASSERT_THROWS( Unimplemented(), UnimplementedOperationException ); - TS_ASSERT_THROWS( IllegalArgument("x"), IllegalArgumentException ); - TS_ASSERT_THROWS( CheckArgument(false, "x"), IllegalArgumentException ); - TS_ASSERT_THROWS( AlwaysAssertArgument(false, "x"), - AssertArgumentException ); + TS_ASSERT_THROWS(AlwaysAssert(false), AssertionException&); + TS_ASSERT_THROWS(Unreachable(), UnreachableCodeException&); + TS_ASSERT_THROWS(Unhandled(), UnhandledCaseException&); + TS_ASSERT_THROWS(Unimplemented(), UnimplementedOperationException&); + TS_ASSERT_THROWS(IllegalArgument("x"), IllegalArgumentException&); + TS_ASSERT_THROWS(CheckArgument(false, "x"), IllegalArgumentException&); + TS_ASSERT_THROWS(AlwaysAssertArgument(false, "x"), + AssertArgumentException&); TS_ASSERT_THROWS_NOTHING( AssertArgument(true, "x") ); TS_ASSERT_THROWS_NOTHING( AssertArgument(true, "x") ); } @@ -99,15 +99,16 @@ public: } void testUnreachable() { - TS_ASSERT_THROWS( Unreachable(), UnreachableCodeException ); - TS_ASSERT_THROWS( Unreachable("hello"), UnreachableCodeException ); - TS_ASSERT_THROWS( Unreachable("hello %s", "world"), UnreachableCodeException ); + TS_ASSERT_THROWS(Unreachable(), UnreachableCodeException&); + TS_ASSERT_THROWS(Unreachable("hello"), UnreachableCodeException&); + TS_ASSERT_THROWS(Unreachable("hello %s", "world"), + UnreachableCodeException&); int x = 5; - TS_ASSERT_THROWS( Unhandled(), UnhandledCaseException ); - TS_ASSERT_THROWS( Unhandled(x), UnhandledCaseException ); - TS_ASSERT_THROWS( Unhandled("foo"), UnhandledCaseException ); - TS_ASSERT_THROWS( Unhandled("foo %s baz", "bar"), UnhandledCaseException ); + TS_ASSERT_THROWS(Unhandled(), UnhandledCaseException&); + TS_ASSERT_THROWS(Unhandled(x), UnhandledCaseException&); + TS_ASSERT_THROWS(Unhandled("foo"), UnhandledCaseException&); + TS_ASSERT_THROWS(Unhandled("foo %s baz", "bar"), UnhandledCaseException&); } }; |