From 90fb14f525fa37a15421e3dc40ffc98a5bce8378 Mon Sep 17 00:00:00 2001 From: chriseth Date: Fri, 29 Sep 2017 16:53:38 +0200 Subject: Tests. --- test/libsolidity/SMTChecker.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'test') diff --git a/test/libsolidity/SMTChecker.cpp b/test/libsolidity/SMTChecker.cpp index 400f696c..9d014125 100644 --- a/test/libsolidity/SMTChecker.cpp +++ b/test/libsolidity/SMTChecker.cpp @@ -344,6 +344,37 @@ BOOST_AUTO_TEST_CASE(while_loop_simple) CHECK_WARNING(text, "Assertion violation happens here"); } +BOOST_AUTO_TEST_CASE(constant_condition) +{ + string text = R"( + contract C { + function f(uint x) public pure { + if (x >= 0) { revert(); } + } + } + )"; + CHECK_WARNING(text, "Condition is always true"); + text = R"( + contract C { + function f(uint x) public pure { + if (x >= 10) { if (x < 10) { revert(); } } + } + } + )"; + CHECK_WARNING(text, "Condition is always false"); +// TODO +// // a plain literal constant is fine +// text = R"( +// contract C { +// function f(uint x) public pure { +// if (true) { revert(); } +// } +// } +// )"; +// CHECK_SUCCESS_NO_WARNINGS(text); + +// TODO test unreacheable code +} BOOST_AUTO_TEST_SUITE_END() -- cgit v1.2.3