mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Improved gasleft tests.
This commit is contained in:
		
							parent
							
								
									3340053fd9
								
							
						
					
					
						commit
						2213f9946b
					
				| @ -5352,6 +5352,18 @@ BOOST_AUTO_TEST_CASE(super_overload) | ||||
| 	ABI_CHECK(callContractFunction("h()"), encodeArgs(2)); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(gasleft_shadow_resolution) | ||||
| { | ||||
| 	char const* sourceCode = R"( | ||||
| 		contract C { | ||||
| 			function gasleft() returns(uint256) { return 0; } | ||||
| 			function f() returns(uint256) { return gasleft(); } | ||||
| 		} | ||||
| 	)"; | ||||
| 	compileAndRun(sourceCode, 0, "C"); | ||||
| 	ABI_CHECK(callContractFunction("f()"), encodeArgs(0)); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(bool_conversion) | ||||
| { | ||||
| 	char const* sourceCode = R"( | ||||
|  | ||||
| @ -7409,21 +7409,21 @@ BOOST_AUTO_TEST_CASE(builtin_reject_gas) | ||||
| 	CHECK_ERROR(text, TypeError, "Member \"gas\" not found or not visible after argument-dependent lookup"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(gas_left) | ||||
| BOOST_AUTO_TEST_CASE(gasleft) | ||||
| { | ||||
| 	char const* text = R"( | ||||
| 		contract C { | ||||
| 			function f() public returns (uint256 val) { return msg.gas; } | ||||
| 			function f() public view returns (uint256 val) { return msg.gas; } | ||||
| 		} | ||||
| 	)"; | ||||
| 	CHECK_SUCCESS(text); | ||||
| 	CHECK_SUCCESS_NO_WARNINGS(text); | ||||
| 
 | ||||
| 	text = R"( | ||||
| 		contract C { | ||||
| 			function f() public returns (uint256 val) { return gasleft(); } | ||||
| 			function f() public view returns (uint256 val) { return gasleft(); } | ||||
| 		} | ||||
| 	)"; | ||||
| 	CHECK_SUCCESS(text); | ||||
| 	CHECK_SUCCESS_NO_WARNINGS(text); | ||||
| 
 | ||||
| 	text = R"( | ||||
| 		pragma experimental "v0.5.0"; | ||||
| @ -7434,12 +7434,12 @@ BOOST_AUTO_TEST_CASE(gas_left) | ||||
| 	CHECK_ERROR(text, TypeError, "Member \"gas\" not found or not visible after argument-dependent lookup in msg"); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(gasleft_as_identifier) | ||||
| BOOST_AUTO_TEST_CASE(gasleft_shadowing) | ||||
| { | ||||
| 	char const* text = R"( | ||||
| 		contract C { | ||||
| 			function gasleft() public pure returns (bytes32 val) { return "abc"; } | ||||
| 			function f() public pure { bytes32 val = gasleft(); assert (val == "abc"); } | ||||
| 			function f() public pure returns (bytes32 val) { return gasleft(); } | ||||
| 		} | ||||
| 	)"; | ||||
| 	CHECK_WARNING(text, "This declaration shadows a builtin symbol."); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user