Add tests.

This commit is contained in:
chriseth
2018-12-06 14:43:14 +01:00
parent 3fc118ba21
commit b7cfa499b0
14 changed files with 417 additions and 3 deletions
+11
View File
@@ -0,0 +1,11 @@
object "a" {
code {}
// Unreferenced data is not added to the assembled bytecode.
data "str" "Hello, World!"
}
// ----
// Assembly:
// stop
// data_acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f 48656c6c6f2c20576f726c6421
// Bytecode: fe
// Opcodes: INVALID
@@ -0,0 +1,6 @@
object "a" {
code {}
}
// ----
// Assembly:
// -- empty bytecode --
@@ -0,0 +1,13 @@
object "a" {
code { sstore(0, 1) }
}
// ----
// Assembly:
// /* "source":32:33 */
// 0x01
// /* "source":29:30 */
// 0x00
// /* "source":22:34 */
// sstore
// Bytecode: 6001600055
// Opcodes: PUSH1 0x1 PUSH1 0x0 SSTORE
@@ -0,0 +1,49 @@
// optimize
object "a" {
code {
let x := calldataload(0)
let y := calldataload(0)
let z := sub(y, x)
sstore(add(x, 0), z)
}
object "sub" {
code {
let x := calldataload(0)
let y := calldataload(0)
let z := sub(y, x)
sstore(add(x, 0), z)
}
}
}
// ----
// Assembly:
// /* "source":60:61 */
// 0x00
// /* "source":137:138 */
// dup1
// /* "source":60:61 */
// dup2
// /* "source":47:62 */
// calldataload
// /* "source":119:139 */
// sstore
// /* "source":32:143 */
// pop
// stop
//
// sub_0: assembly {
// /* "source":200:201 */
// 0x00
// /* "source":283:284 */
// dup1
// /* "source":200:201 */
// dup2
// /* "source":187:202 */
// calldataload
// /* "source":265:285 */
// sstore
// /* "source":170:291 */
// pop
// }
// Bytecode: 60008081355550fe
// Opcodes: PUSH1 0x0 DUP1 DUP2 CALLDATALOAD SSTORE POP INVALID
+13
View File
@@ -0,0 +1,13 @@
{
sstore(0, 1)
}
// ----
// Assembly:
// /* "source":14:15 */
// 0x01
// /* "source":11:12 */
// 0x00
// /* "source":4:16 */
// sstore
// Bytecode: 6001600055
// Opcodes: PUSH1 0x1 PUSH1 0x0 SSTORE
@@ -0,0 +1,23 @@
// optimize
{
let x := calldataload(0)
let y := calldataload(0)
let z := sub(y, x)
sstore(add(x, 0), z)
}
// ----
// Assembly:
// /* "source":38:39 */
// 0x00
// /* "source":109:110 */
// dup1
// /* "source":38:39 */
// dup2
// /* "source":25:40 */
// calldataload
// /* "source":91:111 */
// sstore
// /* "source":12:113 */
// pop
// Bytecode: 60008081355550
// Opcodes: PUSH1 0x0 DUP1 DUP2 CALLDATALOAD SSTORE POP
+5
View File
@@ -0,0 +1,5 @@
{
}
// ----
// Assembly:
// -- empty bytecode --
+21
View File
@@ -0,0 +1,21 @@
object "a" {
code {}
// Unreferenced data is not added to the assembled bytecode.
data "str" "Hello, World!"
object "sub" { code { sstore(0, 1) } }
}
// ----
// Assembly:
// stop
// data_acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f 48656c6c6f2c20576f726c6421
//
// sub_0: assembly {
// /* "source":149:150 */
// 0x01
// /* "source":146:147 */
// 0x00
// /* "source":139:151 */
// sstore
// }
// Bytecode: fe
// Opcodes: INVALID
@@ -0,0 +1,39 @@
object "a" {
code {}
// Unreferenced data is not added to the assembled bytecode.
data "str" "Hello, World!"
object "sub" {
code { sstore(0, 1) }
object "subsub" {
code { sstore(2, 3) }
data "str" hex"123456"
}
}
}
// ----
// Assembly:
// stop
// data_acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f 48656c6c6f2c20576f726c6421
//
// sub_0: assembly {
// /* "source":153:154 */
// 0x01
// /* "source":150:151 */
// 0x00
// /* "source":143:155 */
// sstore
// stop
//
// sub_0: assembly {
// /* "source":203:204 */
// 0x03
// /* "source":200:201 */
// 0x02
// /* "source":193:205 */
// sstore
// stop
// data_6adf031833174bbe4c85eafe59ddb54e6584648c2c962c6f94791ab49caa0ad4 123456
// }
// }
// Bytecode: fe
// Opcodes: INVALID