google test: util: Migrate assert_white. (#6011)
authorAina Niemetz <aina.niemetz@gmail.com>
Fri, 26 Feb 2021 19:25:05 +0000 (11:25 -0800)
committerGitHub <noreply@github.com>
Fri, 26 Feb 2021 19:25:05 +0000 (11:25 -0800)
test/unit/util/CMakeLists.txt
test/unit/util/assert_white.cpp [new file with mode: 0644]
test/unit/util/assert_white.h [deleted file]

index 3457578df6a7818e9f7f765ebd2e5d694a1d4972..bdc5a2b54601ad432d218eefdc49ed48391ea014 100644 (file)
@@ -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 (file)
index 0000000..7db866f
--- /dev/null
@@ -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 (file)
index 917f59a..0000000
+++ /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");
-  }
-
-};