094c8474b7
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.
56 lines
856 B
Go
56 lines
856 B
Go
package compiler_test
|
|
|
|
import "testing"
|
|
|
|
func TestStringToByteConversion(t *testing.T) {
|
|
src := `
|
|
package foo
|
|
func Main() []byte {
|
|
b := []byte("foo")
|
|
return b
|
|
}
|
|
`
|
|
eval(t, src, []byte("foo"))
|
|
}
|
|
|
|
func TestStringToByteAppend(t *testing.T) {
|
|
src := `
|
|
package foo
|
|
func Main() []byte {
|
|
b := []byte("foo")
|
|
c := []byte("bar")
|
|
e := append(b, c...)
|
|
return e
|
|
}
|
|
`
|
|
eval(t, src, []byte("foobar"))
|
|
}
|
|
|
|
func TestByteConversionInFunctionCall(t *testing.T) {
|
|
src := `
|
|
package foo
|
|
func Main() []byte {
|
|
b := []byte("foo")
|
|
return handle(b)
|
|
}
|
|
|
|
func handle(b []byte) []byte {
|
|
return b
|
|
}
|
|
`
|
|
eval(t, src, []byte("foo"))
|
|
}
|
|
|
|
func TestByteConversionDirectlyInFunctionCall(t *testing.T) {
|
|
src := `
|
|
package foo
|
|
func Main() []byte {
|
|
return handle([]byte("foo"))
|
|
}
|
|
|
|
func handle(b []byte) []byte {
|
|
return b
|
|
}
|
|
`
|
|
eval(t, src, []byte("foo"))
|
|
}
|