summaryrefslogtreecommitdiff
path: root/test/unit/util/assert_white.h
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2018-10-02 10:28:38 -0700
committerAina Niemetz <aina.niemetz@gmail.com>2018-10-02 10:28:38 -0700
commit8519233cec9501f31aa1789eff60cb802c8df450 (patch)
tree60c87d9fe4c59ac565b3fdd66710229f58bc6a44 /test/unit/util/assert_white.h
parent64a0e3f1e4a5a8e3070eeadae0f6942b290c2974 (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.h35
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&);
}
};
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback