...
1
16
17 package unittests
18
19 import (
20 "bytes"
21 "flag"
22 "testing"
23
24 "github.com/stretchr/testify/require"
25 "k8s.io/kubernetes/test/e2e/framework"
26 )
27
28
29
30
31 func GetFrameworkOutput(t *testing.T, flags map[string]string) (output string, finalExitCode int) {
32
33
34 framework.RegisterCommonFlags(flag.CommandLine)
35 framework.RegisterClusterFlags(flag.CommandLine)
36 for flagname, value := range flags {
37 require.NoError(t, flag.Set(flagname, value), "set %s", flagname)
38 }
39 var buffer bytes.Buffer
40 framework.Output = &buffer
41 framework.Exit = func(code int) {
42 panic(exitCode(code))
43 }
44 finalExitCode = -1
45 defer func() {
46 if r := recover(); r != nil {
47 if code, ok := r.(exitCode); ok {
48 finalExitCode = int(code)
49 } else {
50 panic(r)
51 }
52 }
53 output = buffer.String()
54 }()
55 framework.AfterReadingAllFlags(&framework.TestContext)
56
57
58 return
59 }
60
61 type exitCode int
62
View as plain text