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