diff options
author | subtly <subtly@users.noreply.github.com> | 2015-05-07 04:42:25 +0800 |
---|---|---|
committer | subtly <subtly@users.noreply.github.com> | 2015-05-07 04:42:25 +0800 |
commit | 242547d2e9049b9f713e505de4691a820a45a92b (patch) | |
tree | c1d48f66cb7f1570a4a4fb9f35a6e2b0d720d6d0 /libsolidity/SolidityEndToEndTest.cpp | |
parent | 2469f0c8bf11c09c7b5402eb3afdb4a3ce9cd5c1 (diff) | |
parent | fce1a7f82e48ddf3d73e00a2998f003d77f3d5f9 (diff) | |
download | dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.tar dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.tar.gz dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.tar.bz2 dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.tar.lz dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.tar.xz dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.tar.zst dexon-solidity-242547d2e9049b9f713e505de4691a820a45a92b.zip |
Merge branch 'develop' into discovery
Diffstat (limited to 'libsolidity/SolidityEndToEndTest.cpp')
-rw-r--r-- | libsolidity/SolidityEndToEndTest.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libsolidity/SolidityEndToEndTest.cpp b/libsolidity/SolidityEndToEndTest.cpp index 24e5f7b4..f168ad45 100644 --- a/libsolidity/SolidityEndToEndTest.cpp +++ b/libsolidity/SolidityEndToEndTest.cpp @@ -300,6 +300,52 @@ BOOST_AUTO_TEST_CASE(for_loop_simple_init_expr) testSolidityAgainstCppOnRange("f(uint256)", for_loop_simple_init_expr_cpp, 0, 5); } +BOOST_AUTO_TEST_CASE(for_loop_break_continue) +{ + char const* sourceCode = R"( + contract test { + function f(uint n) returns (uint r) + { + uint i = 1; + uint k = 0; + for (i *= 5; k < n; i *= 7) + { + k++; + i += 4; + if (n % 3 == 0) + break; + i += 9; + if (n % 2 == 0) + continue; + i += 19; + } + return i; + } + } + )"; + compileAndRun(sourceCode); + + auto breakContinue = [](u256 const& n) -> u256 + { + u256 i = 1; + u256 k = 0; + for (i *= 5; k < n; i *= 7) + { + k++; + i += 4; + if (n % 3 == 0) + break; + i += 9; + if (n % 2 == 0) + continue; + i += 19; + } + return i; + }; + + testSolidityAgainstCppOnRange("f(uint256)", breakContinue, 0, 10); +} + BOOST_AUTO_TEST_CASE(calling_other_functions) { char const* sourceCode = "contract collatz {\n" |