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
Category | Short Description | Failures |
---|---|---|
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 Name | Test Coverage | Pass | Fail | Total |
---|---|---|---|---|
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