Skip to content

Commit 647a518

Browse files
vm: migrate test files (#3686)
* vm: migrate test files * vm: cspell fix --------- Co-authored-by: Holger Drewes <[email protected]>
1 parent 1413c9c commit 647a518

16 files changed

+713
-670
lines changed

packages/vm/test/api/EIPs/eip-2565-modexp-gas-cost.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import { assert, describe, it } from 'vitest'
66
import { createVM } from '../../../src/index.js'
77

88
// See https://github.com/holiman/go-ethereum/blob/2c99023b68c573ba24a5b01db13e000bd9b82417/core/vm/testdata/precompiles/modexp_eip2565.json
9-
import testData from '../testdata/eip-2565.json'
9+
import { eip2565Data } from '../testdata/eip-2565.js'
1010

1111
describe('EIP-2565 ModExp gas cost tests', () => {
1212
it('Test return data, gas cost and execution status against testdata', async () => {
1313
const common = new Common({ chain: Mainnet, hardfork: Hardfork.Byzantium, eips: [2565] })
1414
const vm = await createVM({ common })
1515

16-
for (const test of testData) {
16+
for (const test of eip2565Data) {
1717
const testName = test.Name
1818
const to = new Address(hexToBytes('0x0000000000000000000000000000000000000005'))
1919
const result = await vm.evm.runCall({

packages/vm/test/api/customChain.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ import { assert, describe, it } from 'vitest'
1313

1414
import { createVM, runTx } from '../../src/index.js'
1515

16-
import * as testChain from './testdata/testnet.json'
17-
import * as testnetMerge from './testdata/testnetMerge.json'
16+
import { testnetData } from './testdata/testnet.js'
17+
import { testnetMergeData } from './testdata/testnetMerge.js'
1818

19-
import type { ChainConfig } from '@ethereumjs/common'
2019
import type { AccountState, GenesisState, PrefixedHexString } from '@ethereumjs/util'
2120

2221
const storage: Array<[PrefixedHexString, PrefixedHexString]> = [
@@ -49,7 +48,7 @@ const genesisState: GenesisState = {
4948
[contractAddress]: accountState,
5049
}
5150

52-
const common = createCustomCommon(testChain.default as ChainConfig, Mainnet, {
51+
const common = createCustomCommon(testnetData, Mainnet, {
5352
hardfork: Hardfork.Chainstart,
5453
})
5554
const block = createBlock(
@@ -115,7 +114,7 @@ describe('VM initialized with custom state', () => {
115114
})
116115

117116
it('setHardfork', async () => {
118-
const common = createCustomCommon(testnetMerge.default as ChainConfig, Mainnet, {
117+
const common = createCustomCommon(testnetMergeData, Mainnet, {
119118
hardfork: Hardfork.Istanbul,
120119
})
121120

packages/vm/test/api/index.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ import { assert, describe, it } from 'vitest'
55

66
import { type VMOpts, createVM, paramsVM } from '../../src/index.js'
77

8-
import * as testnetMerge from './testdata/testnetMerge.json'
8+
import { testnetMergeData } from './testdata/testnetMerge.js'
99
import { setupVM } from './utils.js'
1010

11-
import type { ChainConfig } from '@ethereumjs/common'
1211
import type { MerkleStateManager } from '@ethereumjs/statemanager'
1312

1413
/**
@@ -217,7 +216,7 @@ describe('VM -> common (chain, HFs, EIPs)', () => {
217216

218217
describe('VM -> setHardfork, blockchain', () => {
219218
it('setHardfork', async () => {
220-
const common = createCustomCommon(testnetMerge.default as ChainConfig, Mainnet, {
219+
const common = createCustomCommon(testnetMergeData, Mainnet, {
221220
hardfork: Hardfork.Istanbul,
222221
})
223222

packages/vm/test/api/runBlock.spec.ts

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ import { assert, describe, it } from 'vitest'
3838
import { createVM, runBlock } from '../../src/index.js'
3939
import { getDAOCommon, setupPreConditions } from '../util.js'
4040

41-
import * as testData from './testdata/blockchain.json'
42-
import * as testnet from './testdata/testnet.json'
41+
import { blockchainData } from './testdata/blockchain.js'
42+
import { testnetData } from './testdata/testnet.js'
4343
import { createAccountWithDefaults, setBalance, setupVM } from './utils.js'
4444

4545
import type { VM } from '../../src/index.js'
@@ -50,7 +50,6 @@ import type {
5050
RunBlockOpts,
5151
} from '../../src/types.js'
5252
import type { Block, BlockBytes } from '@ethereumjs/block'
53-
import type { ChainConfig } from '@ethereumjs/common'
5453
import type { MerkleStateManager } from '@ethereumjs/statemanager'
5554
import type { AuthorizationListBytesItem, TypedTransaction } from '@ethereumjs/tx'
5655
import type { NestedUint8Array, PrefixedHexString } from '@ethereumjs/util'
@@ -59,13 +58,13 @@ const common = new Common({ chain: Mainnet, hardfork: Hardfork.Berlin })
5958
describe('runBlock() -> successful API parameter usage', async () => {
6059
async function simpleRun(vm: VM) {
6160
const common = new Common({ chain: Mainnet, hardfork: Hardfork.London })
62-
const genesisRlp = hexToBytes(testData.default.genesisRLP as PrefixedHexString)
61+
const genesisRlp = hexToBytes(blockchainData.genesisRLP as PrefixedHexString)
6362
const genesis = createBlockFromRLP(genesisRlp, { common })
6463

65-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
64+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
6665
const block = createBlockFromRLP(blockRlp, { common })
6766

68-
await setupPreConditions(vm.stateManager, testData)
67+
await setupPreConditions(vm.stateManager, blockchainData)
6968

7069
assert.deepEqual(
7170
(vm.stateManager as MerkleStateManager)['_trie'].root(),
@@ -88,12 +87,12 @@ describe('runBlock() -> successful API parameter usage', async () => {
8887
}
8988

9089
async function uncleRun(vm: VM) {
91-
const testData = await import('./testdata/uncleData.json')
90+
const { uncleData } = await import('./testdata/uncleData.js')
9291

93-
await setupPreConditions(vm.stateManager, testData)
92+
await setupPreConditions(vm.stateManager, uncleData)
9493

9594
const common = new Common({ chain: Mainnet, hardfork: Hardfork.London })
96-
const block1Rlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
95+
const block1Rlp = hexToBytes(uncleData.blocks[0].rlp as PrefixedHexString)
9796
const block1 = createBlockFromRLP(block1Rlp, { common })
9897
await runBlock(vm, {
9998
block: block1,
@@ -102,7 +101,7 @@ describe('runBlock() -> successful API parameter usage', async () => {
102101
skipHardForkValidation: true,
103102
})
104103

105-
const block2Rlp = hexToBytes(testData.default.blocks[1].rlp as PrefixedHexString)
104+
const block2Rlp = hexToBytes(uncleData.blocks[1].rlp as PrefixedHexString)
106105
const block2 = createBlockFromRLP(block2Rlp, { common })
107106
await runBlock(vm, {
108107
block: block2,
@@ -112,7 +111,7 @@ describe('runBlock() -> successful API parameter usage', async () => {
112111
skipHardForkValidation: true,
113112
})
114113

115-
const block3Rlp = toBytes(testData.default.blocks[2].rlp as PrefixedHexString)
114+
const block3Rlp = toBytes(uncleData.blocks[2].rlp as PrefixedHexString)
116115
const block3 = createBlockFromRLP(block3Rlp, { common })
117116
await runBlock(vm, {
118117
block: block3,
@@ -128,7 +127,7 @@ describe('runBlock() -> successful API parameter usage', async () => {
128127

129128
assert.equal(
130129
`0x${uncleReward}`,
131-
testData.default.postState['0xb94f5374fce5ed0000000097c15331677e6ebf0b'].balance,
130+
uncleData.postState['0xb94f5374fce5ed0000000097c15331677e6ebf0b'].balance,
132131
'calculated balance should equal postState balance',
133132
)
134133
}
@@ -153,7 +152,7 @@ describe('runBlock() -> successful API parameter usage', async () => {
153152
})
154153

155154
it('PoW block, Common custom chain (Common customChains constructor option)', async () => {
156-
const common = createCustomCommon(testnet.default as ChainConfig, Mainnet, {
155+
const common = createCustomCommon(testnetData, Mainnet, {
157156
hardfork: Hardfork.Berlin,
158157
})
159158
const vm = await setupVM({ common })
@@ -227,7 +226,7 @@ describe('runBlock() -> API parameter usage/data errors', async () => {
227226

228227
it('should fail when runTx fails', async () => {
229228
const common = new Common({ chain: Mainnet, hardfork: Hardfork.London })
230-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
229+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
231230
const block = createBlockFromRLP(blockRlp, { common })
232231

233232
// The mocked VM uses a mocked runTx
@@ -254,7 +253,7 @@ describe('runBlock() -> API parameter usage/data errors', async () => {
254253
const blockchain = await createBlockchain()
255254
const vm = await createVM({ common, blockchain })
256255

257-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
256+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
258257
const block = Object.create(createBlockFromRLP(blockRlp, { common }))
259258

260259
await runBlock(vm, { block })
@@ -269,7 +268,7 @@ describe('runBlock() -> API parameter usage/data errors', async () => {
269268

270269
it('should fail when no `validateHeader` method exists on blockchain class', async () => {
271270
const vm = await createVM({ common })
272-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
271+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
273272
const block = Object.create(createBlockFromRLP(blockRlp, { common }))
274273
;(vm.blockchain as any).validateHeader = undefined
275274
try {
@@ -286,7 +285,7 @@ describe('runBlock() -> API parameter usage/data errors', async () => {
286285
it('should fail when tx gas limit higher than block gas limit', async () => {
287286
const vm = await createVM({ common })
288287

289-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
288+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
290289
const block = Object.create(createBlockFromRLP(blockRlp, { common }))
291290
// modify first tx's gasLimit
292291
const { nonce, gasPrice, to, value, data, v, r, s } = block.transactions[0]
@@ -311,13 +310,11 @@ describe('runBlock() -> runtime behavior', async () => {
311310

312311
const vm = await setupVM({ common })
313312

314-
const block1 = RLP.decode(
315-
testData.default.blocks[0].rlp as PrefixedHexString,
316-
) as NestedUint8Array
313+
const block1 = RLP.decode(blockchainData.blocks[0].rlp as PrefixedHexString) as NestedUint8Array
317314
// edit extra data of this block to "dao-hard-fork"
318315
block1[0][12] = utf8ToBytes('dao-hard-fork')
319316
const block = createBlockFromBytesArray(block1 as BlockBytes, { common })
320-
await setupPreConditions(vm.stateManager, testData)
317+
await setupPreConditions(vm.stateManager, blockchainData)
321318

322319
// fill two original DAO child-contracts with funds and the recovery account with funds in order to verify that the balance gets summed correctly
323320
const fundBalance1 = BigInt('0x1111')
@@ -451,10 +448,10 @@ async function runWithHf(hardfork: string) {
451448
const common = new Common({ chain: Mainnet, hardfork })
452449
const vm = await setupVM({ common })
453450

454-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
451+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
455452
const block = createBlockFromRLP(blockRlp, { common })
456453

457-
await setupPreConditions(vm.stateManager, testData)
454+
await setupPreConditions(vm.stateManager, blockchainData)
458455

459456
const res = await runBlock(vm, {
460457
block,
@@ -487,7 +484,7 @@ describe('runBlock() -> tx types', async () => {
487484
async function simpleRun(vm: VM, transactions: TypedTransaction[]) {
488485
const common = vm.common
489486

490-
const blockRlp = hexToBytes(testData.default.blocks[0].rlp as PrefixedHexString)
487+
const blockRlp = hexToBytes(blockchainData.blocks[0].rlp as PrefixedHexString)
491488
const block = createBlockFromRLP(blockRlp, { common, freeze: false })
492489

493490
//@ts-ignore read-only property
@@ -498,7 +495,7 @@ describe('runBlock() -> tx types', async () => {
498495
block.header.baseFeePerGas = BigInt(7)
499496
}
500497

501-
await setupPreConditions(vm.stateManager, testData)
498+
await setupPreConditions(vm.stateManager, blockchainData)
502499

503500
const res = await runBlock(vm, {
504501
block,

packages/vm/test/api/testdata/blockchain.json

Lines changed: 0 additions & 119 deletions
This file was deleted.

0 commit comments

Comments
 (0)