Skip to content

Commit

Permalink
test fun10
Browse files Browse the repository at this point in the history
  • Loading branch information
notJoon committed Nov 17, 2023
1 parent cb97748 commit 5fb18c0
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
26 changes: 26 additions & 0 deletions gnovm/pkg/gnolang/uverse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ func TestComposite(t *testing.T) {
assertOutput(t, c, "slice[(0 int),(2 int),(0 int),(4 int)]\n")
}

// 현재 메인 함수에서 println은 실행되지만, defer는 실행되지 않음.
// 아마 내 생각엔 메모리 오류가 발생하는게 이것과 관련이 있을 것 같음.
// 즉, 함수 호출이 끝나면서 스택에 쌓인 defer를 실행하려고 하면, 이미 스택이 비워져서 오류가 발생하는 듯?
// 그럼 어떻게 해결해야 하나?

func TestSimpleRecover(t *testing.T) {
m := NewMachine("test", nil)
c := `package test
Expand Down Expand Up @@ -114,3 +119,24 @@ func TestNestedRecover(t *testing.T) {

assertOutput(t, c, "simple panic\nnested panic\nouter recover\n")
}

func TestFunction(t *testing.T) {
m := NewMachine("test", nil)
c := `package test
func f() func() {
return nil
}
func main() {
g := f()
println(g)
if g == nil {
println("nil func")
}
}`
n := MustParseFile("main.go", c)
m.RunFiles(n)
m.RunMain()

assertOutput(t, c, "func()()\nnil func\n")
}
2 changes: 1 addition & 1 deletion gnovm/tests/files/fun10.gno
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ func main() {
}

// Output:
// nil func()()
// func()()
// nil func

0 comments on commit 5fb18c0

Please sign in to comment.