package ph7_test import ( "testing" ph7 "git.codemonkeysoftware.net/b/go-ph7" ) func mustSucceed(t *testing.T, err error) { t.Helper() if err != nil { t.Fatal(err.Error()) } } func mustFail(t *testing.T, err error) { t.Helper() if err == nil { t.Fatal("expected error, got nil") } } func mustSucceedF(t *testing.T, f func() error) { t.Helper() err := f() if err != nil { t.Fatal(err.Error()) } } func TestHelloWorld(t *testing.T) { engine, err := ph7.NewEngine() mustSucceed(t, err) defer mustSucceedF(t, engine.Close) vm, err := engine.Compile([]byte(""), false) mustSucceed(t, err) defer mustSucceedF(t, vm.Close) mustSucceed(t, vm.Exec()) output, err := vm.ExtractOutput() mustSucceed(t, err) if output != "Hello world!" { t.Fatalf("unexpected output: %s", output) } } func TestCompileError(t *testing.T) { engine, err := ph7.NewEngine() mustSucceed(t, err) defer mustSucceedF(t, engine.Close) _, err = engine.Compile([]byte(""), false) mustFail(t, err) msg, err := engine.ErrLog() mustSucceed(t, err) if msg == "" { t.Fatalf("expected error message, got nothing") } }