github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/vm/cvm/ast/ast_test.go (about) 1 package ast_test 2 3 import ( 4 "fmt" 5 "github.com/magiconair/properties/assert" 6 "github.com/sixexorg/magnetic-ring/vm/cvm/ast" 7 "github.com/sixexorg/magnetic-ring/vm/cvm/parse" 8 "os" 9 "testing" 10 ) 11 12 func init() { 13 14 } 15 16 func TestStmtsSerialize(t *testing.T) { 17 fp, err := os.Open("ast_test.lua") 18 if err != nil { 19 fmt.Printf("open file failed. casue: %v\n", err) 20 return 21 } 22 defer fp.Close() 23 24 chunk, err := parse.Parse(fp, "") 25 if err != nil { 26 fmt.Printf("Abstract syntax tree: %v\n", err) 27 return 28 } 29 30 data := ast.Serialize(chunk) 31 if err != nil { 32 fmt.Printf("contrace serializion failed. cause: %v\n", err) 33 return 34 } 35 36 dChunk := ast.Deserizlize(data) 37 38 for index, value := range dChunk { 39 fmt.Printf("%#v\n", chunk[index]) 40 fmt.Printf("%#v\n\n", value) 41 } 42 assert.Equal(t, dChunk, chunk) 43 }