-
Notifications
You must be signed in to change notification settings - Fork 0
/
ole_test.go
39 lines (33 loc) · 859 Bytes
/
ole_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package ole_test
import (
"strings"
"testing"
"github.com/nyaosorg/glua-ole"
"github.com/yuin/gopher-lua"
)
func newL() *lua.LState {
L := lua.NewState()
L.SetGlobal("create_object", L.NewFunction(ole.CreateObject))
L.SetGlobal("to_ole_integer", L.NewFunction(ole.ToOleInteger))
return L
}
func TestGc(t *testing.T) {
L := newL()
defer L.Close()
err := L.DoString(`
local fsObj = create_object("Scripting.FileSystemObject")
fsObj:_release()`)
if err != nil {
t.Fatalf("fsObj:_release() failed: %s", err)
}
err = L.DoString(`
local fsObj = create_object("Scripting.FileSystemObject")
assert(fsObj._release())`)
if err == nil {
t.Fatalf("_release() without receiver has to fail.")
}
if errStr := err.Error(); !strings.Contains(errStr, "no receiver") {
t.Fatalf("OBJECT:_release(): %s", errStr)
}
// println(err.Error())
}