Skip to content

Commit 2c5c0a7

Browse files
committed
Test that one-shot mode exits
Signed-off-by: Richard Wall <[email protected]>
1 parent c87f7c3 commit 2c5c0a7

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

pkg/agent/run_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package agent
2+
3+
import (
4+
"bytes"
5+
"context"
6+
"os"
7+
"os/exec"
8+
"testing"
9+
"time"
10+
11+
"github.com/jetstack/preflight/pkg/logs"
12+
"github.com/spf13/cobra"
13+
"github.com/stretchr/testify/require"
14+
)
15+
16+
// TestRunOneShot runs the agent in `--one-shot` mode and verifies that it exits
17+
// after the first data gathering iteration.
18+
func TestRunOneShot(t *testing.T) {
19+
if _, found := os.LookupEnv("GO_CHILD"); found {
20+
c := &cobra.Command{}
21+
InitAgentCmdFlags(c, &Flags)
22+
logs.AddFlags(c.Flags())
23+
24+
err := c.ParseFlags([]string{
25+
"--one-shot",
26+
"--api-token=should-not-be-required",
27+
"--install-namespace=default",
28+
"--agent-config-file=testdata/success/config.yaml",
29+
"--output-path=/dev/null",
30+
"-v=1",
31+
})
32+
require.NoError(t, err)
33+
34+
logs.Initialize()
35+
Run(c, nil)
36+
return
37+
}
38+
t.Log("Running child process")
39+
ctx, cancel := context.WithTimeout(context.Background(), time.Second*3)
40+
defer cancel()
41+
cmd := exec.CommandContext(ctx, os.Args[0], "-test.run=^TestRunOneShot$")
42+
var (
43+
stdout bytes.Buffer
44+
stderr bytes.Buffer
45+
)
46+
cmd.Stdout = &stdout
47+
cmd.Stderr = &stderr
48+
cmd.Env = append(
49+
os.Environ(),
50+
"POD_NAME=venafi-kubernetes-agent-e2e",
51+
"GO_CHILD=true",
52+
)
53+
err := cmd.Run()
54+
55+
stdoutStr := stdout.String()
56+
stderrStr := stderr.String()
57+
t.Logf("STDOUT\n%s\n", stdoutStr)
58+
t.Logf("STDERR\n%s\n", stderrStr)
59+
require.NoError(t, err, context.Cause(ctx))
60+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cluster_id: "venafi-kubernetes-agent-e2e"
2+
organization_id: "venafi-kubernetes-agent-e2e"

0 commit comments

Comments
 (0)