Add more tests for state access (block, msg, tx, etc.)

Move some of them out of SolidityEndToEndTests. Additionally this ensures the deterministic values of the testing infrastructure.
This commit is contained in:
Alex Beregszaszi
2020-12-09 20:46:01 +00:00
parent 9e07981920
commit f9d6abf69b
17 changed files with 199 additions and 76 deletions
@@ -0,0 +1,23 @@
contract C {
bytes32 public genesisHash;
bytes32 public currentHash;
constructor() {
require(block.number == 1);
genesisHash = blockhash(0);
currentHash = blockhash(1);
}
function f(uint blockNumber) public returns (bytes32) {
return blockhash(blockNumber);
}
}
// ====
// compileViaYul: also
// ----
// constructor()
// genesisHash() -> 0x3737373737373737373737373737373737373737373737373737373737373737
// currentHash() -> 0
// f(uint256): 0 -> 0x3737373737373737373737373737373737373737373737373737373737373737
// f(uint256): 1 -> 0x3737373737373737373737373737373737373737373737373737373737373738
// f(uint256): 255 -> 0x00
// f(uint256): 256 -> 0x00
// f(uint256): 257 -> 0x00