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/theory | |
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/theory')
-rw-r--r-- | test/unit/theory/logic_info_white.h | 99 | ||||
-rw-r--r-- | test/unit/theory/type_enumerator_white.h | 18 |
2 files changed, 68 insertions, 49 deletions
diff --git a/test/unit/theory/logic_info_white.h b/test/unit/theory/logic_info_white.h index f5ef8e15e..427bcc34d 100644 --- a/test/unit/theory/logic_info_white.h +++ b/test/unit/theory/logic_info_white.h @@ -457,27 +457,41 @@ public: LogicInfo info; TS_ASSERT( !info.isLocked() ); - TS_ASSERT_THROWS( info.getLogicString(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_BUILTIN ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_BOOL ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_UF ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_ARITH ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_ARRAYS ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_BV ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_DATATYPES ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isTheoryEnabled( THEORY_QUANTIFIERS ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_BUILTIN ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_BOOL ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_UF ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_ARITH ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_ARRAYS ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_BV ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_DATATYPES ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( ! info.isPure( THEORY_QUANTIFIERS ), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.isQuantified(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.areIntegersUsed(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.areRealsUsed(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( !info.isLinear(), CVC4::IllegalArgumentException ); + TS_ASSERT_THROWS(info.getLogicString(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_BUILTIN), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_BOOL), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_UF), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_ARITH), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_ARRAYS), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_BV), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_DATATYPES), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isTheoryEnabled(THEORY_QUANTIFIERS), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_BUILTIN), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_BOOL), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_UF), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_ARITH), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_ARRAYS), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_BV), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_DATATYPES), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isPure(THEORY_QUANTIFIERS), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.isQuantified(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.areIntegersUsed(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.areRealsUsed(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(!info.isLinear(), CVC4::IllegalArgumentException&); info.lock(); TS_ASSERT( info.isLocked() ); @@ -505,15 +519,20 @@ public: TS_ASSERT(info.areTranscendentalsUsed()); TS_ASSERT( !info.isLinear() ); - TS_ASSERT_THROWS( info.arithOnlyLinear(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableIntegers(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableQuantifiers(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableTheory(THEORY_BV), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableTheory(THEORY_DATATYPES), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.enableIntegers(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableReals(), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableTheory(THEORY_ARITH), CVC4::IllegalArgumentException ); - TS_ASSERT_THROWS( info.disableTheory(THEORY_UF), CVC4::IllegalArgumentException ); + TS_ASSERT_THROWS(info.arithOnlyLinear(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableIntegers(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableQuantifiers(), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableTheory(THEORY_BV), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableTheory(THEORY_DATATYPES), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.enableIntegers(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableReals(), CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableTheory(THEORY_ARITH), + CVC4::IllegalArgumentException&); + TS_ASSERT_THROWS(info.disableTheory(THEORY_UF), + CVC4::IllegalArgumentException&); info = info.getUnlockedCopy(); TS_ASSERT( !info.isLocked() ); @@ -565,11 +584,11 @@ public: TS_ASSERT( !info.isTheoryEnabled( THEORY_BV ) ); TS_ASSERT( !info.isTheoryEnabled( THEORY_DATATYPES ) ); TS_ASSERT( info.isTheoryEnabled( THEORY_BOOL ) ); - TS_ASSERT_THROWS( info.isLinear(), IllegalArgumentException ); - TS_ASSERT_THROWS( info.areIntegersUsed(), IllegalArgumentException ); - TS_ASSERT_THROWS( info.isDifferenceLogic(), IllegalArgumentException ); - TS_ASSERT_THROWS( info.areRealsUsed(), IllegalArgumentException ); - TS_ASSERT_THROWS(info.areTranscendentalsUsed(), IllegalArgumentException); + TS_ASSERT_THROWS(info.isLinear(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.areIntegersUsed(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.isDifferenceLogic(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.areRealsUsed(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.areTranscendentalsUsed(), IllegalArgumentException&); // check copy is unchanged info = info.getUnlockedCopy(); @@ -585,11 +604,11 @@ public: TS_ASSERT( !info.isTheoryEnabled( THEORY_BV ) ); TS_ASSERT( !info.isTheoryEnabled( THEORY_DATATYPES ) ); TS_ASSERT( info.isTheoryEnabled( THEORY_BOOL ) ); - TS_ASSERT_THROWS( info.isLinear(), IllegalArgumentException ); - TS_ASSERT_THROWS( info.areIntegersUsed(), IllegalArgumentException ); - TS_ASSERT_THROWS( info.isDifferenceLogic(), IllegalArgumentException ); - TS_ASSERT_THROWS( info.areRealsUsed(), IllegalArgumentException ); - TS_ASSERT_THROWS(info.areTranscendentalsUsed(), IllegalArgumentException); + TS_ASSERT_THROWS(info.isLinear(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.areIntegersUsed(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.isDifferenceLogic(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.areRealsUsed(), IllegalArgumentException&); + TS_ASSERT_THROWS(info.areTranscendentalsUsed(), IllegalArgumentException&); // check all-included logic info = info.getUnlockedCopy(); diff --git a/test/unit/theory/type_enumerator_white.h b/test/unit/theory/type_enumerator_white.h index b68941843..b0f69d32e 100644 --- a/test/unit/theory/type_enumerator_white.h +++ b/test/unit/theory/type_enumerator_white.h @@ -59,11 +59,11 @@ class TypeEnumeratorWhite : public CxxTest::TestSuite { TS_ASSERT( ! te.isFinished() ); TS_ASSERT_EQUALS(*++te, d_nm->mkConst(true)); TS_ASSERT( ! te.isFinished() ); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); TS_ASSERT( te.isFinished() ); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); TS_ASSERT( te.isFinished() ); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); TS_ASSERT( te.isFinished() ); } @@ -161,9 +161,9 @@ class TypeEnumeratorWhite : public CxxTest::TestSuite { TS_ASSERT_EQUALS(*++te, d_nm->mkNode(APPLY_CONSTRUCTOR, DatatypeType(datatype.toType()).getDatatype().getConstructor("green"))); TS_ASSERT_EQUALS(*++te, d_nm->mkNode(APPLY_CONSTRUCTOR, DatatypeType(datatype.toType()).getDatatype().getConstructor("blue"))); TS_ASSERT_EQUALS(*++te, d_nm->mkNode(APPLY_CONSTRUCTOR, DatatypeType(datatype.toType()).getDatatype().getConstructor("violet"))); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); } void testDatatypesInfinite1() { @@ -267,9 +267,9 @@ class TypeEnumeratorWhite : public CxxTest::TestSuite { TS_ASSERT_EQUALS(*++te, d_nm->mkConst(BitVector(3u, 5u))); TS_ASSERT_EQUALS(*++te, d_nm->mkConst(BitVector(3u, 6u))); TS_ASSERT_EQUALS(*++te, d_nm->mkConst(BitVector(3u, 7u))); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); - TS_ASSERT_THROWS(*++te, NoMoreValuesException); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); + TS_ASSERT_THROWS(*++te, NoMoreValuesException&); } };/* class TypeEnumeratorWhite */ |