気軽な playground

gopwt 用の play.golang.org みたいなのを作りたいなと思っていた。だからといって、入力されたコードをサーバーで実行しても大丈夫なような環境を作るのも面倒ということで、gopwt で変換して、それを、gopherjs で javascript にして、ブラウザで実行してもらえば良いというとても気軽な案を思いついたら結構うまくいっている。そのうち play.gopwt.org 的なところで動かす予定。

テストコードが対象になるので、go test がやっているような main.main を作ってやらないといけないんだけど、それは適当に手を抜きつつこんなテンプレートで作ってる。

testmain.go:

package main

import (
    "testing"
)

var benchmarks = []testing.InternalBenchmark{}
var examples = []testing.InternalExample{}
var tests = []testing.InternalTest{
{{range .}}
    {
        "{{.}}",
        {{.}},
    },
{{end}}
}

func main() {
    match := func(pat string, str string) (bool, error) {
        return true, nil
    }
    testing.Main(match, tests, benchmarks, examples)
}`