2025-08-18 14:24:31 +02:00
|
|
|
package wand
|
|
|
|
|
|
2025-08-24 01:45:25 +02:00
|
|
|
/*
|
2025-08-18 14:24:31 +02:00
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"fmt"
|
|
|
|
|
"strings"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func testExec(impl any, env, commandLine, err string, expect ...string) func(*testing.T) {
|
|
|
|
|
return func(t *testing.T) {
|
|
|
|
|
var exitCode int
|
|
|
|
|
exit := func(code int) { exitCode = code }
|
|
|
|
|
stdout := bytes.NewBuffer(nil)
|
|
|
|
|
stderr := bytes.NewBuffer(nil)
|
|
|
|
|
cmd := wrap(impl)
|
|
|
|
|
e := strings.Split(env, ";")
|
|
|
|
|
a := strings.Split(commandLine, " ")
|
|
|
|
|
exec(stdout, stderr, exit, cmd, e, a)
|
|
|
|
|
if exitCode != 0 && err == "" {
|
|
|
|
|
t.Fatal("non-zero exit code:", stderr.String())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err != "" && exitCode == 0 {
|
|
|
|
|
t.Fatal("failed to fail")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err != "" && !strings.Contains(stderr.String(), err) {
|
|
|
|
|
t.Fatal("expected error not received:", stderr.String())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if exitCode != 0 {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var expstr []string
|
|
|
|
|
for _, e := range expect {
|
|
|
|
|
expstr = append(expstr, fmt.Sprint(e))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if stdout.String() != strings.Join(expstr, "\n")+"\n" {
|
|
|
|
|
t.Fatal("unexpected output:", stdout.String())
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-08-24 01:45:25 +02:00
|
|
|
*/
|