Commit Graph

691 Commits

Author SHA1 Message Date
andri lim 7bdbf85a7a update tests log 2019-12-10 12:34:48 +02:00
andri lim 69072b8cf7 disable slow bc tests 2019-12-10 12:34:48 +02:00
andri lim 0f2be7c964 disable problematic tests 2019-12-10 12:34:48 +02:00
andri lim df21dd44cb fixes typo 2019-12-10 12:34:48 +02:00
andri lim 9596dbc267 activates blockchain test 2019-12-10 12:34:48 +02:00
andri lim 1ffb992674 multi root state trie implementation 2019-12-10 12:34:48 +02:00
andri lim 5c96cf8e87 enable EVM sha3_bigsize test on 32 bits 2019-12-10 12:34:14 +02:00
andri lim 3683ce2cbc
disable tests with huge memory consumption 2019-12-06 15:01:49 +07:00
andri lim d2b5e1a26d
use 'skipNothing' as default param to 'jsonTest' 2019-12-06 15:01:49 +07:00
andri lim 2057f88dba
fixes #421, each tests have their own skip table 2019-12-06 15:01:49 +07:00
kdeme 10f9f2c3bb Disable test randomStatetest159 2019-12-05 13:02:21 +01:00
andri lim 358c27c862
make test green, skip mysterious raising exception failed test 2019-12-05 07:30:11 +07:00
andri lim d944138e63
fixes indentation 2019-11-19 21:26:58 +07:00
andri lim 0d743dc468
fixes 'collectTouchedAccounts' for Istanbul 2019-11-19 16:14:36 +07:00
andri lim 6b053d8a89
skip failed tests 2019-11-19 13:12:13 +07:00
andri lim 19803bd685
skip incorrect and slow tests 2019-11-18 20:49:24 +07:00
andri lim dda26611c2
fixes bc and gst tester [skip ci] 2019-11-14 22:37:58 +07:00
andri lim f66f49168a
fix bc/gst tester for istanbul [skip ci] 2019-11-14 21:20:34 +07:00
andri lim d01edfdcac add istanbul tests fixtures 2019-11-14 10:21:04 +00:00
andri lim c4dcf5da30
reduce compiler warnings 2019-11-13 21:49:39 +07:00
andri lim b3cbf620d6 implement EIP-152 2019-11-12 15:51:48 +00:00
Ștefan Talpalaru d84e4810d5
unittest2 (parallelism disabled)
This is https://github.com/status-im/nimbus/pull/332 with parallelism
disabled, while some threadpool deadlock is being debugged.
2019-10-31 06:17:01 +01:00
andri lim 8a09e97d4d
add diagnostic message to test_difficulty.nim 2019-10-28 22:21:41 +07:00
andri lim a45792cede
add diagnostic message to all_tests.nim 2019-10-28 22:21:40 +07:00
andri lim b3a7adcedd
fixes #404 2019-10-17 15:30:15 +07:00
andri lim a65ab2763e fixes generateHeaderFromParentHeader 2019-09-26 12:33:43 +03:00
andri lim 12960c27ce fixes coinBase suicide 2019-09-26 12:33:43 +03:00
andri lim e63a43ee9f fixes getAncestorHash 2019-09-26 12:33:43 +03:00
andri lim 4c48244cbb fixes debugger 2019-09-26 12:33:43 +03:00
andri lim b189e1604f fixes gasLimitBounds 2019-09-26 12:33:43 +03:00
andri lim ed01201233 fixes fork choice 2019-09-26 12:33:43 +03:00
andri lim 10fb81b781 fixes verifyStateDB nonce conversion 2019-09-26 12:33:43 +03:00
andri lim a2a8e81265 fixes difficulty validation 2019-09-26 12:33:43 +03:00
andri lim 58a7d5af83 fixes checkPOW of validateSeal 2019-09-26 12:33:43 +03:00
andri lim 7a07737855 implement bc_test debugger 2019-09-26 12:33:43 +03:00
andri lim bf23bd8d84 fixes wrongNumber bug 2019-09-26 12:33:43 +03:00
andri lim 5c7adaae3b implement pow validation 2019-09-26 12:33:43 +03:00
andri lim b5266a7412 fix wrong gasUsed 2019-09-26 12:33:43 +03:00
andri lim 85b21721b0 pass more tests 2019-09-26 12:33:43 +03:00
andri lim 9cba2c9cc0 fix validateGasLimit 2019-09-26 12:33:43 +03:00
andri lim f2b5f9b77f skip more failing test 2019-09-26 12:33:43 +03:00
andri lim 3ad465d169 implement block validation and friends 2019-09-26 12:33:43 +03:00
andri lim af49151bc6 deals with invalid blocks 2019-09-26 12:33:43 +03:00
andri lim 49a6f84ac9 activates verifyStateDB 2019-09-26 12:33:43 +03:00
andri lim 7c65b8a2b2 implement validate block unchanged 2019-09-26 12:33:43 +03:00
andri lim 594c3b8d08 some cleanup 2019-09-26 12:33:43 +03:00
andri lim e61e530b9f skip failing test 2019-09-26 12:33:43 +03:00
andri lim 890c6a9802 add command line config 2019-09-26 12:33:43 +03:00
andri lim 12ea5247d6 execute transactions 2019-09-26 12:33:43 +03:00
andri lim 9485db920d prepare vmstate for block validation 2019-09-26 12:33:43 +03:00
andri lim 33c2848fd5 implement vmconfig for bc test 2019-09-26 12:33:43 +03:00
andri lim 578c2bd857
improve cliBuilder macro readability 2019-09-24 10:29:41 +07:00
andri lim d2d5661e11
fix comment 2019-09-22 16:57:19 +07:00
andri lim 321f13dc19
attempt to add simple cli to all_tests 2019-09-21 12:45:23 +07:00
andri lim 081baa6da7 parsing complete 2019-09-04 19:05:21 +02:00
andri lim c5d07fc07f implement bc test fixtures parser 2019-09-04 19:05:21 +02:00
andri lim e2c01f46ab
skip failing test 2019-09-03 10:45:48 +07:00
andri lim 31ed8fcf83
refine transaction validation 2019-08-29 20:44:54 +07:00
andri lim 230fb4b06d
activates test 2019-08-29 19:57:01 +07:00
andri lim 7c094a2a3e
initial implementation of transaction test 2019-08-29 19:54:38 +07:00
andri lim 1d9760eb66
activates difficulty_test 2019-08-26 21:40:27 +07:00
andri lim 0bad132387
add diffficulty test 2019-08-26 21:26:57 +07:00
Ștefan Talpalaru 2fc238f35f
Merge branch 'add_trace_switch' of github.com:jangko/nimbus into jangko-add_trace_switch 2019-08-26 16:22:45 +02:00
Ștefan Talpalaru 4cfff44748
Merge branch 'simplify_calldataload' of github.com:jangko/nimbus into jangko-simplify_calldataload 2019-08-26 16:20:38 +02:00
andri lim bcb7e78a77
add more tests fixtures 2019-08-25 08:38:10 +07:00
andri lim e6187aa5f3
uncomment commented test case in test_op_custom.nim 2019-08-20 18:08:09 +07:00
andri lim ccd8835b4d
fixes and activates test for 'calldataload' 2019-08-20 17:11:17 +07:00
andri lim e05108b7e4
add 'trace' switch to tester configuration 2019-08-20 14:17:22 +07:00
andri lim 7d9aa54b2c add 1 OOM 32bit GST to skip list 2019-08-19 20:41:27 +03:00
andri lim fe45235d76 add 4 failed 32bit GST to skip list 2019-08-19 20:41:27 +03:00
andri lim 1ed6322c2f remove 55 32bit GST from skip list 2019-08-19 20:41:27 +03:00
andri lim e675182506 fixes 32 bit problem in test_helpers.nim and transaction_tracer.nim 2019-08-19 20:41:27 +03:00
andri lim 742f53f5e9 reactivates GST 2019-08-19 20:41:27 +03:00
andri lim fc6dcfcfa5
Merge pull request #375 from status-im/addBlockTest
Add PersistBlockTest for block 1352922, fixes #363
2019-08-15 07:52:00 +07:00
kdeme b4b096ef5e Add PersistBlockTest for block 1352922, fixes #363 2019-08-14 20:56:57 +02:00
andri lim b1febeabb7
fixes #64 test_vm_json now support all forks 2019-08-14 23:31:30 +07:00
andri lim b2bf979c57 remove tests/test_opcode.nim 2019-08-13 17:48:56 +03:00
andri lim 74d68ea425 fixes #72, simplify SDIV implementation 2019-08-13 17:48:25 +03:00
Jacek Sieka 2763bd0dd5
std_shims -> stew 2019-07-07 12:12:01 +02:00
kdeme f34d8d71db
Use await instead of waitFor in RPC tests 2019-05-16 22:20:17 +02:00
andri lim a0126a7458 add byzantium block validation test 2019-05-15 17:03:36 +03:00
andri lim 58c4e16365 add some comments 2019-05-13 10:26:28 +03:00
andri lim 077fbe6b73 modexp cleanup 2019-05-13 10:26:28 +03:00
andri lim a86979eaa3 fix create2 gasCost 2019-05-13 10:26:28 +03:00
andri lim e51725d13b fix extCodeHash 2019-05-13 10:26:28 +03:00
andri lim f08eedbce3 fix create2 nonce increment 2019-05-13 10:26:28 +03:00
andri lim 51edbe6390 fix shr and shl gasCost 2019-05-13 10:26:28 +03:00
andri lim 956a51c2ed activates constantinople general state test 2019-05-13 10:26:28 +03:00
andri lim 480a3d2cab implement constantinople bitwise opcode test 2019-05-13 10:26:28 +03:00
andri lim 2f08a6bc0e fix byzantium contract creation OOG 2019-05-13 10:26:28 +03:00
andri lim fd8a649df3 fix RevertInCreateInInit problem 2019-05-13 10:26:28 +03:00
andri lim 86d5653a4c make test green 2019-05-13 10:26:28 +03:00
andri lim b34ad8b507 fix collectTouchedAccounts 2019-05-13 10:26:28 +03:00
andri lim f809a864b1 fix calcMemSize bug 2019-05-13 10:26:28 +03:00
andri lim 213fb3b971 constantinople's skeletal implementation 2019-05-13 10:26:28 +03:00
Bruno Škvorc 023b90fde8
Merge pull request #286 from kdeme/feature/whisper-rpc
[WIP] Initial implementation of Whisper RPC
2019-05-01 23:00:54 +02:00
andri lim 8bc263a91f
update GST with Constantinople fixtures 2019-04-29 13:23:44 +07:00
kdeme 9de9741e3c
Fix more return values + minor improvements 2019-04-26 13:40:28 +02:00
kdeme 7ab84641d6 Fix, improve and activate rpc test 2019-04-26 13:38:50 +02:00
kdeme e8a997cf11 Fix return values (raise errors) for most of the calls + some minor TODOs 2019-04-26 13:38:50 +02:00
kdeme ce523550c0 Use directly the Whisper types instead of distinct strings, we test for string in fromJson anyhow 2019-04-26 13:38:50 +02:00
kdeme 1df3c7202b Fix & add Whisper RPC tests + add isValidHexData with length check 2019-04-26 13:38:50 +02:00
kdeme 65908d5359 Add shh_generateSymKeyFromPassword implementation 2019-04-26 13:38:50 +02:00
kdeme d43f20c65a Initial implementation of Whisper RPC 2019-04-26 13:38:50 +02:00
andri lim cee0a38278
add some comment 2019-04-26 07:31:18 +07:00
andri lim 3ccd1b1ee9
fix rangeToPadded, GST +5 2019-04-26 07:31:17 +07:00
andri lim fd7c447f18
fix modexp output, GST +53 2019-04-26 07:31:16 +07:00
andri lim 89402af114
fix modexp gasCost, GST +6 2019-04-26 07:31:16 +07:00
andri lim 8ecbce6d0c
fix gst state clearing, GST +5 2019-04-26 07:31:15 +07:00
andri lim 03ea1c5a85
fix ecRecover precompiles, GST +1 2019-04-26 07:31:15 +07:00
andri lim ba47d3c997
fix returnDataCopy gasCost, GST +11 2019-04-26 07:31:14 +07:00
andri lim 7b47cb6b24
various fixes, GST +6 2019-04-26 07:31:14 +07:00
andri lim 90e3a4320a
fix revert opcode at first level computation 2019-04-26 07:31:13 +07:00
andri lim c57295da0b
fix precompiles error handling, GST +262 2019-04-26 07:31:13 +07:00
andri lim ceb159f5fe
fix static context check in Call and Create, GST +52 2019-04-26 07:31:12 +07:00
andri lim 605618d9ee
add static context check, GST +94 -28 2019-04-26 07:31:12 +07:00
andri lim 6295e6a7e4
fix touched miner problem, GST +25 2019-04-26 07:31:11 +07:00
andri lim be5cce6c71
fix static call addr, GST +93 -16 2019-04-26 07:31:11 +07:00
andri lim fd8f774386
activates byzantium gst test, GST +153 2019-04-26 07:31:11 +07:00
Ștefan Talpalaru 9011b06037
Merge branch 'fix_spurious_dragon' of github.com:jangko/nimbus into jangko-fix_spurious_dragon 2019-04-19 13:03:05 +02:00
andri lim 1383a87e10
make test green 2019-04-18 16:10:31 +07:00
andri lim f3c740498c
implement EIP155 tx.getSender 2019-04-18 15:33:17 +07:00
andri lim e658ac0a30
add block 2.675.000 test data 2019-04-18 13:49:06 +07:00
andri lim ec918602bc
fix accountsForDeletion iterator, GST +2 2019-04-18 13:23:04 +07:00
andri lim 1883472104
fix evm msg contract creation, GST +3 2019-04-18 12:42:37 +07:00
andri lim f7338b7d76
include miner address in touchedAccounts, GST +7 2019-04-18 11:12:21 +07:00
andri lim c07f01a74d
fix collectTouchedAccounts: msg.destination -> msg.storageAddress, GST +4 2019-04-18 10:22:48 +07:00
andri lim 7c134b481e
split state clearing in execComputation to processTransaction, GST +5 2019-04-18 08:27:55 +07:00
andri lim 03435c7beb
gst and processTransaction unification 2019-04-18 07:56:57 +07:00
andri lim 6cf0cdf23a
implement EIP161 nonce incrementation, GST +65 2019-04-17 12:15:15 +07:00
andri lim 85d9bd3958
implement EIP158, GST -4 +81 2019-04-17 11:03:52 +07:00
Ștefan Talpalaru d4aff04cbd
NAT port mapping 2019-04-17 03:56:28 +02:00
andri lim 81953d8108
activates EIP158 tests, GST -152 2019-04-15 22:09:46 +07:00
Ștefan Talpalaru 8800cb5fe5
Merge branch 'fix_244' of github.com:jangko/nimbus into jangko-fix_244 2019-04-15 14:05:18 +02:00
andri lim f7845034dd
update test data 2019-04-15 17:54:45 +07:00
andri lim c852199481
add test data 2019-04-15 11:17:24 +07:00
andri lim ea7d944aad
update test log, GST +3 2019-04-15 11:15:15 +07:00
Ștefan Talpalaru 60c57995c5
enable Chronicles colors on Windows 2019-04-12 14:58:12 +02:00
andri lim d039b88f48
activates Tangerine GST, GST +12 2019-04-08 08:06:40 +07:00
andri lim 847ab79082
add dao test data 2019-04-07 06:55:25 +07:00
andri lim b8133e9f1c
add test data 2019-04-06 21:27:06 +07:00
andri lim f97bd57aa2
GST +52 2019-04-04 17:25:10 +07:00
andri lim 60df7ea5e2
update test data 2019-04-04 12:13:33 +07:00
andri lim 4c0ba876ef
move exception handler deeper in the EVM 2019-04-04 10:50:25 +07:00
andri lim e8f6eeca43
update test data 2019-04-02 13:23:16 +07:00
andri lim 26b40f41e3
fix precompiles selection, GST +5 2019-04-02 13:11:00 +07:00
andri lim 62c1e668a9
fix tx_e1c174e2 problem, GST +1 2019-03-28 19:05:07 +07:00
Ștefan Talpalaru 59e1b3fa6b
delete trailing spaces 2019-03-21 15:35:25 +01:00
Ștefan Talpalaru 0c156a5030
Merge branch 'upgrade_gst' of https://github.com/jangko/nimbus into jangko-upgrade_gst 2019-03-21 15:31:55 +01:00
andri lim 51397537b7
add indexed test config to gst 2019-03-21 16:44:31 +07:00
andri lim cd1778d498
implement post error check in test_vm_json 2019-03-21 09:58:04 +07:00
andri lim 17c95f3f82
fix test_vm_json 2019-03-21 09:50:58 +07:00
Ștefan Talpalaru f62601e844
Merge branch 'non_recursive_evm' of github.com:jangko/nimbus into jangko-non_recursive_evm 2019-03-20 14:43:50 +01:00
andri lim 268695003b
fix writePaddedResult regression 2019-03-19 16:43:38 +07:00
andri lim 3f62d6638b
put doAssert(false) at configuration cmdEnd 2019-03-19 08:35:37 +07:00
andri lim 32b1de082e
GST +2 2019-03-18 21:23:36 +07:00
andri lim 8688706d96
fix random state test 101 2019-03-18 21:18:04 +07:00
andri lim f518de20fc
fix miner suicide problem, GST +2 2019-03-18 20:29:07 +07:00
andri lim 655c6bcaae
GST +3 2019-03-18 19:43:54 +07:00
andri lim 7198ce2d05
fix ecrecover bad V, GST +1 2019-03-18 19:28:42 +07:00
andri lim aed0db2d03
fix DelegateCall sender address, GST +37 2019-03-18 18:45:43 +07:00
andri lim 36fb75d042
fix DelegateCall gasCost, GST +6 2019-03-18 17:24:25 +07:00
andri lim a7c6531f08
fix block gaslimit problem, GST +70 2019-03-18 14:35:52 +07:00
andri lim 739e20253a
fix invalid opcodes bug, GST +1 2019-03-18 13:44:22 +07:00
andri lim 4f6f564626
fix regression 2019-03-18 13:13:16 +07:00
andri lim cd765bf452
fix create contract address collision, GST +1 2019-03-18 12:48:32 +07:00
andri lim 4383831772
separate Frontier and Homestead opcode dispatcher 2019-03-18 11:27:32 +07:00
andri lim b4720bce26
make test green 2019-03-18 10:52:18 +07:00
andri lim 0b43b143b1
add config to gst 2019-03-18 10:05:24 +07:00
andri lim 31e8b3d7ed
activates Frontier fork in GST, +125 -57 2019-03-18 09:15:37 +07:00
andri lim 2bd5c99b27
add debugging caps to gst 2019-03-18 08:55:02 +07:00
Ștefan Talpalaru 9f0c945336 CI: use a release build for the test suite (#278)
* CI: use a release build for the test suite

Makefile: the "testsuite" target is no longer needed

* rename EXTRA_NIM_PARAMS to NIMFLAGS
2019-03-16 18:54:30 -06:00
andri lim 90b7e906b4
GST +3 2019-03-16 23:08:41 +07:00
andri lim d0822c26d1
fix callcode insufficient funds, GST +6 2019-03-16 22:54:24 +07:00
andri lim 990bc44c65
fix not enough gas, GST +5 2019-03-16 22:23:15 +07:00
andri lim 433ccba15f
fix writePaddedResult, GST +4 2019-03-16 21:42:06 +07:00
andri lim adb1286e28
fix create hash collision, GST +1 2019-03-16 12:13:57 +07:00
andri lim 3844bc9a11
faster gst helpers 2019-03-15 22:34:05 +07:00
andri lim eb6e872dff
GST +17 2019-03-15 22:21:24 +07:00
Ștefan Talpalaru a67edd693a
assert() -> doAssert() 2019-03-13 22:36:54 +01:00
andri lim fee2a97b52 add problematic block tests 2019-03-13 15:49:54 +02:00
andri lim 9f0b78dc5a GST +3 2019-03-13 15:49:54 +02:00
andri lim b7f630df19 GST OK +1 2019-03-12 13:32:41 +02:00
andri lim 56f81ae821
add notable blocks into test 2019-03-11 20:18:28 +07:00
andri lim 44ec66d5c8
pass additional 11 GST 2019-03-11 19:03:30 +07:00
andri lim 571b93fd7a
pass additional 17 GST 2019-03-11 12:12:35 +07:00
andri lim e2311d798b
fix recurring symbol collision problem 2019-03-07 22:53:09 +07:00
andri lim fdf9e04108
initial contract call/create unification 2019-03-07 22:09:22 +07:00
andri lim 4c5eeac41e make test green 2019-03-04 11:56:50 +02:00
andri lim 38757c956d gst refactor: share the same tx.getSender with rest of Nimbus 2019-03-04 11:56:50 +02:00
andri lim 9ee3458dd4 add logs hash check to GST 2019-02-28 12:06:23 +02:00
andri lim ffe8769259 fix test_vm_json 2019-02-28 10:04:49 +02:00
andri lim 0518802690 contract creation and contract call cleanup 2019-02-28 10:04:49 +02:00
andri lim a99b3f2096 pass additional 9 GST 2019-02-27 13:30:18 +02:00
andri lim e2bc3d0045 refactor GST 2019-02-27 13:30:18 +02:00
andri lim 5ab7c02dcf refactor sender transfer 2019-02-27 13:30:18 +02:00
andri lim 26d8ab84fe refactor recipient transfer 2019-02-27 13:30:18 +02:00
andri lim 8193a4ae6a refactor gas used in transaction 2019-02-27 13:30:18 +02:00
andri lim 810259bfc4 make test green 2019-02-27 13:30:18 +02:00
andri lim 200f93a3b7 refactor incNonce 2019-02-27 13:30:18 +02:00
andri lim 2c032ad1ab refactor utils 2019-02-27 13:30:18 +02:00
andri lim a7c19e7c71
update tracer test data again 2019-02-26 09:00:46 +07:00
andri lim 8fbcbfb9b3
add some notable blocks into test 2019-02-26 08:45:32 +07:00
andri lim 10b61ae22a
update tracer test data 2019-02-26 08:40:40 +07:00
andri lim d679798abb
pass additional 12 GST 2019-02-25 21:13:05 +07:00
andri lim d6f7dfde5c
pass additional 4 GST 2019-02-25 17:10:38 +07:00
andri lim 592fa5df7e fix SIGNEXTEND opcode 2019-02-23 17:57:53 +02:00
andri lim eec9f32985 pass additional 32 GST, no addition failed GST 2019-02-23 17:57:53 +02:00
andri lim 7ff9a7f02e remove add stop from macro assembler 2019-02-22 13:10:22 +02:00
andri lim fa183e3a31 separate test_rpc from all_tests 2019-02-20 15:16:07 +02:00
andri lim 5f2abf7fe1 pass additional 6 GST 2019-02-20 15:16:07 +02:00
andri lim dcf7699358 fix callcode regression 2019-02-20 15:16:07 +02:00
andri lim 85d8155177 pass additional 20 GST 2019-02-20 15:16:07 +02:00
andri lim 8884627d07 trade 3 failed GST with 17 OK GST 2019-02-20 15:16:07 +02:00
andri lim 345133e8eb pass additional 15 GST 2019-02-20 15:16:07 +02:00
andri lim 5ba44083f0 fix contract call in gst and executor.nim 2019-02-20 15:16:07 +02:00
andri lim dfeb0ab3b9 allow Callcode1024BalanceTooLow.json to fail on 32 bit 2019-02-18 13:16:04 +02:00
andri lim e4e1e60790 attempt to make test green 2019-02-18 13:16:04 +02:00
andri lim caa2db63ca update tests data after fixing tracer 2019-02-18 13:16:04 +02:00
andri lim 15e1b13491 trade 13 fail GST with 122 OK GST 2019-02-18 13:16:04 +02:00
andri lim 150fafbc8c trade 7 failed GST with 48 OK GST 2019-02-15 17:20:51 +02:00
andri lim fdc34a4cf6 fixes vmState construction 2019-02-15 17:20:51 +02:00
andri lim b8ada41ce0 allow 'call0.json' to fail on 32 bit 2019-02-07 11:01:43 +01:00
andri lim c657f23d73 fixes persistBlockTestGen and update tests 2019-02-07 11:01:43 +01:00
andri lim 00087de2ce trade 7 failed GST with 107 OK GST 2019-02-07 11:01:43 +01:00
andri lim 4466deff37 fixes path in tests 2019-02-06 18:42:03 +01:00
andri lim 67c38b0275 fixes NUMBER opcode 2019-02-06 18:42:03 +01:00
andri lim 7c6c7dbe3a 'accountExist' to 'accountExists' 2019-02-06 18:42:03 +01:00
andri lim 4cc0ef427c add ccountExist and isDeadAccount to AccountStateDB 2019-02-06 18:42:03 +01:00
Yuriy Glukhov 481c6cf4ed Use nim-eth (#224) 2019-02-05 20:15:50 +01:00
andri lim 2bc880d395 use 'newLitFixed' from std_shims, reduce LOC further 2019-01-31 20:16:47 +02:00
andri lim 99a5eefcce simplifies code, remove globals and double layer macro, employ macrocache 2019-01-31 20:16:47 +02:00
andri lim fff049abe8 fix path again 2019-01-31 20:16:47 +02:00
andri lim c92bc7c4e4 fix path when load test data 2019-01-31 20:16:47 +02:00
andri lim 58b5aa5f39 implement macro_assembler and opcodes test suite 2019-01-31 20:16:47 +02:00
Ștefan Talpalaru 60d2867b2e disable Chronicles colors on Windows 2019-01-16 14:17:26 +02:00
Ștefan Talpalaru a431ceed11 add "--threads:on" to tests and main binary
- some "funcs" were no longer considered side-effect free, so I made
  them procs
- added {.base.} to some base methods to avoid a deprecation warning
2019-01-15 18:59:24 +02:00
andri lim fbb03fb9b2 update test data 2019-01-15 15:30:25 +02:00
Yuriy Glukhov 58ad0e472c Moved db backends to eth_trie 2019-01-13 15:31:59 +02:00
Ștefan Talpalaru 7c7260552d
rebase and various fixes
- port to new APIs
- added copyright headers
- bumped the copyright interval in modified files
- fixed tests
- reorganised imports
- normalised function names
- deleted some trailing space
- added test_rpc to all_tests
- assert() -> doAssert()
- moved the RPC port in a constant for the test suite
2019-01-06 20:19:48 +01:00
coffeepots d19a7f7c04
Add simple test for eth_estimateGas 2019-01-06 19:03:35 +01:00
coffeepots 2c1c3d6c76
Update eth_estimateGas sig for testing 2019-01-06 19:03:35 +01:00
coffeepots c2fae69318
Add assertion to check for canonical head 2019-01-06 19:03:34 +01:00
andri lim 281b7dffac implement debug_setHead 2019-01-06 13:17:08 +02:00
andri lim 74d728f962 pass additional 15 general state tests 2019-01-06 13:16:45 +02:00
andri lim 96b18cfce3 add select_backend module 2019-01-06 11:43:38 +02:00
andri lim 3a10f99694 add persistblock test 2019-01-06 11:43:38 +02:00
andri lim 5cf43c2909 implement dumpDebuggingMetaData 2019-01-06 11:43:38 +02:00
andri lim 5fc134ac2a add lmdb backend 2019-01-06 11:43:38 +02:00
andri lim a6bf970b1b some cleanup 2019-01-06 11:43:38 +02:00
andri lim 9db4e9296a add tracer test 2019-01-06 11:43:38 +02:00
andri lim 83e01994df add total count to test helpers 2018-12-26 23:45:57 +02:00
andri lim d3380f6cf0 fix test 2018-12-16 15:38:51 +02:00
Ștefan Talpalaru f91e69f7c7
more VM tracing
The existing vmState tracing is plugged into chronicles, at the TRACE
level, to facilitate state test debugging.

Some useful chronicles defines are added to "tests/nim.cfg" to simplify
the compile-and-run command for individual tests.
2018-12-12 11:47:10 +01:00
Ștefan Talpalaru 115843487c
general-state testsuite changes and better fork selection
- skipped the tests in allowedFailInCurrentBuild()
- replaced doAssert() with check() in testFixtureIndexes() so we can see
  both hash values on failure
- checking filename extension for JSON tests to avoid editor swap files
- replaced the duplicated block values in the main net's ChainConfig
  with values from forkBlocks
- allowed overriding the current fork in computations, because the old
  strategy of only looking at the block number doesn't work with JSON tests
  where the block number is usually 1
- explicitly pass the fork to gasCosts() and use it for conditional cost
  calculation
- fixed a logic error in the CREATE opcode
- fixed VM selection based on current fork in updateOpcodeExec()
- single point of control for supported forks in tests (just one fork, at the
  moment)
- 44 new test failures (that were probably passing for the wrong reasons)
2018-12-07 18:18:29 +01:00
coffeepots 86853ea97c
Merge pull request #187 from status-im/modexp-fixes
Modexp fixes
2018-12-06 10:10:59 +00:00
andri lim c954dc7d62 fix tests 2018-12-05 22:01:29 +07:00
mratsim 4d07d99f66 Add precompiles to all tests to prevent regressions 2018-12-04 16:32:11 +01:00
mratsim f50bb57eb6 Reactivate the precompiles test + consume gas 2018-12-04 15:52:59 +01:00
mratsim 29f8a8a066 modExp fixed! 2018-12-04 15:46:33 +01:00
mratsim 949c5a1dc6 Modexp fix example 1 (returned to early for ints of length 1) 2018-12-04 12:49:48 +01:00
coffeepots 184143ba65 Update return types 2018-11-28 22:27:15 +00:00
coffeepots b57427e3ee Add genesis block 2018-11-28 21:57:10 +00:00
coffeepots 3557567a1b Moch test for eth_call but needs working header fetching 2018-11-26 18:16:58 +00:00
coffeepots 0899634b6d Update signatures for eth_call 2018-11-26 18:13:24 +00:00
coffeepots f7d858d58b Add missing .json 2018-11-13 19:45:34 +00:00
coffeepots 6dcb639e64 Add 32 bit failures to GST CI exclusion 2018-11-13 19:45:34 +00:00
coffeepots e5551bb3f7 Update memDB/chain use with eth_trie changes 2018-11-13 19:45:34 +00:00
coffeepots eceaa58ebb Update failing tests list 2018-11-13 19:45:34 +00:00
coffeepots f99138dca6 Merge branch 'call-fixes-precompiles' 2018-11-12 15:57:54 +00:00
coffeepots 0366dd47d9 Remove irrelevant comments 2018-11-08 18:54:21 +00:00
Dustin Brody 5095bfa8d8 add missing module import 2018-10-19 09:42:32 -07:00
Zahary Karadjov 41adca1abb Minimal changes required for building the LES branch 2018-10-16 03:10:01 +03:00
coffeepots 4ca4a859ad Remove bogus sha256 tests 2018-10-10 18:47:54 +01:00
coffeepots e53222c7ab Test suite for precompiles 2018-10-10 17:27:00 +01:00
coffeepots 7c778867a2 Allow simpler json files to be processed, add dir sep for echo 2018-10-10 17:26:32 +01:00
coffeepots 2ee9861a9e Precompile test data 2018-10-10 17:25:54 +01:00
Zahary Karadjov 343cc4fa43 Populate the persistent databases with the empty RLP key.
Also implements transactional block persistence. Two issues
in the transaction processing code have been discovered that
might affect other usages such as the CALL instruction.

The main fix gets us past block 49000.

You may need to clean up your database.
2018-10-05 03:36:48 +03:00
Dustin Brody 7459650663 only disable 32-bit-failing tests in 32-bit builds 2018-10-04 17:52:58 +00:00
Dustin Brody 7aa0c386dd some simplification and cleanup 2018-10-04 17:52:58 +00:00
coffeepots e2087f0922 Remove precompile hash table 2018-10-02 15:55:28 +01:00
tersec 4f04332205
Refactor contract creation into transaction code from P2P code; get 14 new GSTs working (#163)
* checkpoint where refactoring and calling from GST runner doesn't break anything

* 14 new GSTs pass by refactoring contract creation out of p2p/chain and using from GST test runner

* 2 of 14 new tests fail in 32-bit builds

* switch from CREATE_CONTRACT_ADDRESS to isContractCreation

* switch another CREATE_CONTRACT_ADDRESS to isContactCreation
2018-09-29 15:36:42 +00:00
tersec d4e95fae94
refactor aspects of transaction processing out of GeneralStateTests handler; get p2p/chain runnning through block 48680; combine/deduplicate two different but equivalent methods of caulculating transaction intrinsic gas cost; fix BaseTransaction references to just Transaction references in hitherto unreferenced stubbed out source so it builds; clean up some imports from refactoring (#161) 2018-09-27 19:09:26 +00:00
Zahary Karadjov 74f6f0b738 Deal with the refactoring in status-im/nim-rlp#20 2018-09-26 12:58:23 +03:00
Zahary Karadjov 4e323df363 Implement a --datadir command-line options
By default, the database files will be written in the
platform-specific application data folder:

$HOME/AppData/Roaming/Nimbus/DB
$HOME/Library/Application Support/Nimbus/DB
$HOME/.cache/nimbus/db
2018-09-25 02:06:20 +03:00
Dustin Brody c468bcd713 clean up VMTests and remove some scaffolding 2018-09-24 21:46:53 +03:00
tersec 690ce2cf97
Partly fix state_db getCode for 20 new working GeneralStateTests (#156)
* partly fix state_db getCode to get 20 new working GeneralStateTests; remove 2 functions which existed as workarounds; switch all remaining setBalance calls in GeneralStateTestRunner to subBalance (addBalance calls already changed)

* two of the 20 new tests don't work in 32-bit builds
2018-09-20 21:36:57 +00:00
Dustin Brody 8e231b566c
set to allow-fail another dozen or so tests which have 32-bit issues and integrate with CI (#154) 2018-09-19 17:57:45 +00:00
Dustin Brody 8f4e1a4445
integrate GeneralStateTest runner into CI with 775 running tests (#153)
* fix 32-bit issue in AppVeyor

* allow another dozen or so GeneralStateTest fixtures which work on 64-bit, but not on 32-bit platforms, to safely-fail, but demarcate them separately to facilitate debugging

* steal fa672600eb from @coffeepots fix-int32-high-zero branch
2018-09-19 16:46:14 +00:00
Yuriy Glukhov 0adfaf0f31 s/increaseBalance/addBalance 2018-09-19 18:41:17 +03:00
Yuriy Glukhov 75f973e654 Fixed test 2018-09-19 18:41:17 +03:00
Dustin Brody 048921b045 20 new working GeneralStateTests 2018-09-18 14:00:30 +00:00
coffeepots 4f03c9cf2a
Merge pull request #139 from status-im/callOpCodeWork
Flesh out call op
2018-09-18 14:09:00 +01:00
coffeepots 4a944398c9 More newMemoryDb updates 2018-09-18 12:18:59 +01:00
coffeepots 760e4f9685 Adjust trie creation to properly init transactional tries 2018-09-18 12:02:34 +01:00
Dustin Brody fe761cd4ff 14 additional GeneralStateTests and clean up some empty hex string parsing kludginess 2018-09-17 13:41:32 +00:00
Dustin Brody beb1befc6e 13 additional GeneralStateTests working; remove commented auto-ported Py-EVM validations which are implicit in UInt256; address comments to last commit (toSeq, hoising vmState.readOnlyStateDB, deltaBalance -> increaseBalance) 2018-09-17 13:41:32 +00:00
Dustin Brody 7ba90fda54
48 new working GeneralStateTests, via fixing some overflows/underflows, creating a rudimentary balance commit/revert scheme, and implementing account deletion for the selfdestruct instruction (#146) 2018-09-14 13:43:40 +00:00
Dustin Brody 22882edf4d
get 106 more generalstatetests working by detecting computation errors and allowing empty code accounts (#145) 2018-09-13 15:00:23 +00:00
Dustin Brody 3cc7e9d8fd
skip 1000+ tests which either are slow (quadratic tests) or don't support Homestead; add ~50 new working tests (#143) 2018-09-12 16:33:53 +00:00
Yuriy Glukhov 62260c786d Caching DB backend 2018-09-12 17:53:15 +03:00
Dustin Brody 00c4df6153
detect erronous transactions and roll back to previous state, without refunding any gas, per yellow paper (#141) 2018-09-11 13:15:59 +00:00
Dustin Brody e24f7fe144 unskip some other (failing) tests 2018-09-10 19:42:45 +03:00
Dustin Brody fd07d6fed1 A simple/basic GeneralStateTest runner which gets 400+ of them correct 2018-09-10 19:42:45 +03:00
Yuriy Glukhov 3a1ec035b3 Various fixes towards state reconstruction 2018-09-07 14:00:37 +03:00
Dustin Brody 9e1be6438e Extract transaction senders from GeneralStateTest fixtures 2018-09-06 11:20:43 +03:00
Dustin Brody 4262ea8670 fix (1) overflow/signed confusion when reading large-valued storage entries; (2) adjust test fixture validity for GeneralStateTests; (3) remove incorrect usage of state trie for code (not codehash) storage; add ability to display state; (4) avoid double-hashing keys for already-hashed SecureHexaryTrie for storage; (5) add intentionally local workaround for empty code in GeneralStateTest fixtures lacking 0x prefix; (6) fix nonce parsing, which is always hex string in test fixtures 2018-09-04 17:55:30 +03:00
coffeepots bda219f8fe Make tests green (AccountNonce) 2018-09-02 03:26:22 +01:00
Jacek Sieka db202dc35f
replace logging module with nim-chronicles (fixes #38)
This blindly changes logging to nim-chronicles - issues that ensue:

* keeps gas cost computation logs hidden behind flag
* unclear if logScope is practical - for example, since vm is split over
many files, topics get lost when using simple top-level per-module
topics
* when passing named object around, scope should incliude the name of
the object but this is caught neither by logScope nor by dynamicLogScope
2018-08-29 16:13:03 -06:00
Yuriy Glukhov e3be8ca30a Separate Chain from ChainDB 2018-08-29 11:49:01 +03:00
coffeepots fd7062fecb Fix VMTest message creation in 32 bits, also duplicated word in comment 2018-08-17 17:16:40 +03:00
coffeepots 5cd81ef3ac Update doAssert to display the correct contents of stint values 2018-08-17 17:16:40 +03:00
coffeepots 1bf432fd46 Fix for VMTest parseHex in 32 bit 2018-08-17 17:16:40 +03:00
Dustin Brody a12b0771d6 remove superflous when true block, retained from when VMTests wasn't passing 2018-08-16 16:07:45 -04:00
coffeepots fb185b7965 Update RPC signatures 2018-08-13 19:26:34 +01:00
coffeepots 0b5d8d53be Added EthHashStr tests 2018-08-13 19:03:09 +01:00
coffeepots d1f283b004 Updated test_rpc to use EthAddressStr 2018-08-13 17:34:54 +01:00
coffeepots 6aab8b05c5 Included tests for EthAddressStr 2018-08-13 17:34:14 +01:00
Dustin Brody 3c0d27021e
remove callcreates-handling code in VMTests harness (#102)
(1) callcreates, empirically, is always missing or empty in VMTests
(2) by policy, callcreates will not be in new VMTests
(3) the code was broken regardless, in a couple of since-removed VMTests which had non-empty callcreates
2018-08-09 21:58:51 +00:00
coffeepots ac2de74d8f Standardised test between data and quantity, added tests for "0x" 2018-08-09 13:50:49 +03:00
coffeepots a0833475d4 Rename test suite 2018-08-09 13:50:49 +03:00
coffeepots a48e1e96c5 Rename test suite 2018-08-09 13:50:49 +03:00
coffeepots f3ccd72f91 Remove redundant account creation, already done in mutateStateDb 2018-08-09 13:50:49 +03:00
coffeepots 155457d47f Basic eth node setup for RPC testing (WIP) 2018-08-09 13:50:49 +03:00
coffeepots c5514155ee Add tests for JSON RPC hex strings 2018-08-09 13:50:49 +03:00
coffeepots 79abeafa41 Setup test rpc server, initial call to eth_getBalance 2018-08-09 13:50:49 +03:00
Dustin Brody 7fd2fa6184 Run VMTests as part of nimble tests, as well as Appveyor and Travis CI 2018-08-07 13:15:56 -07:00
Dustin Brody 21fcaeb8ef add inexpensive vmPerformanceTests, especially Ackermann and Fibonacci tests; whole suite still runs in a few seconds 2018-08-07 12:24:37 -07:00
Dustin Brody ea2f3b71bf
Complete VM Test sync, with EXP(0, 0) defined as 1 now (#98) 2018-08-07 18:41:01 +00:00
Yuriy Glukhov 467a9c3d7a
Merge pull request #93 from status-im/genesis
Added genesis initialization
2018-08-06 18:02:39 +03:00
Dustin Brody 6a3fa4cb22
Merge pull request #94 from status-im/FixLog3Log4CallDataCopyRandomTestFixtures
fix assorted test fixtures which have been un-skipped
2018-08-03 21:07:36 +00:00
Dustin Brody e2dd3ae051 Import current official GeneralStateTests 2018-08-03 13:18:04 -07:00
Dustin Brody 71679d6d95 fix assorted test fixtures which have been un-skipped 2018-08-02 15:57:28 -07:00
Dustin Brody 8325b6461f Stop skipping all but time-intensive vmPerformance VMTests by default 2018-08-02 09:37:16 -07:00
Dustin Brody d94dfbdb43 following https://github.com/ethereum/tests/pull/444 synchronize with upstream test changes by removing many which rely on mocking BLOCKHASH/BALANCE just for VM tests (#92) 2018-08-02 14:21:42 +02:00
Yuriy Glukhov c4f4a37d2c Added genesis initialization 2018-08-01 15:50:44 +03:00
Dustin Brody 1b781aefe9 pursuant to discussion in https://github.com/ethereum/tests/pull/444 refactor tests to not require special-cased codepaths for a VMTest mode by allowing BLOCKHASH-dependent tests to live where actual blockchain state is provided by fixture 2018-07-31 17:09:37 -07:00
Dustin Brody 1921f9b389 arith.json, boolean.json, and mktx.json test fixtures don't provide useful information (#90) 2018-07-30 17:29:13 +02:00
Yuriy Glukhov 84515b78a9 Align DB backend interfaces with eth_trie. Init BaseChainDB in nimbus. 2018-07-30 16:05:32 +03:00
cheatfate d40638af8c Let Appveyor testing again.
Fix test_storage_backends.nim for Windows.
2018-07-28 12:42:40 +03:00
Dustin Brody 90165f4f6b Ethereum test fixtures provide storage values as hex literals (e.g., 0x04), not decimal literals 2018-07-25 09:31:57 -07:00
Yuriy Glukhov b2acf3a5e3 GasMeter is an object now (#73) 2018-07-18 14:18:17 +02:00
Yuriy Glukhov 601db4d9f3 Fixed a few more tests (#70)
* Fixed getting reading balance from the test fixtures

* Fixed sha3 opcode
2018-07-17 10:57:13 +02:00
Mamy Ratsimbazafy 4dd75aee84
Delete utilities: address, padding, bytes (#68)
* Delete utilities: address, padding, bytes

* Remove bigEndianToInt

* Fix C compiler error: member reference base type 'char' is not a structure or union

* fix todo comment
2018-07-06 17:08:31 +02:00
Mamy Ratsimbazafy 4b5eada322
Refactor interpreter dispatch (#65)
* move forks constants, rename errors

* Move vm/utils to vm/interpreter/utils

* initial opcodes refactoring

* Add refactored Comparison & Bitwise Logic Operations

* Add sha3 and address, simplify macro, support pop 0

* balance, origin, caller, callValue

* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode

* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement

* add push, dup, swap, log, create and call operations

* finish opcode implementation

* Add the new dispatching logic

* Pass the opcode test

* Make test_vm_json compile

* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)

* Properly catch and recover from EVM exceptions (stack underflow ...)

* Fix byte op

* Fix jump regressions

* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel

* Fix sha3 regression on empty memory slice and until end of range slice

* Fix padding / range error on expXY_success (gas computation left)

* update logging procs

* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test

* Reuse the same stub as OO implementation

* Delete previous opcode implementation

* Delete object oriented fork code

* Delete exceptions that were used as control flows

* delete base.nim 🔥, yet another OO remnants

* Delete opcode table

* Enable omputed gotos and compile-time gas fees

* Revert const gasCosts -> generates SIGSEGV

* inline push, swap and dup opcodes

* loggers are now template again, why does this pass new tests?

* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5

* Address review comment on "push" + VMTests in debug mode (not release)

* Address review comment: don't tag fork by default, make opcode impl grepable

* Static compilation fixes after rebasing

* fix the initialization of the VM database

* add a missing import

* Deactivate balance and sload test following #59

* Reactivate stack check (deactivated in #59, necessary to pass tests)

* Merge remaining opcodes implementation from #59

* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 09:52:31 +02:00
zah 18b7bbb3b0 Implemented most of the stubbed-out state handling instructions (#59)
Merge note: currently cannot compile due to `quasiBoolean` (#63). This will be solved by https://github.com/status-im/nimbus/pull/65
----

* Implemented most of the stubbed out state handling instructions

The code compiles, but still fails at the moment due to incorrect

initialization of the VM. Don't merge yet. More commits will be
pushed in the coming days.

* Fixed crash

* trie put and del are void now

* getBlockTransactionData and getReceipts

* Working code for extcodesize0.json

* fix origin.json

* fix calldatasize1

* fix calldataloadSizeTooHighPartial

* fix calldataloadSizeTooHigh

* more efficient PushX implementation

* fix and, or, xor
2018-07-05 14:41:01 +02:00
Zahary Karadjov 3060452d96 review changes
* `usedBytes` was not named appropriately. it indicates the last
  populated position in the data (the last valid index) for slicing
  purposes (i.e. the position is passed to `toOpenArray`)

* Fixed the `==` operator for DBKeys

* Use one-byte key for the 'canonical head hash'
2018-06-26 13:46:54 +03:00
Zahary Karadjov 583c72fa54 Implement storage backends using RocksDB and SQLite 2018-06-26 13:46:54 +03:00
mratsim 05703fc86f logging: non-debug costless, avoid allocating constant string messages 2018-06-15 14:20:42 +02:00
Mamy Ratsimbazafy c26c751f9b
Reorganize VM/interpreter + cleanup (#52)
* Move and cleanup interpreter files - prepare for redesign of VM

* fix call comment aobut recursive dependencies

* memory: use a template again and avoid (?) a cstring-> string conversion

* Fix stack test regression

* Fix recursive dependency on logging_ops, test_vm_json compiles but regression :/

* Fix signextend regression

* Fix 3 signed test and sha3 test
2018-06-15 11:11:25 +02:00