diff --git a/test/ref/ethereum/bin/mm1/ERC20Interface.bin b/test/ref/ethereum/bin/mm1/ERC20Interface.bin new file mode 100755 index 00000000..e69de29b diff --git a/test/ref/ethereum/bin/mm1/Owned.bin b/test/ref/ethereum/bin/mm1/Owned.bin new file mode 100755 index 00000000..c5f8926c --- /dev/null +++ b/test/ref/ethereum/bin/mm1/Owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101e1806100326000396000f3fe608060405234801561001057600080fd5b5060043610610068577c0100000000000000000000000000000000000000000000000000000000600035046379ba5097811461006d5780638da5cb5b14610077578063d4ee1d901461009b578063f2fde38b146100a3575b600080fd5b6100756100c9565b005b61007f610151565b60408051600160a060020a039092168252519081900360200190f35b61007f610160565b610075600480360360208110156100b957600080fd5b5035600160a060020a031661016f565b600154600160a060020a031633146100e057600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b600054600160a060020a0316331461018657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a72305820e7f664519bd1791f866d95a52ea79ff5ee25c0090774fb96a5426dad45089cdc0029 \ No newline at end of file diff --git a/test/ref/ethereum/bin/mm1/SafeMath.bin b/test/ref/ethereum/bin/mm1/SafeMath.bin new file mode 100755 index 00000000..0869fe4e --- /dev/null +++ b/test/ref/ethereum/bin/mm1/SafeMath.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506101a8806100206000396000f3fe608060405234801561001057600080fd5b5060043610610068577c01000000000000000000000000000000000000000000000000000000006000350463a293d1e8811461006d578063b5931f7c146100a2578063d05c78da146100c5578063e6cb9013146100e8575b600080fd5b6100906004803603604081101561008357600080fd5b508035906020013561010b565b60408051918252519081900360200190f35b610090600480360360408110156100b857600080fd5b5080359060200135610120565b610090600480360360408110156100db57600080fd5b5080359060200135610141565b610090600480360360408110156100fe57600080fd5b508035906020013561016c565b60008282111561011a57600080fd5b50900390565b600080821161012e57600080fd5b818381151561013957fe5b049392505050565b81810282158061015b575081838281151561015857fe5b04145b151561016657600080fd5b92915050565b8181018281101561016657600080fdfea165627a7a723058200ba26a79dc73f8668c347ba0864d0abd8f0735855f58b4d26dbe3d1ed03d68120029 \ No newline at end of file diff --git a/test/ref/ethereum/bin/mm1/Token.bin b/test/ref/ethereum/bin/mm1/Token.bin new file mode 100755 index 00000000..169863c9 --- /dev/null +++ b/test/ref/ethereum/bin/mm1/Token.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556040805180820190915260038082527f4d4d31000000000000000000000000000000000000000000000000000000000060209092019182526100679160029161014a565b5060408051808201909152600d8082527f4d4d47656e20546f6b656e20310000000000000000000000000000000000000060209092019182526100ac9160039161014a565b506004805460ff191660121790556a52b7d2dcc80cd2e4000000600581905572a329c0648769a73afac7f9381e08fb43dbea726000818152600660209081527f83c15b9796d28cef5540f5a6b1b5d5fd40dfaff971c603dacfb5418f44d0d21b8490556040805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36101e5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061018b57805160ff19168380011785556101b8565b828001600101855582156101b8579182015b828111156101b857825182559160200191906001019061019d565b506101c49291506101c8565b5090565b6101e291905b808211156101c457600081556001016101ce565b90565b6109c1806101f46000396000f3fe608060405234801561001057600080fd5b506004361061013e576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100ca578063d4ee1d901161008e578063d4ee1d9014610367578063dc39d06d1461036f578063dd62ed3e1461039b578063e6cb9013146103c9578063f2fde38b146103ec5761013e565b806395d89b41146102ca578063a293d1e8146102d2578063a9059cbb146102f5578063b5931f7c14610321578063d05c78da146103445761013e565b8063313ce56711610111578063313ce567146102505780633eaaf86b1461026e57806370a082311461027657806379ba50971461029c5780638da5cb5b146102a65761013e565b806306fdde0314610143578063095ea7b3146101c057806318160ddd1461020057806323b872dd1461021a575b600080fd5b61014b610412565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018557818101518382015260200161016d565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ec600480360360408110156101d657600080fd5b50600160a060020a0381351690602001356104a0565b604080519115158252519081900360200190f35b610208610507565b60408051918252519081900360200190f35b6101ec6004803603606081101561023057600080fd5b50600160a060020a03813581169160208101359091169060400135610539565b610258610632565b6040805160ff9092168252519081900360200190f35b61020861063b565b6102086004803603602081101561028c57600080fd5b5035600160a060020a0316610641565b6102a461065c565b005b6102ae6106e4565b60408051600160a060020a039092168252519081900360200190f35b61014b6106f3565b610208600480360360408110156102e857600080fd5b508035906020013561074b565b6101ec6004803603604081101561030b57600080fd5b50600160a060020a038135169060200135610760565b6102086004803603604081101561033757600080fd5b5080359060200135610804565b6102086004803603604081101561035a57600080fd5b5080359060200135610825565b6102ae61084a565b6101ec6004803603604081101561038557600080fd5b50600160a060020a038135169060200135610859565b610208600480360360408110156103b157600080fd5b50600160a060020a0381358116916020013516610914565b610208600480360360408110156103df57600080fd5b508035906020013561093f565b6102a46004803603602081101561040257600080fd5b5035600160a060020a031661094f565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546005540390565b600160a060020a03831660009081526006602052604081205461055c908361074b565b600160a060020a0385166000908152600660209081526040808320939093556007815282822033835290522054610593908361074b565b600160a060020a0380861660009081526007602090815260408083203384528252808320949094559186168152600690915220546105d1908361093f565b600160a060020a0380851660008181526006602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60045460ff1681565b60055481565b600160a060020a031660009081526006602052604090205490565b600154600160a060020a0316331461067357600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b60008282111561075a57600080fd5b50900390565b3360009081526006602052604081205461077a908361074b565b3360009081526006602052604080822092909255600160a060020a038516815220546107a6908361093f565b600160a060020a0384166000818152600660209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600080821161081257600080fd5b818381151561081d57fe5b049392505050565b81810282158061083f575081838281151561083c57fe5b04145b151561050157600080fd5b600154600160a060020a031681565b60008054600160a060020a0316331461087157600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156108e157600080fd5b505af11580156108f5573d6000803e3d6000fd5b505050506040513d602081101561090b57600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b8181018281101561050157600080fd5b600054600160a060020a0316331461096657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a7230582082e6e237008aef7305305fbae7206a1a6508eb78d43336656d8385c57126204c0029 \ No newline at end of file diff --git a/test/ref/ethereum/bin/mm2/ERC20Interface.bin b/test/ref/ethereum/bin/mm2/ERC20Interface.bin new file mode 100755 index 00000000..e69de29b diff --git a/test/ref/ethereum/bin/mm2/Owned.bin b/test/ref/ethereum/bin/mm2/Owned.bin new file mode 100755 index 00000000..fca64580 --- /dev/null +++ b/test/ref/ethereum/bin/mm2/Owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101e1806100326000396000f3fe608060405234801561001057600080fd5b5060043610610068577c0100000000000000000000000000000000000000000000000000000000600035046379ba5097811461006d5780638da5cb5b14610077578063d4ee1d901461009b578063f2fde38b146100a3575b600080fd5b6100756100c9565b005b61007f610151565b60408051600160a060020a039092168252519081900360200190f35b61007f610160565b610075600480360360208110156100b957600080fd5b5035600160a060020a031661016f565b600154600160a060020a031633146100e057600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b600054600160a060020a0316331461018657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a723058205c423983189f5e4a8cef05984b44684791f408081e1c0c11db5d827d9aec51900029 \ No newline at end of file diff --git a/test/ref/ethereum/bin/mm2/SafeMath.bin b/test/ref/ethereum/bin/mm2/SafeMath.bin new file mode 100755 index 00000000..fba8467c --- /dev/null +++ b/test/ref/ethereum/bin/mm2/SafeMath.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506101a8806100206000396000f3fe608060405234801561001057600080fd5b5060043610610068577c01000000000000000000000000000000000000000000000000000000006000350463a293d1e8811461006d578063b5931f7c146100a2578063d05c78da146100c5578063e6cb9013146100e8575b600080fd5b6100906004803603604081101561008357600080fd5b508035906020013561010b565b60408051918252519081900360200190f35b610090600480360360408110156100b857600080fd5b5080359060200135610120565b610090600480360360408110156100db57600080fd5b5080359060200135610141565b610090600480360360408110156100fe57600080fd5b508035906020013561016c565b60008282111561011a57600080fd5b50900390565b600080821161012e57600080fd5b818381151561013957fe5b049392505050565b81810282158061015b575081838281151561015857fe5b04145b151561016657600080fd5b92915050565b8181018281101561016657600080fdfea165627a7a72305820eb50b147fd9c750227f1de52fa6c0f0287cea771f796a17e7058a0bb51246a6f0029 \ No newline at end of file diff --git a/test/ref/ethereum/bin/mm2/Token.bin b/test/ref/ethereum/bin/mm2/Token.bin new file mode 100755 index 00000000..da47aedf --- /dev/null +++ b/test/ref/ethereum/bin/mm2/Token.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556040805180820190915260038082527f4d4d320000000000000000000000000000000000000000000000000000000000602090920191825261006791600291610147565b5060408051808201909152600d8082527f4d4d47656e20546f6b656e20320000000000000000000000000000000000000060209092019182526100ac91600391610147565b506004805460ff1916600a179055670de0b6b3a7640000600581905572a329c0648769a73afac7f9381e08fb43dbea726000818152600660209081527f83c15b9796d28cef5540f5a6b1b5d5fd40dfaff971c603dacfb5418f44d0d21b8490556040805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36101e2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061018857805160ff19168380011785556101b5565b828001600101855582156101b5579182015b828111156101b557825182559160200191906001019061019a565b506101c19291506101c5565b5090565b6101df91905b808211156101c157600081556001016101cb565b90565b6109c1806101f16000396000f3fe608060405234801561001057600080fd5b506004361061013e576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100ca578063d4ee1d901161008e578063d4ee1d9014610367578063dc39d06d1461036f578063dd62ed3e1461039b578063e6cb9013146103c9578063f2fde38b146103ec5761013e565b806395d89b41146102ca578063a293d1e8146102d2578063a9059cbb146102f5578063b5931f7c14610321578063d05c78da146103445761013e565b8063313ce56711610111578063313ce567146102505780633eaaf86b1461026e57806370a082311461027657806379ba50971461029c5780638da5cb5b146102a65761013e565b806306fdde0314610143578063095ea7b3146101c057806318160ddd1461020057806323b872dd1461021a575b600080fd5b61014b610412565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018557818101518382015260200161016d565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ec600480360360408110156101d657600080fd5b50600160a060020a0381351690602001356104a0565b604080519115158252519081900360200190f35b610208610507565b60408051918252519081900360200190f35b6101ec6004803603606081101561023057600080fd5b50600160a060020a03813581169160208101359091169060400135610539565b610258610632565b6040805160ff9092168252519081900360200190f35b61020861063b565b6102086004803603602081101561028c57600080fd5b5035600160a060020a0316610641565b6102a461065c565b005b6102ae6106e4565b60408051600160a060020a039092168252519081900360200190f35b61014b6106f3565b610208600480360360408110156102e857600080fd5b508035906020013561074b565b6101ec6004803603604081101561030b57600080fd5b50600160a060020a038135169060200135610760565b6102086004803603604081101561033757600080fd5b5080359060200135610804565b6102086004803603604081101561035a57600080fd5b5080359060200135610825565b6102ae61084a565b6101ec6004803603604081101561038557600080fd5b50600160a060020a038135169060200135610859565b610208600480360360408110156103b157600080fd5b50600160a060020a0381358116916020013516610914565b610208600480360360408110156103df57600080fd5b508035906020013561093f565b6102a46004803603602081101561040257600080fd5b5035600160a060020a031661094f565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546005540390565b600160a060020a03831660009081526006602052604081205461055c908361074b565b600160a060020a0385166000908152600660209081526040808320939093556007815282822033835290522054610593908361074b565b600160a060020a0380861660009081526007602090815260408083203384528252808320949094559186168152600690915220546105d1908361093f565b600160a060020a0380851660008181526006602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60045460ff1681565b60055481565b600160a060020a031660009081526006602052604090205490565b600154600160a060020a0316331461067357600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b60008282111561075a57600080fd5b50900390565b3360009081526006602052604081205461077a908361074b565b3360009081526006602052604080822092909255600160a060020a038516815220546107a6908361093f565b600160a060020a0384166000818152600660209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600080821161081257600080fd5b818381151561081d57fe5b049392505050565b81810282158061083f575081838281151561083c57fe5b04145b151561050157600080fd5b600154600160a060020a031681565b60008054600160a060020a0316331461087157600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156108e157600080fd5b505af11580156108f5573d6000803e3d6000fd5b505050506040513d602081101561090b57600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b8181018281101561050157600080fd5b600054600160a060020a0316331461096657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a72305820867aa5742d594756c1fb613cb7ca7bce3f726136340f8ce08bd9b5c17a377a1f0029 \ No newline at end of file diff --git a/test/test.py b/test/test.py index 3a23d920..b9388af3 100755 --- a/test/test.py +++ b/test/test.py @@ -597,6 +597,7 @@ class TestSuiteRunner(object): from collections import OrderedDict self.rebuild_list = OrderedDict() self.gm = CmdGroupMgr() + self.repo_root = repo_root if opt.log: self.log_fd = open(log_file,'a') diff --git a/test/test_py_d/ts_ethdev.py b/test/test_py_d/ts_ethdev.py index 7640f29f..a79bdacc 100755 --- a/test/test_py_d/ts_ethdev.py +++ b/test/test_py_d/ts_ethdev.py @@ -46,19 +46,26 @@ parity_pid_fn = 'parity.pid' parity_key_fn = 'parity.devkey' # Token sends require varying amounts of gas, depending on compiler version -try: - cmd_out = run(['solc','--version'],stdout=PIPE).stdout.decode() - solc_ver = re.search(r'Version:\s*(.*)',cmd_out).group(1) -except: - solc_ver = '' # no solc on system - prompt for precompiled v0.5.3 contract files +def get_solc_ver(): + try: cp = run(['solc','--version'],stdout=PIPE) + except: return None -if re.match(r'\b0.5.1\b',solc_ver): # Raspbian Stretch + if cp.returncode: + return None + + line = cp.stdout.decode().splitlines()[1] + m = re.search(r'Version:\s*(\d+)\.(\d+)\.(\d+)',line) + return '.'.join(m.groups()) if m else None + +solc_ver = get_solc_ver() + +if solc_ver == '0.5.1': vbal1 = '1.2288337' vbal1a = 'TODO' vbal2 = '99.997085083' vbal3 = '1.23142165' vbal4 = '127.0287837' -elif solc_ver == '' or re.match(r'\b0.5.3\b',solc_ver): # Ubuntu Bionic +else: # 0.5.3 or precompiled 0.5.3 vbal1 = '1.2288487' vbal1a = '1.22627465' vbal2 = '99.997092733' @@ -133,6 +140,7 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared): networks = ('eth','etc') passthru_opts = ('coin',) tmpdir_nums = [22] + solc_vers = ('0.5.1','0.5.3') # 0.5.1: Raspbian Stretch, 0.5.3: Ubuntu Bionic cmd_group = ( ('setup', 'Ethereum Parity dev mode tests for coin {} (start parity)'.format(g.coin)), ('wallet_upgrade1', 'upgrading the tracking wallet (v1 -> v2)'), @@ -302,10 +310,16 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared): def setup(self): self.spawn('',msg_only=True) - if g.platform == 'win': - m1 = 'Please copy precompiled contract data to {d}/mm1 and {d}/mm2\n'.format(d=self.tmpdir) - m2 = '\nPress ENTER to continue: ' - my_raw_input(m1+m2) + if solc_ver in self.solc_vers: + imsg('Found solc version {}'.format(solc_ver)) + else: + imsg('Solc compiler {}. Using precompiled contract data'.format( + 'version {} not supported by test suite'.format(solc_ver) + if solc_ver else 'not found' )) + srcdir = os.path.join(self.tr.repo_root,'test','ref','ethereum','bin') + from shutil import copytree + for d in ('mm1','mm2'): + copytree(os.path.join(srcdir,d),os.path.join(self.tmpdir,d)) start_test_daemons(g.coin) return 'ok' @@ -535,15 +549,9 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared): def token_compile(self,token_data={}): odir = joinpath(self.tmpdir,token_data['symbol'].lower()) - if self.skip_for_win(): - try: - os.stat(os.path.join(odir,'Token.bin')) - except: - m ='Copy solc v0.5.3 contract data for token {} to directory {} and hit ENTER: ' - input(m.format(token_data['symbol'],odir)) - else: - msg('Using precompiled contract data in {}'.format(odir)) - return 'skip' + if not solc_ver: + imsg('Using precompiled contract data in {}'.format(odir)) + return 'skip' if os.path.exists(odir) else False self.spawn('',msg_only=True) cmd_args = ['--{}={}'.format(k,v) for k,v in list(token_data.items())] imsg("Compiling solidity token contract '{}' with 'solc'".format(token_data['symbol']))