summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAina Niemetz <aina.niemetz@gmail.com>2021-02-26 11:25:05 -0800
committerGitHub <noreply@github.com>2021-02-26 11:25:05 -0800
commit88e091a390c9b7dd948938430fdfc3a8cd03cef4 (patch)
tree0cb7085fd9cc3db18a563939ba121f828083acdd
parent3453595e9f5d76a62b113b3a5d13a60dc09ce3ee (diff)
google test: util: Migrate assert_white. (#6011)
-rw-r--r--test/unit/util/CMakeLists.txt2
-rw-r--r--test/unit/util/assert_white.cpp89
-rw-r--r--test/unit/util/assert_white.h67
3 files changed, 90 insertions, 68 deletions
diff --git a/test/unit/util/CMakeLists.txt b/test/unit/util/CMakeLists.txt
index 3457578df..bdc5a2b54 100644
--- a/test/unit/util/CMakeLists.txt
+++ b/test/unit/util/CMakeLists.txt
@@ -12,7 +12,7 @@
# Add unit tests
cvc4_add_cxx_unit_test_white(array_store_all_white util)
-cvc4_add_cxx_unit_test_white(assert_white util)
+cvc4_add_unit_test_white(assert_white util)
cvc4_add_cxx_unit_test_black(binary_heap_black util)
cvc4_add_cxx_unit_test_black(bitvector_black util)
cvc4_add_cxx_unit_test_black(boolean_simplification_black util)
diff --git a/test/unit/util/assert_white.cpp b/test/unit/util/assert_white.cpp
new file mode 100644
index 000000000..7db866f67
--- /dev/null
+++ b/test/unit/util/assert_white.cpp
@@ -0,0 +1,89 @@
+/********************* */
+/*! \file assert_white.cpp
+ ** \verbatim
+ ** Top contributors (to current version):
+ ** Aina Niemetz
+ ** This file is part of the CVC4 project.
+ ** Copyright (c) 2009-2020 by the authors listed in the file AUTHORS
+ ** in the top-level source directory and their institutional affiliations.
+ ** All rights reserved. See the file COPYING in the top-level source
+ ** directory for licensing information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::Configuration.
+ **
+ ** White box testing of CVC4::Configuration.
+ **/
+
+#include <cstring>
+#include <string>
+
+#include "base/check.h"
+#include "test.h"
+
+namespace CVC4 {
+namespace test {
+
+class TestUtilWhite : public TestInternal
+{
+};
+
+TEST_F(TestUtilWhite, Assert)
+{
+#ifdef CVC4_ASSERTIONS
+ ASSERT_DEATH(Assert(false), "false");
+#else
+ ASSERT_NO_THROW(Assert(false));
+#endif
+ ASSERT_DEATH(AlwaysAssert(false), "false");
+ ASSERT_NO_FATAL_FAILURE(Assert(true));
+ ASSERT_NO_FATAL_FAILURE(AlwaysAssert(true));
+}
+
+TEST_F(TestUtilWhite, AssertArgument)
+{
+#ifdef CVC4_ASSERTIONS
+ ASSERT_THROW(AssertArgument(false, "x"), AssertArgumentException);
+#else
+ ASSERT_NO_THROW(AssertArgument(false, "x"));
+#endif
+ ASSERT_THROW(AlwaysAssertArgument(false, "x"), AssertArgumentException);
+ ASSERT_NO_THROW(AssertArgument(true, "x"));
+ ASSERT_NO_THROW(AssertArgument(true, "x"));
+}
+
+TEST_F(TestUtilWhite, Unreachable)
+{
+ ASSERT_DEATH(Unreachable(), "Unreachable code reached");
+ ASSERT_DEATH(Unreachable() << "hello", "Unreachable code reachedhello");
+ ASSERT_DEATH(Unreachable() << "hello "
+ << "world",
+ "Unreachable code reachedhello world");
+}
+
+TEST_F(TestUtilWhite, Unhandled)
+{
+ ASSERT_DEATH(Unhandled(), "Unhandled case encountered");
+ ASSERT_DEATH(Unhandled() << 5, "Unhandled case encountered5");
+ ASSERT_DEATH(Unhandled() << "foo", "Unhandled case encounteredfoo");
+ ASSERT_DEATH(Unhandled() << "foo "
+ << "bar"
+ << " baz",
+ "Unhandled case encounteredfoo bar baz");
+}
+
+TEST_F(TestUtilWhite, Unimplemented)
+{
+ ASSERT_DEATH(Unimplemented(), "Unimplemented code encountered");
+}
+
+TEST_F(TestUtilWhite, IllegalArgument)
+{
+ ASSERT_THROW(IllegalArgument("x"), IllegalArgumentException);
+}
+
+TEST_F(TestUtilWhite, CheckArgument)
+{
+ ASSERT_THROW(CheckArgument(false, "x"), IllegalArgumentException);
+}
+} // namespace test
+} // namespace CVC4
diff --git a/test/unit/util/assert_white.h b/test/unit/util/assert_white.h
deleted file mode 100644
index 917f59aa0..000000000
--- a/test/unit/util/assert_white.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/********************* */
-/*! \file assert_white.h
- ** \verbatim
- ** Top contributors (to current version):
- ** Mathias Preiner, Morgan Deters, Andres Noetzli
- ** This file is part of the CVC4 project.
- ** Copyright (c) 2009-2020 by the authors listed in the file AUTHORS
- ** in the top-level source directory and their institutional affiliations.
- ** All rights reserved. See the file COPYING in the top-level source
- ** directory for licensing information.\endverbatim
- **
- ** \brief White box testing of CVC4::Configuration.
- **
- ** White box testing of CVC4::Configuration.
- **/
-
-#include <cxxtest/TestSuite.h>
-
-#include <string>
-#include <cstring>
-
-#include "base/check.h"
-#include "test_utils.h"
-
-using namespace CVC4;
-using namespace std;
-
-class AssertWhite : public CxxTest::TestSuite {
-public:
- void testAssert()
- {
-#ifdef CVC4_ASSERTIONS
- TS_UTILS_EXPECT_ABORT(Assert(false));
- 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_UTILS_EXPECT_ABORT(AlwaysAssert(false));
- TS_UTILS_EXPECT_ABORT(Unreachable());
- TS_UTILS_EXPECT_ABORT(Unhandled());
- TS_UTILS_EXPECT_ABORT(Unimplemented());
- 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"));
- }
-
- void testUnreachable() {
- TS_UTILS_EXPECT_ABORT(Unreachable());
- TS_UTILS_EXPECT_ABORT(Unreachable() << "hello");
- TS_UTILS_EXPECT_ABORT(Unreachable() << "hello "
- << "world");
-
- int x = 5;
- TS_UTILS_EXPECT_ABORT(Unhandled());
- TS_UTILS_EXPECT_ABORT(Unhandled() << x);
- TS_UTILS_EXPECT_ABORT(Unhandled() << "foo");
- TS_UTILS_EXPECT_ABORT(Unhandled() << "foo "
- << "bar"
- << " baz");
- }
-
-};
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback