summaryrefslogtreecommitdiff
path: root/test/unit/util/output_black.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-04-09 16:25:32 +0000
committerMorgan Deters <mdeters@gmail.com>2010-04-09 16:25:32 +0000
commite390a4207d3858927354b3d4b40d540c00f8064c (patch)
tree589fd13ed8f6ba835cd79a2894092860b66b7696 /test/unit/util/output_black.h
parentc3a6ff8c6e4a0c743cd33eb29931f837eeb2959e (diff)
added experimental "make lcov" target (it runs only unit tests); better coverage for util and context classes; implemented some output functionality that was missing; reclassified some tests white -> black or black -> public; other minor fixes
Diffstat (limited to 'test/unit/util/output_black.h')
-rw-r--r--test/unit/util/output_black.h304
1 files changed, 304 insertions, 0 deletions
diff --git a/test/unit/util/output_black.h b/test/unit/util/output_black.h
new file mode 100644
index 000000000..6e613e9f4
--- /dev/null
+++ b/test/unit/util/output_black.h
@@ -0,0 +1,304 @@
+/********************* */
+/** output_black.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** Black box testing of CVC4 output classes.
+ **/
+
+#include <cxxtest/TestSuite.h>
+
+#include <iostream>
+#include <sstream>
+
+#include "util/output.h"
+
+using namespace CVC4;
+using namespace std;
+
+class OutputBlack : public CxxTest::TestSuite {
+
+ stringstream d_debugStream;
+ stringstream d_traceStream;
+ stringstream d_noticeStream;
+ stringstream d_chatStream;
+ stringstream d_messageStream;
+ stringstream d_warningStream;
+
+public:
+
+ void setUp() {
+ Debug.setStream(d_debugStream);
+ Trace.setStream(d_traceStream);
+ Notice.setStream(d_noticeStream);
+ Chat.setStream(d_chatStream);
+ Message.setStream(d_messageStream);
+ Warning.setStream(d_warningStream);
+
+ d_debugStream.str("");
+ d_traceStream.str("");
+ d_noticeStream.str("");
+ d_chatStream.str("");
+ d_messageStream.str("");
+ d_warningStream.str("");
+ }
+
+ void tearDown() {
+ }
+
+ void testOutput() {
+ Debug.on("foo");
+ Debug("foo") << "testing1";
+ Debug.off("foo");
+ Debug("foo") << "testing2";
+ Debug.on("foo");
+ Debug("foo") << "testing3";
+
+ Message() << "a message";
+ Warning() << "bad warning!";
+ Chat() << "chatty";
+ Notice() << "note";
+
+ Trace.on("foo");
+ Trace("foo") << "tracing1";
+ Trace.off("foo");
+ Trace("foo") << "tracing2";
+ Trace.on("foo");
+ Trace("foo") << "tracing3";
+
+#ifdef CVC4_MUZZLE
+
+ TS_ASSERT( d_debugStream.str() == "" );
+ TS_ASSERT( d_messageStream.str() == "" );
+ TS_ASSERT( d_warningStream.str() == "" );
+ TS_ASSERT( d_chatStream.str() == "" );
+ TS_ASSERT( d_noticeStream.str() == "" );
+ TS_ASSERT( d_traceStream.str() == "" );
+
+#else /* CVC4_MUZZLE */
+
+# ifdef CVC4_DEBUG
+ TS_ASSERT( d_debugStream.str() == "testing1testing3" );
+# else /* CVC4_DEBUG */
+ TS_ASSERT( d_debugStream.str() == "" );
+# endif /* CVC4_DEBUG */
+
+ TS_ASSERT( d_messageStream.str() == "a message" );
+ TS_ASSERT( d_warningStream.str() == "bad warning!" );
+ TS_ASSERT( d_chatStream.str() == "chatty" );
+ TS_ASSERT( d_noticeStream.str() == "note" );
+
+# ifdef CVC4_TRACING
+ TS_ASSERT( d_traceStream.str() == "tracing1tracing3" );
+# else /* CVC4_TRACING */
+ TS_ASSERT( d_traceStream.str() == "" );
+# endif /* CVC4_TRACING */
+
+#endif /* CVC4_MUZZLE */
+ }
+
+ void testPrintf() {
+
+#ifdef CVC4_MUZZLE
+
+ Debug.off("yo");
+ Debug.printf("yo", "hello %s", "world");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+ Debug.printf(string("yo"), "hello %s", "world");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+
+ Debug.on("yo");
+ Debug.printf("yo", "hello %s", "world");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+ Debug.printf(string("yo"), "hello %s", "world");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+
+ Trace.off("yo");
+ Trace.printf("yo", "hello %s", "world");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+ Trace.printf(string("yo"), "hello %s", "world");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+
+ Trace.on("yo");
+ Trace.printf("yo", "hello %s", "world");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+ Trace.printf(string("yo"), "hello %s", "world");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+
+ Warning.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_warningStream.str(), string());
+
+ Chat.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_chatStream.str(), string());
+
+ Message.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_messageStream.str(), string());
+
+ Notice.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_noticeStream.str(), string());
+
+#else /* CVC4_MUZZLE */
+
+ Debug.off("yo");
+ Debug.printf("yo", "hello %s", "world");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+ Debug.printf(string("yo"), "hello %s", "world");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+
+ Debug.on("yo");
+ Debug.printf("yo", "hello %s", "world");
+#ifdef CVC4_DEBUG
+ TS_ASSERT_EQUALS(d_debugStream.str(), string("hello world"));
+#else /* CVC4_DEBUG */
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+#endif /* CVC4_DEBUG */
+ d_debugStream.str("");
+ Debug.printf(string("yo"), "hello %s", "world");
+#ifdef CVC4_DEBUG
+ TS_ASSERT_EQUALS(d_debugStream.str(), string("hello world"));
+#else /* CVC4_DEBUG */
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+#endif /* CVC4_DEBUG */
+ d_debugStream.str("");
+
+ Trace.off("yo");
+ Trace.printf("yo", "hello %s", "world");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+ Trace.printf(string("yo"), "hello %s", "world");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+
+ Trace.on("yo");
+ Trace.printf("yo", "hello %s", "world");
+#ifdef CVC4_TRACING
+ TS_ASSERT_EQUALS(d_traceStream.str(), string("hello world"));
+#else /* CVC4_TRACING */
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+#endif /* CVC4_TRACING */
+ d_traceStream.str("");
+ Trace.printf(string("yo"), "hello %s", "world");
+#ifdef CVC4_TRACING
+ TS_ASSERT_EQUALS(d_traceStream.str(), string("hello world"));
+#else /* CVC4_TRACING */
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+#endif /* CVC4_TRACING */
+
+ Warning.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_warningStream.str(), string("hello world"));
+
+ Chat.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_chatStream.str(), string("hello world"));
+
+ Message.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_messageStream.str(), string("hello world"));
+
+ Notice.printf("hello %s", "world");
+ TS_ASSERT_EQUALS(d_noticeStream.str(), string("hello world"));
+
+#endif /* CVC4_MUZZLE */
+
+ }
+
+ void testSimplePrint() {
+
+#ifdef CVC4_MUZZLE
+
+ Debug.off("yo");
+ Debug("yo", "foobar");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+ Debug.on("yo");
+ Debug("yo", "baz foo");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+
+ Trace.off("yo");
+ Trace("yo", "foobar");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+ Trace.on("yo");
+ Trace("yo", "baz foo");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+
+ Warning("baz foo");
+ TS_ASSERT_EQUALS(d_warningStream.str(), string());
+ d_warningStream.str("");
+
+ Chat("baz foo");
+ TS_ASSERT_EQUALS(d_chatStream.str(), string());
+ d_chatStream.str("");
+
+ Message("baz foo");
+ TS_ASSERT_EQUALS(d_messageStream.str(), string());
+ d_messageStream.str("");
+
+ Notice("baz foo");
+ TS_ASSERT_EQUALS(d_noticeStream.str(), string());
+ d_noticeStream.str("");
+
+#else /* CVC4_MUZZLE */
+
+ Debug.off("yo");
+ Debug("yo", "foobar");
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+ d_debugStream.str("");
+ Debug.on("yo");
+ Debug("yo", "baz foo");
+# ifdef CVC4_DEBUG
+ TS_ASSERT_EQUALS(d_debugStream.str(), string("baz foo"));
+# else /* CVC4_DEBUG */
+ TS_ASSERT_EQUALS(d_debugStream.str(), string());
+# endif /* CVC4_DEBUG */
+ d_debugStream.str("");
+
+ Trace.off("yo");
+ Trace("yo", "foobar");
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+ d_traceStream.str("");
+ Trace.on("yo");
+ Trace("yo", "baz foo");
+# ifdef CVC4_TRACING
+ TS_ASSERT_EQUALS(d_traceStream.str(), string("baz foo"));
+# else /* CVC4_TRACING */
+ TS_ASSERT_EQUALS(d_traceStream.str(), string());
+# endif /* CVC4_TRACING */
+ d_traceStream.str("");
+
+ Warning("baz foo");
+ TS_ASSERT_EQUALS(d_warningStream.str(), string("baz foo"));
+ d_warningStream.str("");
+
+ Chat("baz foo");
+ TS_ASSERT_EQUALS(d_chatStream.str(), string("baz foo"));
+ d_chatStream.str("");
+
+ Message("baz foo");
+ TS_ASSERT_EQUALS(d_messageStream.str(), string("baz foo"));
+ d_messageStream.str("");
+
+ Notice("baz foo");
+ TS_ASSERT_EQUALS(d_noticeStream.str(), string("baz foo"));
+ d_noticeStream.str("");
+
+#endif /* CVC4_MUZZLE */
+
+ }
+};
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback