diff options
author | Tim King <taking@cs.nyu.edu> | 2018-02-07 10:19:04 -0800 |
---|---|---|
committer | Aina Niemetz <aina.niemetz@gmail.com> | 2018-02-07 10:19:04 -0800 |
commit | a5c952d63bca9f94d3886db4d9c09d08d7a23033 (patch) | |
tree | 9b3748cf9d7ec36e12df9a5b361862ae6ec0fabb /test/unit | |
parent | 0533b9009d23a39bcc78ef85d6e98b62ef304351 (diff) |
Adds a new CHECK macro that abort()s on failure. (#1532)
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/Makefile.am | 1 | ||||
-rw-r--r-- | test/unit/util/check_white.h | 58 |
2 files changed, 59 insertions, 0 deletions
diff --git a/test/unit/Makefile.am b/test/unit/Makefile.am index 9f61ef031..167100ff0 100644 --- a/test/unit/Makefile.am +++ b/test/unit/Makefile.am @@ -41,6 +41,7 @@ UNIT_TESTS += \ context/cdvector_black \ util/array_store_all_black \ util/assert_white \ + util/check_white \ util/binary_heap_black \ util/bitvector_black \ util/datatype_black \ diff --git a/test/unit/util/check_white.h b/test/unit/util/check_white.h new file mode 100644 index 000000000..e57afa6c7 --- /dev/null +++ b/test/unit/util/check_white.h @@ -0,0 +1,58 @@ +/********************* */ +/*! \file check_white.h + ** \verbatim + ** Top contributors (to current version): + ** Tim King + ** This file is part of the CVC4 project. + ** Copyright (c) 2009-2017 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 check utilities. + ** + ** White box testing of check utilities. + **/ + +#include <cxxtest/TestSuite.h> + +#include <cstring> +#include <string> + +#include "base/cvc4_check.h" + +using namespace std; +using namespace CVC4; + +namespace { + +class CheckWhite : public CxxTest::TestSuite +{ + public: + const int kOne = 1; + + // This test just checks that this statement compiles. + std::string TerminalCvc4Fatal() const + { + CVC4_FATAL() << "This is a test that confirms that CVC4_FATAL can be a " + "terminal statement in a function that has a non-void " + "return type."; + } + + void testCheck() { CHECK(kOne >= 0) << kOne << " must be positive"; } + void testDCheck() + { + DCHECK(kOne == 1) << "always passes"; +#ifndef CVC4_ASSERTIONS + DCHECK(false) << "Will not be compiled in when CVC4_ASSERTIONS off."; +#endif /* CVC4_ASSERTIONS */ + } + + void testPointerTypeCanBeTheCondition() + { + const int* one_pointer = &kOne; + CHECK(one_pointer); + } +}; + +} // namespace |