68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
// mac_sandbox_test.go v1.0
|
|
|
|
package sandbox
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"sync"
|
|
"testing"
|
|
"time"
|
|
|
|
"apigo.cc/gojs"
|
|
_ "apigo.cc/gojs/console"
|
|
_ "apigo.cc/gojs/file"
|
|
_ "apigo.cc/gojs/runtime"
|
|
|
|
_ "apigo.cc/gojs/util"
|
|
"github.com/ssgo/u"
|
|
)
|
|
|
|
func init() {
|
|
gojs.Register("testTool", gojs.Module{
|
|
Object: map[string]interface{}{
|
|
"runAll": func(tasks [][]any) []any {
|
|
res := make([]any, len(tasks))
|
|
var wg sync.WaitGroup
|
|
for i, taskArgs := range tasks {
|
|
wg.Add(1)
|
|
go func(index int, args []any) {
|
|
defer wg.Done()
|
|
script := u.String(args[0])
|
|
if !strings.ContainsRune(script, '\n') && u.FileExists(script) {
|
|
r, err := gojs.RunFile(script, args[1:]...)
|
|
res[index] = []any{r, err}
|
|
} else {
|
|
r, err := gojs.Run(script, "anonymous.js", args[1:]...)
|
|
res[index] = []any{r, err}
|
|
}
|
|
}(i, taskArgs)
|
|
}
|
|
wg.Wait()
|
|
return res
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func TestPlugin(t *testing.T) {
|
|
tests := []string{
|
|
"base_test.js",
|
|
// "nodejs_test.js",
|
|
}
|
|
|
|
gojs.ExportForDev()
|
|
for _, f := range tests {
|
|
r, err := gojs.RunFile(f)
|
|
if err != nil {
|
|
t.Fatal(u.Red(f), u.BRed(err.Error()))
|
|
} else if r != true {
|
|
t.Fatal(u.Red(f), u.BRed(u.JsonP(r)))
|
|
} else {
|
|
fmt.Println(u.Green(f), u.BGreen("test succeess"))
|
|
}
|
|
}
|
|
|
|
time.Sleep(500 * time.Millisecond)
|
|
}
|