Test Coverage

The tables below provides a summary and detailed information in relation to the number of tests performed, the count of passing tests and the count of failing tests.

To summarize, VeChain achieves a pass rate of 99%, when taking into consideration that 80 of the 102 failing tests are classified as being either justifiable or passable, given some modifications to the tests.

You can find detailed analysis of the coverage categories in the pages to follow.

Summary Table

CategoryShort DescriptionFailures

Justifiable

Failures that result from the inherent design differences between VeChain and Ethereum.

73

Contract Address Prediction

See here.

14

Failures in Constructor

Contract fails in constructor resulting in failure to be deployed.

7

Full, with eth_sign implementation

See here.

4

Full, with test changes

Some test modifications had to be added for the tests to pass.

3

BadBeaconProxy Address 0x1

See here.

1

Detailed Table

Contract NameTest CoveragePassFailTotal

Total

2324

102

2426

ERC1967Proxy

25

3

28

TransparentUpgradeableProxy

58

3

61

BeaconProxy

7

2

9

GovernorTimelockCompound

7

12

19

GovernorCompatibilityBravo

7

2

9

TimelockController

27

15

42

CrossChainEnabled

4

9

13

GovernorTimelockControl

12

9

21

AccessControl

50

4

54

MinimalForwarder

12

4

16

TokenTimelock

3

4

7

VestingWallet

2

4

6

ERC721Enumerable

233

3

236

DoubleEndedQueue

7

2

9

ERC2771Context

5

2

7

ERC721

211

2

213

Governor

42

2

44

Checkpoints

22

1

23

ERC1155

83

1

84

ERC1155Holder

4

1

5

ERC1155PresetMinterPauser

16

1

17

ERC165

2

1

3

ERC165Storage

4

1

5

ERC20Votes

28

1

29

ERC20VotesComp

27

1

28

ERC721PresetMinterPauserAutoId

15

1

16

ERC721Royalty

13

1

14

GovernorWithParams

3

1

4

MerkleProof

8

1

9

TimersTimestamp

4

1

5

ECDSA

14

3

17

SignatureChecker (ERC1271)

1

1

1

ERC1820Implementer

1

1

1

ERC777

1

1

1

ERC777PresetFixedSupply

1

1

1

Address

29

0

29

Arrays

15

0

15

BitMap

10

0

10

Clones

30

0

30

ConditionalEscrow

11

0

11

Context

4

0

4

Counters

8

0

8

Create2

8

0

8

EIP712

2

0

2

EnumerableMap

70

0

70

EnumerableSet

20

0

24

ERC1155Burnable

6

0

6

ERC1155Pausable

11

0

11

ERC1155Supply

10

0

10

ERC1155URIStorage

4

0

4

ERC165Checker

40

0

40

ERC20

118

0

118

ERC20Burnable

13

0

13

ERC20Capped

5

0

5

ERC20FlashMint

12

0

12

ERC20Pausable

12

0

12

ERC20Permit

6

0

6

ERC20PresetFixedSupply

4

0

4

ERC20PresetMinterPauser

12

0

12

ERC20Snapshot

14

0

14

ERC4626

25

0

25

ERC721Burnable

4

0

4

ERC721Consecutive

13

0

13

ERC721Holder

1

0

1

ERC721Pausable

10

0

10

ERC721URIStorage

10

0

10

ERC721Votes

26

0

26

Escrow

10

0

10

GovernorComp

2

0

2

GovernorERC721Mock

2

0

2

GovernorPreventLateQuorum

5

0

5

GovernorVotesQuorumFraction

6

0

6

Initializable

29

0

29

Math

25

0

25

MulticallToken

4

0

4

Ownable

6

0

6

Ownable2Step

5

0

5

Pausable

11

0

11

PaymentSplitter

20

0

20

ProxyAdmin

12

0

12

PullPayment

4

0

4

ReentrancyGuard

6

0

6

RefundEscrow

17

0

17

SafeCast

444

0

444

SafeERC20

35

0

35

SafeMath

48

0

48

SignedMath

12

0

12

SignedSafeMath

17

0

17

StorageSlot

12

0

12

Strings

31

0

31

TimersBlockNumber

5

0

5

UpgradeableBeacon

5

0

5

UUPSUpgradeable

6

0

6

Votes

23

0

23

Last updated