@@ -2,6 +2,7 @@ const argv = require('minimist')(process.argv.slice(2))
2
2
const async = require ( 'async' )
3
3
const tape = require ( 'tape' )
4
4
const testing = require ( 'ethereumjs-testing' )
5
+ const FORK_CONFIG = 'Homestead'
5
6
const skip = [
6
7
'CreateHashCollision' , // impossible hash collision on generating address
7
8
'SuicidesMixingCoinbase' , // sucides to the coinbase, since we run a blockLevel we create coinbase account.
@@ -29,6 +30,7 @@ const skip = [
29
30
'bcSimpleTransitionTest' , // HF stuff
30
31
'loop-mul' // ain't nobody need loops
31
32
]
33
+ // TODO: skip BlockchainTests/GeneralStateTests/stMemoryStressTest/*
32
34
33
35
if ( argv . r ) {
34
36
randomized ( argv . r , argv . v )
@@ -76,20 +78,34 @@ function randomized (stateTest) {
76
78
} )
77
79
}
78
80
79
- function runTests ( name , args , cb ) {
80
- // setup skipe function
81
- args . testFn = ( name ) => {
82
- return skip . includes ( name )
81
+ function runTests ( name , runnerArgs , cb ) {
82
+ let testGetterArgs = argv
83
+
84
+ // setup skip function
85
+ if ( name === 'BlockchainTests' ) {
86
+ const forkFilter = new RegExp ( `${ FORK_CONFIG } $` )
87
+ testGetterArgs . skipFn = ( name ) => {
88
+ return ( ( forkFilter . test ( name ) === false ) || skip . includes ( name ) )
89
+ }
90
+ } else {
91
+ testGetterArgs . skipFn = ( name ) => {
92
+ return skip . includes ( name )
93
+ }
83
94
}
84
95
96
+
97
+ runnerArgs . forkConfig = FORK_CONFIG
98
+ //runnerArgs.debugging = true; // for BlockchainTests
99
+ //runnerArgs.vmtrace = true; // for VMTests
100
+
85
101
tape ( name , t => {
86
102
const runner = require ( `./${ name } Runner.js` )
87
103
testing . getTestsFromArgs ( name , ( fileName , testName , test ) => {
88
104
return new Promise ( ( resolve , reject ) => {
89
105
t . comment ( `file: ${ fileName } test: ${ testName } ` )
90
- runner ( args , test , t , resolve )
106
+ runner ( runnerArgs , test , t , resolve )
91
107
} ) . catch ( err => console . log ( err ) )
92
- } , argv ) . then ( ( ) => {
108
+ } , testGetterArgs ) . then ( ( ) => {
93
109
t . end ( )
94
110
} )
95
111
} )
@@ -100,8 +116,8 @@ function runAll () {
100
116
require ( './cacheTest.js' )
101
117
require ( './genesishashes.js' )
102
118
async . series ( [
103
- runTests . bind ( this , 'BlockchainTests ' , { } ) ,
104
- runTests . bind ( this , 'StateTests' , { } ) ,
105
- runTests . bind ( this , 'VMTests ' , { } )
119
+ runTests . bind ( this , 'VMTests ' , { } ) ,
120
+ // runTests.bind(this, 'StateTests', {}), // TODO: update StateTestsRunnner for GeneralStateTests
121
+ runTests . bind ( this , 'BlockchainTests ' , { } )
106
122
] )
107
123
}
0 commit comments