summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-09-26 21:53:45 -0500
committerAndres Noetzli <andres.noetzli@gmail.com>2019-09-26 19:53:45 -0700
commit64e8ad696a1accdf489a3073cc480f591be04c39 (patch)
tree8291b517ca8635325b4efb95d0896bbe1e18be66
parent923abd7000a2ab6e3c0776c59d159bdc3a4d9a52 (diff)
CVC print support for recoverable failure (#3323)
-rw-r--r--src/printer/cvc/cvc_printer.cpp17
-rw-r--r--test/regress/CMakeLists.txt1
-rw-r--r--test/regress/regress0/cvc-rerror-print.cvc7
3 files changed, 21 insertions, 4 deletions
diff --git a/src/printer/cvc/cvc_printer.cpp b/src/printer/cvc/cvc_printer.cpp
index 630d8bdd7..0b7c569b7 100644
--- a/src/printer/cvc/cvc_printer.cpp
+++ b/src/printer/cvc/cvc_printer.cpp
@@ -1048,10 +1048,12 @@ static bool tryToStream(std::ostream& out,
void CvcPrinter::toStream(std::ostream& out, const CommandStatus* s) const
{
- if(tryToStream<CommandSuccess>(out, s, d_cvc3Mode) ||
- tryToStream<CommandFailure>(out, s, d_cvc3Mode) ||
- tryToStream<CommandUnsupported>(out, s, d_cvc3Mode) ||
- tryToStream<CommandInterrupted>(out, s, d_cvc3Mode)) {
+ if (tryToStream<CommandSuccess>(out, s, d_cvc3Mode)
+ || tryToStream<CommandFailure>(out, s, d_cvc3Mode)
+ || tryToStream<CommandRecoverableFailure>(out, s, d_cvc3Mode)
+ || tryToStream<CommandUnsupported>(out, s, d_cvc3Mode)
+ || tryToStream<CommandInterrupted>(out, s, d_cvc3Mode))
+ {
return;
}
@@ -1554,6 +1556,13 @@ static void toStream(std::ostream& out, const CommandFailure* s, bool cvc3Mode)
out << s->getMessage() << endl;
}
+static void toStream(std::ostream& out,
+ const CommandRecoverableFailure* s,
+ bool cvc3Mode)
+{
+ out << s->getMessage() << endl;
+}
+
template <class T>
static bool tryToStream(std::ostream& out,
const CommandStatus* s,
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index a1be9ad62..d4cc9b293 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -332,6 +332,7 @@ set(regress_0_tests
regress0/cvc3.userdoc.04.cvc
regress0/cvc3.userdoc.05.cvc
regress0/cvc3.userdoc.06.cvc
+ regress0/cvc-rerror-print.cvc
regress0/datatypes/Test1-tup-mp.cvc
regress0/datatypes/boolean-equality.cvc
regress0/datatypes/boolean-terms-datatype.cvc
diff --git a/test/regress/regress0/cvc-rerror-print.cvc b/test/regress/regress0/cvc-rerror-print.cvc
new file mode 100644
index 000000000..dd05723d2
--- /dev/null
+++ b/test/regress/regress0/cvc-rerror-print.cvc
@@ -0,0 +1,7 @@
+% EXPECT: valid
+% EXPECT: Cannot get model unless immediately preceded by SAT/INVALID or UNKNOWN response.
+OPTION "logic" "ALL";
+OPTION "produce-models" true;
+x : INT;
+QUERY x = x;
+COUNTEREXAMPLE;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback