diff options
author | Daniel Kirchner <daniel@ekpyron.org> | 2018-03-03 00:58:27 +0800 |
---|---|---|
committer | Daniel Kirchner <daniel@ekpyron.org> | 2018-03-05 18:18:04 +0800 |
commit | c633c0eacba12e940b12c6ff58b5c6c55dc0122c (patch) | |
tree | 9b54278c28df1c2fb97916c9ec7e263faea1b97d /test/libsolidity/SolidityExpressionCompiler.cpp | |
parent | 5982869e94965e48ec680fd32e6f80b8211fc34c (diff) | |
download | dexon-solidity-c633c0eacba12e940b12c6ff58b5c6c55dc0122c.tar.gz dexon-solidity-c633c0eacba12e940b12c6ff58b5c6c55dc0122c.tar.zst dexon-solidity-c633c0eacba12e940b12c6ff58b5c6c55dc0122c.zip |
Move msg.gas to global function gasleft(). Closes #2971.
Diffstat (limited to 'test/libsolidity/SolidityExpressionCompiler.cpp')
-rw-r--r-- | test/libsolidity/SolidityExpressionCompiler.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityExpressionCompiler.cpp b/test/libsolidity/SolidityExpressionCompiler.cpp index e2a0c3cd..83129ba1 100644 --- a/test/libsolidity/SolidityExpressionCompiler.cpp +++ b/test/libsolidity/SolidityExpressionCompiler.cpp @@ -515,6 +515,39 @@ BOOST_AUTO_TEST_CASE(blockhash) BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); } +BOOST_AUTO_TEST_CASE(gas_left) +{ + char const* sourceCode = R"( + contract test { + function f() returns (uint256 val) { + return msg.gas; + } + } + )"; + bytes code = compileFirstExpression( + sourceCode, {}, {}, + {make_shared<MagicVariableDeclaration>("msg", make_shared<MagicType>(MagicType::Kind::Message))} + ); + + bytes expectation({byte(Instruction::GAS)}); + BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); + + sourceCode = R"( + contract test { + function f() returns (uint256 val) { + return gasleft(); + } + } + )"; + code = compileFirstExpression( + sourceCode, {}, {}, + {make_shared<MagicVariableDeclaration>("gasleft", make_shared<FunctionType>(strings(), strings{"uint256"}, FunctionType::Kind::GasLeft))} + ); + + expectation = bytes({byte(Instruction::GAS)}); + BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end()); +} + BOOST_AUTO_TEST_SUITE_END() } |