mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Remove obsolete enforce-via-yul logic and CI run.
This commit is contained in:
		
							parent
							
								
									0cb9590298
								
							
						
					
					
						commit
						e93ad30e43
					
				| @ -1035,16 +1035,6 @@ jobs: | |||||||
|           condition: true |           condition: true | ||||||
|           <<: *steps_soltest |           <<: *steps_soltest | ||||||
| 
 | 
 | ||||||
|   t_ubu_soltest_enforce_yul: &t_ubu_soltest_enforce_yul |  | ||||||
|     <<: *base_ubuntu2004 |  | ||||||
|     parallelism: 20 |  | ||||||
|     environment: |  | ||||||
|       EVM: << pipeline.parameters.evm-version >> |  | ||||||
|       SOLTEST_FLAGS: --enforce-via-yul |  | ||||||
|       OPTIMIZE: 0 |  | ||||||
|       TERM: xterm |  | ||||||
|     <<: *steps_soltest |  | ||||||
| 
 |  | ||||||
|   t_ubu_clang_soltest: &t_ubu_clang_soltest |   t_ubu_clang_soltest: &t_ubu_clang_soltest | ||||||
|     <<: *base_ubuntu2004_clang |     <<: *base_ubuntu2004_clang | ||||||
|     parallelism: 20 |     parallelism: 20 | ||||||
| @ -1515,7 +1505,6 @@ workflows: | |||||||
|       - t_ubu_cli: *workflow_ubuntu2004 |       - t_ubu_cli: *workflow_ubuntu2004 | ||||||
|       - t_ubu_locale: *workflow_ubuntu2004 |       - t_ubu_locale: *workflow_ubuntu2004 | ||||||
|       - t_ubu_soltest_all: *workflow_ubuntu2004 |       - t_ubu_soltest_all: *workflow_ubuntu2004 | ||||||
|       - t_ubu_soltest_enforce_yul: *workflow_ubuntu2004 |  | ||||||
|       - b_ubu_clang: *workflow_trigger_on_tags |       - b_ubu_clang: *workflow_trigger_on_tags | ||||||
|       - t_ubu_clang_soltest: *workflow_ubuntu2004_clang |       - t_ubu_clang_soltest: *workflow_ubuntu2004_clang | ||||||
|       - t_ubu_lsp: *workflow_ubuntu2004 |       - t_ubu_lsp: *workflow_ubuntu2004 | ||||||
|  | |||||||
| @ -107,7 +107,6 @@ void CommonOptions::addOptions() | |||||||
| 		("no-semantic-tests", po::bool_switch(&disableSemanticTests)->default_value(disableSemanticTests), "disable semantic tests") | 		("no-semantic-tests", po::bool_switch(&disableSemanticTests)->default_value(disableSemanticTests), "disable semantic tests") | ||||||
| 		("no-smt", po::bool_switch(&disableSMT)->default_value(disableSMT), "disable SMT checker") | 		("no-smt", po::bool_switch(&disableSMT)->default_value(disableSMT), "disable SMT checker") | ||||||
| 		("optimize", po::bool_switch(&optimize)->default_value(optimize), "enables optimization") | 		("optimize", po::bool_switch(&optimize)->default_value(optimize), "enables optimization") | ||||||
| 		("enforce-via-yul", po::value<bool>(&enforceViaYul)->default_value(enforceViaYul)->implicit_value(true), "Enforce compiling all tests via yul to see if additional tests can be activated.") |  | ||||||
| 		("enforce-compile-to-ewasm", po::bool_switch(&enforceCompileToEwasm)->default_value(enforceCompileToEwasm), "Enforce compiling all tests to Ewasm to see if additional tests can be activated.") | 		("enforce-compile-to-ewasm", po::bool_switch(&enforceCompileToEwasm)->default_value(enforceCompileToEwasm), "Enforce compiling all tests to Ewasm to see if additional tests can be activated.") | ||||||
| 		("enforce-gas-cost", po::value<bool>(&enforceGasTest)->default_value(enforceGasTest)->implicit_value(true), "Enforce checking gas cost in semantic tests.") | 		("enforce-gas-cost", po::value<bool>(&enforceGasTest)->default_value(enforceGasTest)->implicit_value(true), "Enforce checking gas cost in semantic tests.") | ||||||
| 		("enforce-gas-cost-min-value", po::value(&enforceGasTestMinValue)->default_value(enforceGasTestMinValue), "Threshold value to enforce adding gas checks to a test.") | 		("enforce-gas-cost-min-value", po::value(&enforceGasTestMinValue)->default_value(enforceGasTestMinValue), "Threshold value to enforce adding gas checks to a test.") | ||||||
|  | |||||||
| @ -60,7 +60,6 @@ struct CommonOptions | |||||||
| 	boost::filesystem::path testPath; | 	boost::filesystem::path testPath; | ||||||
| 	bool ewasm = false; | 	bool ewasm = false; | ||||||
| 	bool optimize = false; | 	bool optimize = false; | ||||||
| 	bool enforceViaYul = false; |  | ||||||
| 	bool enforceCompileToEwasm = false; | 	bool enforceCompileToEwasm = false; | ||||||
| 	bool enforceGasTest = false; | 	bool enforceGasTest = false; | ||||||
| 	u256 enforceGasTestMinValue = 100000; | 	u256 enforceGasTestMinValue = 100000; | ||||||
|  | |||||||
| @ -40,7 +40,6 @@ public: | |||||||
| 		std::string filename; | 		std::string filename; | ||||||
| 		langutil::EVMVersion evmVersion; | 		langutil::EVMVersion evmVersion; | ||||||
| 		std::vector<boost::filesystem::path> vmPaths; | 		std::vector<boost::filesystem::path> vmPaths; | ||||||
| 		bool enforceCompileViaYul = false; |  | ||||||
| 		bool enforceCompileToEwasm = false; | 		bool enforceCompileToEwasm = false; | ||||||
| 		bool enforceGasCost = false; | 		bool enforceGasCost = false; | ||||||
| 		u256 enforceGasCostMinValue; | 		u256 enforceGasCostMinValue; | ||||||
|  | |||||||
| @ -133,7 +133,6 @@ int registerTests( | |||||||
| 	boost::unit_test::test_suite& _suite, | 	boost::unit_test::test_suite& _suite, | ||||||
| 	boost::filesystem::path const& _basepath, | 	boost::filesystem::path const& _basepath, | ||||||
| 	boost::filesystem::path const& _path, | 	boost::filesystem::path const& _path, | ||||||
| 	bool _enforceViaYul, |  | ||||||
| 	bool _enforceCompileToEwasm, | 	bool _enforceCompileToEwasm, | ||||||
| 	vector<string> const& _labels, | 	vector<string> const& _labels, | ||||||
| 	TestCase::TestCaseCreator _testCaseCreator, | 	TestCase::TestCaseCreator _testCaseCreator, | ||||||
| @ -146,7 +145,6 @@ int registerTests( | |||||||
| 		fullpath.string(), | 		fullpath.string(), | ||||||
| 		solidity::test::CommonOptions::get().evmVersion(), | 		solidity::test::CommonOptions::get().evmVersion(), | ||||||
| 		solidity::test::CommonOptions::get().vmPaths, | 		solidity::test::CommonOptions::get().vmPaths, | ||||||
| 		_enforceViaYul, |  | ||||||
| 		_enforceCompileToEwasm, | 		_enforceCompileToEwasm, | ||||||
| 		solidity::test::CommonOptions::get().enforceGasTest, | 		solidity::test::CommonOptions::get().enforceGasTest, | ||||||
| 		solidity::test::CommonOptions::get().enforceGasTestMinValue, | 		solidity::test::CommonOptions::get().enforceGasTestMinValue, | ||||||
| @ -165,7 +163,6 @@ int registerTests( | |||||||
| 				numTestsAdded += registerTests( | 				numTestsAdded += registerTests( | ||||||
| 					*sub_suite, | 					*sub_suite, | ||||||
| 					_basepath, _path / entry.path().filename(), | 					_basepath, _path / entry.path().filename(), | ||||||
| 					_enforceViaYul, |  | ||||||
| 					_enforceCompileToEwasm, | 					_enforceCompileToEwasm, | ||||||
| 					_labels, | 					_labels, | ||||||
| 					_testCaseCreator, | 					_testCaseCreator, | ||||||
| @ -271,7 +268,6 @@ test_suite* init_unit_test_suite(int /*argc*/, char* /*argv*/[]) | |||||||
| 				master, | 				master, | ||||||
| 				options.testPath / ts.path, | 				options.testPath / ts.path, | ||||||
| 				ts.subpath, | 				ts.subpath, | ||||||
| 				options.enforceViaYul, |  | ||||||
| 				options.enforceCompileToEwasm, | 				options.enforceCompileToEwasm, | ||||||
| 				ts.labels, | 				ts.labels, | ||||||
| 				ts.testCaseCreator, | 				ts.testCaseCreator, | ||||||
|  | |||||||
| @ -49,7 +49,6 @@ SemanticTest::SemanticTest( | |||||||
| 	string const& _filename, | 	string const& _filename, | ||||||
| 	langutil::EVMVersion _evmVersion, | 	langutil::EVMVersion _evmVersion, | ||||||
| 	vector<boost::filesystem::path> const& _vmPaths, | 	vector<boost::filesystem::path> const& _vmPaths, | ||||||
| 	bool _enforceViaYul, |  | ||||||
| 	bool _enforceCompileToEwasm, | 	bool _enforceCompileToEwasm, | ||||||
| 	bool _enforceGasCost, | 	bool _enforceGasCost, | ||||||
| 	u256 _enforceGasCostMinValue | 	u256 _enforceGasCostMinValue | ||||||
| @ -60,27 +59,32 @@ SemanticTest::SemanticTest( | |||||||
| 	m_lineOffset(m_reader.lineNumber()), | 	m_lineOffset(m_reader.lineNumber()), | ||||||
| 	m_builtins(makeBuiltins()), | 	m_builtins(makeBuiltins()), | ||||||
| 	m_sideEffectHooks(makeSideEffectHooks()), | 	m_sideEffectHooks(makeSideEffectHooks()), | ||||||
| 	m_enforceViaYul(_enforceViaYul), |  | ||||||
| 	m_enforceCompileToEwasm(_enforceCompileToEwasm), | 	m_enforceCompileToEwasm(_enforceCompileToEwasm), | ||||||
| 	m_enforceGasCost(_enforceGasCost), | 	m_enforceGasCost(_enforceGasCost), | ||||||
| 	m_enforceGasCostMinValue(move(_enforceGasCostMinValue)) | 	m_enforceGasCostMinValue(move(_enforceGasCostMinValue)) | ||||||
| { | { | ||||||
| 	static set<string> const compileViaYulAllowedValues{"also", "true", "false", "default"}; | 	static set<string> const compileViaYulAllowedValues{"also", "true", "false"}; | ||||||
| 	static set<string> const yulRunTriggers{"also", "true"}; | 	static set<string> const yulRunTriggers{"also", "true"}; | ||||||
| 	static set<string> const legacyRunTriggers{"also", "false", "default"}; | 	static set<string> const legacyRunTriggers{"also", "false", "default"}; | ||||||
| 
 | 
 | ||||||
|  | 	m_runWithABIEncoderV1Only = m_reader.boolSetting("ABIEncoderV1Only", false); | ||||||
|  | 	if (m_runWithABIEncoderV1Only && !solidity::test::CommonOptions::get().useABIEncoderV1) | ||||||
|  | 		m_shouldRun = false; | ||||||
|  | 
 | ||||||
| 	string compileViaYul = m_reader.stringSetting("compileViaYul", "default"); | 	string compileViaYul = m_reader.stringSetting("compileViaYul", "default"); | ||||||
|  | 	if (m_runWithABIEncoderV1Only && compileViaYul != "false") | ||||||
|  | 		BOOST_THROW_EXCEPTION(runtime_error( | ||||||
|  | 			"ABIEncoderV1Only tests cannot be run via yul, " | ||||||
|  | 			"so they need to also specify ``compileViaYul: false``" | ||||||
|  | 		)); | ||||||
| 	if (!util::contains(compileViaYulAllowedValues, compileViaYul)) | 	if (!util::contains(compileViaYulAllowedValues, compileViaYul)) | ||||||
| 		BOOST_THROW_EXCEPTION(runtime_error("Invalid compileViaYul value: " + compileViaYul + ".")); | 		BOOST_THROW_EXCEPTION(runtime_error("Invalid compileViaYul value: " + compileViaYul + ".")); | ||||||
| 	m_testCaseWantsYulRun = util::contains(yulRunTriggers, compileViaYul); | 	m_testCaseWantsYulRun = util::contains(yulRunTriggers, compileViaYul); | ||||||
| 	m_testCaseWantsLegacyRun = util::contains(legacyRunTriggers, compileViaYul); | 	m_testCaseWantsLegacyRun = util::contains(legacyRunTriggers, compileViaYul); | ||||||
| 
 | 
 | ||||||
| 	// Do not enforce via yul and ewasm, if via yul was explicitly denied.
 | 	// Do not enforce ewasm, if via yul was explicitly denied.
 | ||||||
| 	if (compileViaYul == "false") | 	if (compileViaYul == "false") | ||||||
| 	{ |  | ||||||
| 		m_enforceViaYul = false; |  | ||||||
| 		m_enforceCompileToEwasm = false; | 		m_enforceCompileToEwasm = false; | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	string compileToEwasm = m_reader.stringSetting("compileToEwasm", "false"); | 	string compileToEwasm = m_reader.stringSetting("compileToEwasm", "false"); | ||||||
| 	if (compileToEwasm == "also") | 	if (compileToEwasm == "also") | ||||||
| @ -97,18 +101,6 @@ SemanticTest::SemanticTest( | |||||||
| 	if (m_testCaseWantsEwasmRun && !m_supportsEwasm) | 	if (m_testCaseWantsEwasmRun && !m_supportsEwasm) | ||||||
| 		m_testCaseWantsEwasmRun = false; | 		m_testCaseWantsEwasmRun = false; | ||||||
| 
 | 
 | ||||||
| 	m_runWithABIEncoderV1Only = m_reader.boolSetting("ABIEncoderV1Only", false); |  | ||||||
| 	if (m_runWithABIEncoderV1Only && !solidity::test::CommonOptions::get().useABIEncoderV1) |  | ||||||
| 		m_shouldRun = false; |  | ||||||
| 
 |  | ||||||
| 	// Sanity check
 |  | ||||||
| 	if (m_runWithABIEncoderV1Only && (compileViaYul == "true" || compileViaYul == "also")) |  | ||||||
| 		BOOST_THROW_EXCEPTION(runtime_error( |  | ||||||
| 			"ABIEncoderV1Only can not be used with compileViaYul=" + compileViaYul + |  | ||||||
| 			", set it to false or omit the flag. The compileViaYul setting ignores the abicoder pragma" |  | ||||||
| 			" and runs everything with ABICoder V2." |  | ||||||
| 		)); |  | ||||||
| 
 |  | ||||||
| 	auto revertStrings = revertStringsFromString(m_reader.stringSetting("revertStrings", "default")); | 	auto revertStrings = revertStringsFromString(m_reader.stringSetting("revertStrings", "default")); | ||||||
| 	soltestAssert(revertStrings, "Invalid revertStrings setting."); | 	soltestAssert(revertStrings, "Invalid revertStrings setting."); | ||||||
| 	m_revertStrings = revertStrings.value(); | 	m_revertStrings = revertStrings.value(); | ||||||
| @ -307,7 +299,7 @@ TestCase::TestResult SemanticTest::run(ostream& _stream, string const& _linePref | |||||||
| 	if (m_testCaseWantsLegacyRun) | 	if (m_testCaseWantsLegacyRun) | ||||||
| 		result = runTest(_stream, _linePrefix, _formatted, false, false); | 		result = runTest(_stream, _linePrefix, _formatted, false, false); | ||||||
| 
 | 
 | ||||||
| 	if ((m_testCaseWantsYulRun || m_enforceViaYul) && result == TestResult::Success) | 	if (m_testCaseWantsYulRun && result == TestResult::Success) | ||||||
| 		result = runTest(_stream, _linePrefix, _formatted, true, false); | 		result = runTest(_stream, _linePrefix, _formatted, true, false); | ||||||
| 
 | 
 | ||||||
| 	if ((m_testCaseWantsEwasmRun || m_enforceCompileToEwasm) && result == TestResult::Success) | 	if ((m_testCaseWantsEwasmRun || m_enforceCompileToEwasm) && result == TestResult::Success) | ||||||
|  | |||||||
| @ -52,7 +52,6 @@ public: | |||||||
| 			_options.filename, | 			_options.filename, | ||||||
| 			_options.evmVersion, | 			_options.evmVersion, | ||||||
| 			_options.vmPaths, | 			_options.vmPaths, | ||||||
| 			_options.enforceCompileViaYul, |  | ||||||
| 			_options.enforceCompileToEwasm, | 			_options.enforceCompileToEwasm, | ||||||
| 			_options.enforceGasCost, | 			_options.enforceGasCost, | ||||||
| 			_options.enforceGasCostMinValue | 			_options.enforceGasCostMinValue | ||||||
| @ -63,7 +62,6 @@ public: | |||||||
| 		std::string const& _filename, | 		std::string const& _filename, | ||||||
| 		langutil::EVMVersion _evmVersion, | 		langutil::EVMVersion _evmVersion, | ||||||
| 		std::vector<boost::filesystem::path> const& _vmPaths, | 		std::vector<boost::filesystem::path> const& _vmPaths, | ||||||
| 		bool _enforceViaYul = false, |  | ||||||
| 		bool _enforceCompileToEwasm = false, | 		bool _enforceCompileToEwasm = false, | ||||||
| 		bool _enforceGasCost = false, | 		bool _enforceGasCost = false, | ||||||
| 		u256 _enforceGasCostMinValue = 100000 | 		u256 _enforceGasCostMinValue = 100000 | ||||||
| @ -97,10 +95,9 @@ private: | |||||||
| 	std::vector<TestFunctionCall> m_tests; | 	std::vector<TestFunctionCall> m_tests; | ||||||
| 	std::map<std::string, Builtin> const m_builtins; | 	std::map<std::string, Builtin> const m_builtins; | ||||||
| 	std::vector<SideEffectHook> const m_sideEffectHooks; | 	std::vector<SideEffectHook> const m_sideEffectHooks; | ||||||
| 	bool m_testCaseWantsYulRun = false; | 	bool m_testCaseWantsYulRun = true; | ||||||
| 	bool m_testCaseWantsEwasmRun = false; | 	bool m_testCaseWantsEwasmRun = false; | ||||||
| 	bool m_testCaseWantsLegacyRun = true; | 	bool m_testCaseWantsLegacyRun = true; | ||||||
| 	bool m_enforceViaYul = false; |  | ||||||
| 	bool m_enforceCompileToEwasm = false; | 	bool m_enforceCompileToEwasm = false; | ||||||
| 	bool m_runWithABIEncoderV1Only = false; | 	bool m_runWithABIEncoderV1Only = false; | ||||||
| 	bool m_allowNonExistingFunctions = false; | 	bool m_allowNonExistingFunctions = false; | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(bool): true -> true | // f(bool): true -> true | ||||||
| // f(bool): false -> false | // f(bool): false -> false | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(uint16,int16,address,bytes3,bool): 1, 2, 3, "a", true -> 1, 2, 3, "a", true | // f(uint16,int16,address,bytes3,bool): 1, 2, 3, "a", true -> 1, 2, 3, "a", true | ||||||
| // f(uint16,int16,address,bytes3,bool): 0xffffff, 0x1ffff, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, "abcd", 1 -> 0xffff, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, 0xffffffffffffffffffffffffffffffffffffffff, "abc", true | // f(uint16,int16,address,bytes3,bool): 0xffffff, 0x1ffff, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, "abcd", 1 -> 0xffff, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, 0xffffffffffffffffffffffffffffffffffffffff, "abc", true | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(uint8): 0 -> 0 | // f(uint8): 0 -> 0 | ||||||
| // f(uint8): 1 -> 1 | // f(uint8): 1 -> 1 | ||||||
|  | |||||||
| @ -8,5 +8,6 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f() -> 0x40, 0xa0, 0x40, 0x20, 0x0, 0x0 | // f() -> 0x40, 0xa0, 0x40, 0x20, 0x0, 0x0 | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(uint16,uint16): 65534, 0 -> 0xfffe | // f(uint16,uint16): 65534, 0 -> 0xfffe | ||||||
| // f(uint16,uint16): 65536, 0 -> 0x00 | // f(uint16,uint16): 65536, 0 -> 0x00 | ||||||
|  | |||||||
| @ -11,6 +11,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(bool): 0x0 -> 0x0 | // f(bool): 0x0 -> 0x0 | ||||||
| // f(bool): 0x1 -> 0x1 | // f(bool): 0x1 -> 0x1 | ||||||
|  | |||||||
| @ -13,6 +13,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(address): 0xffff1234567890123456789012345678901234567890 -> 0x0 # We input longer data on purpose.# | // f(address): 0xffff1234567890123456789012345678901234567890 -> 0x0 # We input longer data on purpose.# | ||||||
| // g(address): 0xffff1234567890123456789012345678901234567890 -> 0x0 | // g(address): 0xffff1234567890123456789012345678901234567890 -> 0x0 | ||||||
|  | |||||||
| @ -10,5 +10,6 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(bytes2,uint16): "abc", 0x40102 -> 0x0 # We input longer data on purpose. # | // f(bytes2,uint16): "abc", 0x40102 -> 0x0 # We input longer data on purpose. # | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(int8,uint8): 0x00, 0x03 -> 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe | // f(int8,uint8): 0x00, 0x03 -> 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe | ||||||
| // f(int8,uint8): 0x00, 0x04 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff | // f(int8,uint8): 0x00, 0x04 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff | ||||||
|  | |||||||
| @ -10,6 +10,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(uint8,uint8): 0x00, 0x04 -> 0x0f | // f(uint8,uint8): 0x00, 0x04 -> 0x0f | ||||||
| // f(uint8,uint8): 0x00, 0x1004 -> 0x0f | // f(uint8,uint8): 0x00, 0x1004 -> 0x0f | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(int16,uint16): 0xff99, 0x00 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99 | // f(int16,uint16): 0xff99, 0x00 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99 | ||||||
| // f(int16,uint16): 0xff99, 0x01 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc | // f(int16,uint16): 0xff99, 0x01 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(int32,uint32): 0xffffff99, 0x00 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99 | // f(int32,uint32): 0xffffff99, 0x00 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99 | ||||||
| // f(int32,uint32): 0xffffff99, 0x01 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc | // f(int32,uint32): 0xffffff99, 0x01 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ contract C { | |||||||
| } | } | ||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(int8,uint8): 0x99, 0x00 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99 | // f(int8,uint8): 0x99, 0x00 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99 | ||||||
| // f(int8,uint8): 0x99, 0x01 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc | // f(int8,uint8): 0x99, 0x01 -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc | ||||||
|  | |||||||
| @ -8,5 +8,6 @@ contract C { | |||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // revertStrings: debug | // revertStrings: debug | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // d(bytes): 0x20, 0x01, 0x0000000000000000000000000000000000000000000000000000000000000000 -> FAILURE, hex"08c379a0", 0x20, 18, "Calldata too short" | // d(bytes): 0x20, 0x01, 0x0000000000000000000000000000000000000000000000000000000000000000 -> FAILURE, hex"08c379a0", 0x20, 18, "Calldata too short" | ||||||
|  | |||||||
| @ -10,8 +10,8 @@ contract C { | |||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // compileViaYul: false |  | ||||||
| // revertStrings: debug | // revertStrings: debug | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f() -> FAILURE, hex"08c379a0", 0x20, 0 | // f() -> FAILURE, hex"08c379a0", 0x20, 0 | ||||||
| // g(string): 0x20, 0, "" -> FAILURE, hex"08c379a0", 0x20, 0 | // g(string): 0x20, 0, "" -> FAILURE, hex"08c379a0", 0x20, 0 | ||||||
|  | |||||||
| @ -9,5 +9,6 @@ contract C { | |||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // revertStrings: debug | // revertStrings: debug | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(uint8[]): 0x20, 2, 3, 3 -> FAILURE, hex"08c379a0", 0x20, 17, "Enum out of range" | // f(uint8[]): 0x20, 2, 3, 3 -> FAILURE, hex"08c379a0", 0x20, 17, "Enum out of range" | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ contract C { | |||||||
| // ==== | // ==== | ||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
| // compileViaYul: false |  | ||||||
| // revertStrings: debug | // revertStrings: debug | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // t(uint256) -> FAILURE, hex"08c379a0", 0x20, 0x12, "Calldata too short" | // t(uint256) -> FAILURE, hex"08c379a0", 0x20, 0x12, "Calldata too short" | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ contract C { | |||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // revertStrings: debug | // revertStrings: debug | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // d(bytes): 0x20, 0x20, 0x0000000000000000000000000000000000000000000000000000000000000000 -> 0 | // d(bytes): 0x20, 0x20, 0x0000000000000000000000000000000000000000000000000000000000000000 -> 0 | ||||||
| // d(bytes): 0x100, 0x20, 0x0000000000000000000000000000000000000000000000000000000000000000 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI calldata decoding: invalid h", "ead pointer" | // d(bytes): 0x100, 0x20, 0x0000000000000000000000000000000000000000000000000000000000000000 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI calldata decoding: invalid h", "ead pointer" | ||||||
|  | |||||||
| @ -16,6 +16,7 @@ contract C { | |||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // revertStrings: debug | // revertStrings: debug | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // f(uint256,uint256,uint256): 0, 0x200, 0x60 -> FAILURE, hex"08c379a0", 0x20, 39, "ABI memory decoding: invalid dat", "a start" | // f(uint256,uint256,uint256): 0, 0x200, 0x60 -> FAILURE, hex"08c379a0", 0x20, 39, "ABI memory decoding: invalid dat", "a start" | ||||||
| // f(uint256,uint256,uint256): 0, 0x20, 0x60 -> FAILURE, hex"08c379a0", 0x20, 40, "ABI memory decoding: invalid dat", "a length" | // f(uint256,uint256,uint256): 0, 0x20, 0x60 -> FAILURE, hex"08c379a0", 0x20, 40, "ABI memory decoding: invalid dat", "a length" | ||||||
|  | |||||||
| @ -12,6 +12,7 @@ contract test { | |||||||
| // ==== | // ==== | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // table(uint8): 0 -> 0 | // table(uint8): 0 -> 0 | ||||||
| // table(uint8): 0x01 -> 0 | // table(uint8): 0x01 -> 0 | ||||||
|  | |||||||
| @ -20,6 +20,7 @@ contract test { | |||||||
| // ==== | // ==== | ||||||
| // EVMVersion: >=byzantium | // EVMVersion: >=byzantium | ||||||
| // ABIEncoderV1Only: true | // ABIEncoderV1Only: true | ||||||
|  | // compileViaYul: false | ||||||
| // ---- | // ---- | ||||||
| // library: L | // library: L | ||||||
| // get(uint8): 0 -> 0 | // get(uint8): 0 -> 0 | ||||||
|  | |||||||
| @ -59,7 +59,6 @@ std::string editorPath() | |||||||
| IsolTestOptions::IsolTestOptions(): | IsolTestOptions::IsolTestOptions(): | ||||||
| 	CommonOptions(description) | 	CommonOptions(description) | ||||||
| { | { | ||||||
| 	enforceViaYul = true; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void IsolTestOptions::addOptions() | void IsolTestOptions::addOptions() | ||||||
|  | |||||||
| @ -160,7 +160,6 @@ TestTool::Result TestTool::process() | |||||||
| 				m_path.string(), | 				m_path.string(), | ||||||
| 				m_options.evmVersion(), | 				m_options.evmVersion(), | ||||||
| 				m_options.vmPaths, | 				m_options.vmPaths, | ||||||
| 				m_options.enforceViaYul, |  | ||||||
| 				m_options.enforceCompileToEwasm, | 				m_options.enforceCompileToEwasm, | ||||||
| 				m_options.enforceGasTest, | 				m_options.enforceGasTest, | ||||||
| 				m_options.enforceGasTestMinValue | 				m_options.enforceGasTestMinValue | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user