From: Aina Niemetz Date: Fri, 26 Feb 2021 19:25:05 +0000 (-0800) Subject: google test: util: Migrate assert_white. (#6011) X-Git-Tag: cvc5-1.0.0~2203 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=88e091a390c9b7dd948938430fdfc3a8cd03cef4;p=cvc5.git google test: util: Migrate assert_white. (#6011) --- 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 +#include + +#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 - -#include -#include - -#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"); - } - -};