compiler: move tests from vm/tests
These don't belong to VM as they compile some Go code and run it in a VM. One may call them integration tests, but I prefer to attribute them to compiler. Moving these tests into pkg/compiler also allows to properly count the compiler coverage they add: -ok github.com/CityOfZion/neo-go/pkg/compiler (cached) coverage: 69.7% of statements +ok github.com/CityOfZion/neo-go/pkg/compiler (cached) coverage: 84.2% of statements This change also fixes `contant` typo and removes fake packages exposed to the public by moving foo/bar/foobar into the testdata directory.
This commit is contained in:
parent
629c6a7333
commit
094c8474b7
19 changed files with 18 additions and 18 deletions
135
pkg/compiler/assign_test.go
Normal file
135
pkg/compiler/assign_test.go
Normal file
|
@ -0,0 +1,135 @@
|
|||
package compiler_test
|
||||
|
||||
import (
|
||||
"math/big"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var assignTestCases = []testCase{
|
||||
{
|
||||
"chain define",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
y := x
|
||||
z := y
|
||||
foo := z
|
||||
bar := foo
|
||||
return bar
|
||||
}
|
||||
`,
|
||||
big.NewInt(4),
|
||||
},
|
||||
{
|
||||
"simple assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
x = 8
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(8),
|
||||
},
|
||||
{
|
||||
"add assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
x += 8
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(12),
|
||||
},
|
||||
{
|
||||
"sub assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
x -= 2
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(2),
|
||||
},
|
||||
{
|
||||
"mul assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
x *= 2
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(8),
|
||||
},
|
||||
{
|
||||
"div assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
x /= 2
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(2),
|
||||
},
|
||||
{
|
||||
"add assign binary expr",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
x += 6 + 2
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(12),
|
||||
},
|
||||
{
|
||||
"add assign binary expr ident",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x := 4
|
||||
y := 5
|
||||
x += 6 + y
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(15),
|
||||
},
|
||||
{
|
||||
"decl assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
var x int = 4
|
||||
return x
|
||||
}
|
||||
`,
|
||||
big.NewInt(4),
|
||||
},
|
||||
{
|
||||
"multi assign",
|
||||
`
|
||||
package foo
|
||||
func Main() int {
|
||||
x, y := 1, 2
|
||||
return x + y
|
||||
}
|
||||
`,
|
||||
big.NewInt(3),
|
||||
},
|
||||
}
|
||||
|
||||
func TestAssignments(t *testing.T) {
|
||||
runTestCases(t, assignTestCases)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue