go-ph7/ph7_test.go

62 lines
1.2 KiB
Go

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("<?php echo 'Hello world!'; ?>"), 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("<?php 1234 echo 'Hello world!'; ?>"), false)
mustFail(t, err)
msg, err := engine.ErrLog()
mustSucceed(t, err)
if msg == "" {
t.Fatalf("expected error message, got nothing")
}
}